Homework Exercises

There will be five homeworks during the semester that will count for 20% of your course grade. Unless otherwise noted, you are free to discuss the problems and your general approach with other students in the class. However, the answers you turn in must be your own original work, and you are bound by the Honor Code. Please start early and attend your discussion section for important instructions and extra help.

  1. Homework 1: Numbers and C (available Jan. 9) – due Jan. 23 at 6pm
  2. Homework 2: Logic and ALUs (available Jan. 30) – due Feb. 13 at 6pm
  3. Homework 3: Functions (available Feb. 27) – due Mar. 13 at 6pm
  4. Homework 4: Caching and Interrupts (available Apr. 3) – due Apr. 10 at 6pm
  5. Homework 5: Pipelines and Virtual Memory (available Apr. 17) – due Apr. 24 at 6pm

Programming Projects

There will be four projects during the semester that will count for 25% of your course grade, done individually. You may consult general reference material, but you may not collaborate with other students. Similar to the homework, you can discuss general concepts with other students, but the material you turn in must be entirely your own work. Please start early and attend your discussion for important instructions and extra help.

  1. Project 1: Assembly (available Jan. 23) – due Feb. 6 at 6pm
  2. Project 2: Basic I/O (available Feb. 18) – due Mar. 6 at 6pm
  3. Project 3: Calling Convention (available Mar. 6) – due Mar. 27 at 6pm
  4. Project 4: Interrupts (available Mar. 23) – due Apr. 17 at 6pm

Lateness: Each person gets 3 late days for the semester. Days can be used together on the same assignment, or one each on different ones, but cannot be split into sub-days (e.g. half days, or hours, etc). Late days cannot be transferred to other students, are not redeemable for money, and cannot be made into an NFT. If there are extenuating circumstances (not: busy with other classes/exams/homework/etc), please contact the course staff.

Collaboration: We are here to provide a nurturing environment for everyone enrolled in the course. However, acts of cheating and unacceptable collaboration will be reported through the Honor Code process. Cheating is when you copy, with or without modification, work that is not your own. This includes copying work from large-language models like ChatGPT, Gemini, Copilot, Cursor, etc. These tools can be great as mentors to help you learn concepts, but can also hamper your learning if over-relied on or used improperly to complete assignments for you.

We encourage students to help each other learn the course material. You may give or receive help on any of the concepts covered in lecture. You are allowed to consult with other students about the conceptualization of a project, or the general approach for homework solutions. However, all written work, whether in scrap or final form, must be done by you.

If you have any questions as to what constitutes unacceptable collaboration, AI use, or exploitation of prior work, please talk to an instructor. You are expected to exercise reasonable precautions in protecting your own work.