Academic Integrity Statement

All assignment submissions must be the sole work of each individual student. Students may not read or copy another student’s solutions or share their own solutions with other students. Students may not review solutions from students who have taken the course in previous years. Submissions that are substantively similar will be considered cheating by all students involved, and as such, students must be mindful not to post their code publicly. Any use of electronics or other resources during an examination will be considered cheating.

If you have any doubts about whether a particular action may be construed as cheating, ask the instructor for clarification before you do it. The instructor will make the final determination of what is considered cheating.

Cheating in this course will likely result in a grade of F for the course and may be subject to further disciplinary action.

Remember that:

  • You will work on all assignments by yourself.
  • All assignments will be auto-graded and must be submitted online using Gradescope
  • All labs are due 11:59pm on the shown due date.
  • The late penalty is 10% per day.
  • Each student has 5 late days for the semester.
  • You can submit any assignment at most 3 days late.
  • You may resubmit your work until the deadline, with your most recent submission counting for credit.
  • For each assignment, there is a limit on the number of grace days that can be applied, as is indicated in the table below.
  • We highly recommend making partial submissions as you go and not waiting until the last (literal) minute to submit. You should know that fairly sophisticated plagiarism detection software will be used on the programming assignments.

Data Lab: Looking at Types

Released: 12:00 AM Tuesday, January 14th, 2020.

Due: 11:59 PM Friday, January 24th, 2020.

This lab will help you become more comfortable and familiar with bit-level representations of integers and floating-point numbers. You will do this by solving a series of programming “puzzles.”

Pointer Lab: Looking at Pointers!

Released: 12:00 AM Tuesday, January 28th, 2020.

Due: 11:59 PM Friday, February 7th, 2020.

Here, we will investigate the nature of pointers. They aren’t here to hurt us. They are here to help us!

Queue Lab: Data Structures

Released: 12:00 AM Monday, February 10th, 2020.

Due: 11:59 PM Friday, February 21st, 2020.

Here, we will use our expertise of pointers to implement a simple linked list data structure.

Malloc Lab: Memory allocators

Released: 12:00 AM Monday, March 2nd, 2020.

Due: 11:59 PM Friday, March 20th, 2020.

Here, we will use our power over pointers to implement a simple linked list memory allocator.

Password Lab: Breaking into things, for great good

Released: 12:00 AM Monday, March 30th, 2020.

Due: 11:59 PM Friday, April 10th, 2020.

This assignment has us reverse engineer some programs and find the appropriate passwords.

Cache Lab: Retrieving things, quickly

Released: 12:00 AM Monday, April 13th, 2020.

Due: 11:59 PM Friday, April 24th, 2020.

For this programming assignment, we will explore cache associativity by writing a simulator.