Assignments and Grading in MPCS 52083 - Spring 2025

PLEASE READ THIS PAGE IN ITS ENTIRETY

It lists important deadlines and describes the grading scheme used in this class, as well as policies for things like submitting assignments, grade reporting, and assignment re-submission. You are expected to understand everything on this page in order to avoid any misunderstandings about expectations in this class. If you have questions or need clarification, please post on Ed Discussion right away; "I didn't see/realize/understand X or Y or Z..." will not be accepted as an excuse for missing deadlines or unsatisfactory work.


Class Participation

Assignments make up the bulk of your grade in this class; additional requirements for higher grades include your performance on short quizzes, and your level of engagement and participation in class discussion. Participation is a somehwat subjective measure and the criteria I will use to quantify it are as follows:

  • Level 3: Attends all classes; frequently asks questions that demonstrate good understanding and insight into the topic.
  • Level 2: Attends all classes; occasionally asks questions that demonstrate (some) understanding of the topic.
  • Level 1: Attends some classes; seldom/never asks questions that demonstrate an understanding of the topic.

Specifications Grading

As in MPCS 51083, we use specifications grading in this class. You should be very familiar with this grading scheme by now, but in case you need a refresher here’s how it works:

  1. You select which assignments to submit. A certain minimum number of (specific) assignments are required for a passing grade; how many additional assignments you complete beyond that minimum is up to you.
  2. Completed assignments are graded using the Satisfactory/Needs Improvement/Unsatisfactory (or SNU) scale.
  3. Your final grade is determined by a "bundle", based on the number of Satisfactory assignments completed and your performance on quizzes as defined in the table below.


  4. "A" Bundle "A–" Bundle "B+" Bundle "B" Bundle "B–" Bundle "C+" or "P/F" Bundle
    Complete all assignments from Group 1 at "Satisfactory" Complete all assignments from Group 1 at "Satisfactory" Complete at least 8 (eight) assignments from Group 1 at "Satisfactory" Complete at least 8 (eight) assignments from Group 1 at "Satisfactory" Complete at least 7 (seven) assignments from Group 1 at "Satisfactory" and at least 1 (one) at "Needs Improvement" Complete at least 7 (seven) assignments from Group 1 at "Satisfactory" and at least 1 (one) at "Needs Improvement"
    Complete at least 4 (four) assignments from Group 2 at "Satisfactory" Complete at least 3 (three) assignments from either Group 2 or Group 3 at "Satisfactory" Complete at least 3 (three) assignments from either Group 2 or Group 3 at "Satisfactory" Complete at least 2 (two) assignment from either Group 2 or Group 3 at "Satisfactory" Complete at least 1 (one) assignment from either Group 2 or Group 3 at "Satisfactory" Score 50% or higher on at least 1 (one) quiz
    Complete all assignments from Group 3 at "Satisfactory" Complete at least 1 (one) assignment from Group 3 at "Satisfactory" Complete at least 1 (one) assignment from Group 3 at "Satisfactory" Score 50% or higher on at least 2 (two) quizzes Score 50% or higher on at least 1 (one) quiz  
    Score 50% or higher on all quizzes Score 50% or higher on all quizzes Score 50% or higher on at least 2 (two) quizzes  
    Class participation at Level 3 Class participation at Level 3 Class participation at Level 2 or higher Class participation at Level 2 or higher Class participation at Level 2 or higher Class participation at Level 1 or higher

    The SNU scale is defined as follows:

    Satisfactory (S)

    Work is complete and demonstrates adequate understanding of the material.

    • Code works as specified
    • Code contains no/very few minor errors
    • Code implements some error handling
    • Specific references provided

    Needs Improvement (N)

    Work is mostly complete and/or demonstrates some understanding of the material, but is missing one or more critical elements.

    • Code works partially as specified
    • Code contains some errors
    • Code implements no error handling
    • Only general references provided

    Unsatisfactory (U)

    Work is incomplete and/or demonstrates limited/no grasp of the material.

    • Code does not work as specified
    • Code contains significant errors
    • No references provided

IMPORTANT NOTE

If you are eligible—and elect—to take this class as Pass/Fail, you will need to meet the criteria for a “C+” as shown above in order to get a “Pass”, independent of the minimum passing grade for your program (MBA, CAPP, etc.).


Assignments

Coming from the introductory Cloud Computing class you may be accustomed to getting very detailed (often pedantic) specifications and instructions for implementing the requirements—as well as the runtime environment. In this class I assume that you're sufficiently familiar with most of the required AWS pieces, and I expect you to do a fair amount of reading and research outside of class in order to complete the assignments. As a result the specifications are described much more tersely and the implementation approach is left largely up to you to figure out ...just like it will be in a real work environment :-).

Assignments are submitted via GitHub as described below. You also have the option to re-submit some unsatisfactory work; see Resubmissions and Late Resubmissions below.

A special request: As this is the first iteration of the class it would be really helpful to me if you report the amount of time you took to complete each assignment. This will in no way affect your grade or performance in the class, but it will be very useful to me as I adjust/recalibrate the homework workload in future classes. Thanks in advance for helping your (future) fellow grads!

