There are 6 exercises and 6 projects in all. These are due at midnight (11:59 PM to be precise) on the dates indicated on the Calendar page.
|1||Basic Data Types (writeup | zip)|
|2||Control Flow (writeup | zip)|
|3||Collection Data Types and Standard Input (writeup | zip)|
|4||Functions (writeup | zip)|
|5||Recursion and Object-oriented Programming (writeup | zip)|
|6||File Input and Symbol Tables (writeup | zip)|
|1||Straight-line Programs (writeup | zip)|
|2||Programs with Control Flow (writeup | zip)|
|3||Mozart Waltz Generator (writeup | zip)|
|4||RSA Cryptosystem (writeup | zip)|
|5||Atomic Nature of Matter (writeup | zip)|
|6||Markov Model (writeup | zip)|
The writeup file contains the problem descriptions. The zip file contains the starter files for the problems, any data files, and
notes.txt file for projects.
Your solution to each exercise/project problem will be evaluated by an autograder for correctness and style. Each test that is used to evaluate the correctness of your solution is worth some number of points; your solution will receive all the points from a test that passes and 0 points from a test that does not pass. Your solution will receive 2 points if there are no style errors, and 0 points otherwise. Your overall correctness and style score will be normalized to 100 points for an exercise and 80 points for a project.
Your solution to each project problem will additionally be checked by a TA for clarity and efficiency. Your code will receive 10 points if it meets our expectations (must include adequate comments, must follow good programming principles, and must meet any problem-specific requirements such as corner cases and running times), and marked down otherwise.
For a project, the given
notes.txt file must be uploaded with the three sections (#1 mandatory, #2 if applicable, and #3 optional) filled in as appropriate. Your notes file will receive 10 points if it meets our expectations (section #1 must provide a clear high-level description of the project in no more than 200 words), and marked down otherwise.
You will use Gradescope to submit your Python programs (ie,
.py files). Make sure that you only submit files listed under the Files to Submit section of the assignment writeup.
You may submit your files as many times as you like, up until the assignment deadline. The most recent submission is considered active by default and your score on the active submission is your official score for the assignment as well. You have the option of making any of your previous submissions active.
Note: If your active submission is partial, your assignment score will also be partial, so in order to be eligible for full credit, make sure you have an active submission containing all the required files for the assignment.
Assignment deadlines are firm and non negotiable. However, you have up to 5 (10 if you have accommodations through the Ross Center) late days that you may use to submit one or more assignments a bit late. You may use them all for a single assignment or spread them across the assignments as you find necessary. If you need to use any of your available late days for a particular assignment, you must send me a request via email at least 48 hours prior to the assignment deadline, or else your request will not be granted.