Most assignments are divided into two parts: laboratory exercises and homeworks. Laboratory exercises are expected to be done with more assistance from the TAs and LAs.
Submit your assignments electronically on Bruin Learn. If you discover you made a mistake, you can resubmit your assignment. Bruin Learn will name it with a trailing integer suffix; that’s OK. We will grade your last submission.
You are expected to do your homeworks by yourself. You can share ideas and discuss general principles with others in the class, but all the code and writings that you submit must be your own work; do not share them with others. Please see Grading for more details. Consult a TA or the instructor if you have any questions about this policy.
Typically, labs and homeworks are done on GNU/Linux based systems running on your own computer, either natively or in a virtual machine. In some cases, though, they are done on the SEASnet GNU/Linux servers. Also, even when you develop on your own system, you should test on the SEASnet GNU/Linux servers as that's what we use to grade. When running on SEASnet, take care to not run commands like su and sudo that would make it appear to the system administrators that you might be trying to break into the system.
Any programs that you write must behave robustly. Among other things, this means they must avoid arbitrary limits on the length or number of any data structure, including symbols, strings, and line length. It is OK to impose a non-arbitrary limit, e.g., because your computer runs out of memory or because of the limited range of the C ptrdiff_t type, but it is not OK to impose an arbitrary limit, e.g., a limit of at most 255 bytes in a line.
Please stick to coding styles used in the course material rather than inventing your own style, as this saves work for the grader.
Assignments are due by 23:55 on the specified date (i.e., five minutes before midnight at the end of the day).
This schedule is tentative, including due dates and assignments that have not yet been published on Bruin Learn. See the class news and Bruin Learn for when tentative assignments are finalized.
|due||% of total grade||assignment|
|2023-04-17||  2.0%||1. Files and shell scripting|
|2023-04-24||  2.0%||2. Lisp and Python scripting|
|2023-04-24||  0.7%||1- to 2-page project proposals|
|2023-04-26||  0.7%||1- to 2-page project initial schedule and plan|
|2023-05-04|| 20.0%||Midterm (in-class)|
|2023-05-05||  2.25%||3. Chorus lapilli|
|2023-05-09||  0.25%||Midquarter LA feedback survey|
|2023-05-12||  2.25%||4. Basic change management|
|2023-05-22||  2.25%||5. Low-level refactoring and performance|
|2023-06-02||  2.25%||6. Git repository organization|
|2023-06-07||Project source code|
|2023-06-09||Project final report|
|2023-06-09||  0.25%||End-of-quarter LA feedback survey|
The project is worth 35% of the total grade; this 35% is divided up as specified in the project assignment description.
The final exam will be given at the time and place specified by the Registrar.
Please see the grading policy for grading weights and how assignments are treated when late.