Group
Assignment
Due Date**
Setup A0: AWS Environment Setup Sun. 3/30/2025
Group 1 A1: Preparing the GAS for Production Deployment Fri. 4/4/2025
A3: Containerizing Deployment of the GAS Web App Fri. 4/4/2025
A5: Automatically Creating the GAS Environment - Part 1 Fri. 4/11/2025
A7: Continuous Integration/Deployment of the GAS Web App Fri. 4/18/2025
A9: Evaluating GAS Security Fri. 4/25/2025
A11: Automating GAS Deployment in a Secure Environment Fri. 5/4/2025
A12: Instrumenting the GAS for Operational Monitoring Sun. 5/11/2025
A14: Implementing a Streaming Pipeline Fri. 5/16/2025
A15: Analyzing Stream Data Fri. 5/23/2025
Group 2 A2: Containerizing Deployment of the GAS Annotator Fri. 4/4/2025
A4: Containerizing Deployment of GAS Utility Services Fri. 4/11/2025
A6: Automatically Creating the GAS Environment - Part 2 Fri. 4/18/2025
A8: Continuous Integration/Deployment of the GAS Annotator Fri. 4/18/2025
A10: Hardening the GAS Fri. 4/25/2025
Group 3 A13: Ensuring Quality of Service for the GAS API Fri. 5/9/2025
A16: Implementing a Circuit Breaker Fri. 5/23/2025
Quiz Quiz 1 Fri. 4/11/2025
Quiz 2 Fri. 5/9/2025
Quiz 3 Fri. 5/30/2025

** Dates may change depending on our progress in class. Notifications of any changes will be posted on Ed Discussion.

Submitting Assignments

You are required to submit all assignments in this class via GitHub. A submission link to our GitHub classroom is provided in each assignment. You must follow the link to create your repository for each assignment. The first time you do this you will be prompted to link your GitHub account to your CNetID listed in the GitHub classroom roster. You must link your GitHub ID to the class roster, otherwise your assignments will not be graded.

The due date and time is listed at the top of each assignment, e.g., Due: Friday, May 24, 2025 at 9:00am CDT.

We will treat the most recent commit timestamp displayed in GitHub as your submission time. In the case where an assignment specifies that you include a commit message (e.g., “A14 - Final Submission”), we will consider the most recent commit with that message as the submission time. Please make sure you understand this. You will receive a “U” if there are any changes to your code or commits after the deadline—please don’t modify the repository or any other part of your code in the AWS environment after the deadline.

VERY IMPORTANT NOTE

All commits to your repository must be made using the GitHub account that is linked to your CNetID when you first accept an assignment in this class. If for some reason you need to change your account during the course of the quarter, you must get approval first. Please do not commit code using any other GitHub account; doing so will result in an automatic “U” for the assignment and potentially an "F" for the class. If you notice that a commit is assocaited with a GitHub account other than yours, please notify me immediately.


Resubmissions and Late Submissions

Under our grading scheme you have the option to resubmit an assignment in order to improve your grade or request a 24-hour extension to submit an assignment late. During the quarter you may exercise these options up to three times, in total (for either resubmissions or late assignments).

Resubmissions

If you receive a “U” on an assignment you may revise and resubmit it. The following apply to resubmissions:

  • You may only resubmit an assignment if the assignment was originally submitted on time, i.e., before the deadline specified in the assignment.
  • All revised work must be resubmitted within three days of receiving the original grade on the grading branch in your GitHub repository—no exceptions/extensions!
  • You may not resubmit an assignment more than once.

If you decide to revise your work and resubmit, please do the following:

  • Create a branch named <assignment_number>-resubmit, e.g., if re-submitting Assignment 14 you must create branch a14-resubmit.
  • IMPORTANT: Post a private note on Ed informing us that you have resubmitted. If you don’t notify us via Ed we will not know that there is a resubmission for grading and, if the AWS environment is cleaned up in the interim, your efforts will have been wasted.

After reviewing your resubmission we will update the grade.txt file in the grading branch in GitHub.

Late Submissions

Late submissions will not be considered for grading but you may request a 24-hour extension. If you want to exercise this option, you must notify us before the due date/time by posting a private note in Ed Discussion. Any submission beyond 24 hours after the due date/time will not be graded. Please don’t ask for exceptions.

Grade Reporting

When your assignment is graded, we will add a “grading” branch to your repository. This branch includes a file called grade.txt that contains your grade and comments/feedback from the grader. You are expected to review the grading branch and, if you have questions/concerns about the accuracy of your grade that you would like us to review, please post a private note on Ed—DO NOT email me or the TAs directly.

Make sure that you have GitHub notifications turned on so that you're notified when the grading branch is pushed to your repository. You are responsible for checking the grading branch in a timely manner if your wish to re-submit an assignment (see above) or otherwise have your grade reviewed.

The grade in your grading branch is not the final/official grade. Once the TA pushes the grading branch to remote I will review and then publish grades on Canvas (as Canvas is the only officially sanctioned system for communicating grades). There will typically be a few days lag between your grade being pushed to GitHub and my posting it on Canvas. Please do not wait until Canvas grades are posted before resubmitting because it will usually be past the re-submission deadline.

Using External Sources

I fully expect you will use external sources (such as StackOverflow) to research potential solutions and find sample code for your assignments. While you may consult and be guided by such sources, you are expected to write your own code.

In particular, you may not use AI systems, such as ChatGPT or GitHub Copilot, to write or generate any of your code. Using those systems in a manner similar to consulting online resources (e.g., asking ChatGPT something like “How do I play a sound using pygame?”) is acceptable, but you should take any answer with a healthy dose of salt, as these systems will sometimes provide unequivocally wrong answers.

If you do use an AI tool, you must include a complete transcript of your interactions with the model in the README file for the assignment.

If you do use an AI tool, you must include a complete transcript of your interactions with the model in the README file for the assignment.


Any evidence or suggestion that your code was written/generated by someone or something other than you will be grounds for an immediate Unsatisfactory grade, without recourse on your part ...yes, you will be guilty without being offered the chance to defend yourself :-(( In some cases, the penalty may be an “F” for the class.

Contact