General

Instructor Ben Weintraub
Room Dodge Hall 119
Time MTWTh 3:20-5pm
Office Hours Thursday 1-3pm (location: TBD)
Class Forum Piazza
Grades Canvas
Submissions Gradescope

Table of Contents

Course Description (from Registrar)

Introduces the basic design of computing systems, computer operating systems, and assembly language using a RISC architecture. Describes caches and virtual memory. Covers the interface between assembly language and high-level languages, including call frames and pointers. Covers the use of system calls and systems programming to show the interaction with the operating system. Covers the basic structures of an operating system, including application interfaces, processes, threads, synchronization, interprocess communication, deadlock, memory management, file systems, and input/output control.

Prerequisites

CS 2510 (Fundamentals of Computer Science II) or EECE 2560 (Fundamentals of Engineering Algorithms).

Students should have experience with programming in high-level languages such as Java, Go, JavaScript, or Rust, as well as some knowledge of algorithms, data structures, and software engineering principles.

Class Forum

The class forum is on Piazza. Why Piazza? Because they have a nice web interface, as well as iPhone and Android apps. Piazza is the best place to ask questions about projects, programming, debugging issues, etc. In order to keep things organized, please tag all posts with the appropriate hashtags, e.g. #assigment1, #lab3, etc. I will also use Piazza to broadcast announcements to the class.

Schedule

Date Slides/Notes Reading Comments
5/5-6 Intro to Computer Systems OSTEP ch2 Assignment 1 out
Lab 1
5/7-8 Assembly DIS ch6, DIS ch7 Assignment 2 out
Lab 2
5/12-13 Memory, Stack, Recursion DIS 1.4.1, DIS 2.1, DIS 7.5, Nat Tuck's Assembly Design Recipe, Assembly Guide A1 due
Assignment 3 out
Lab 3
5/14-15 Intro to C Stanford's Essential C A2 due
Assignment 4 out
Lab 4
5/19-20 Processes OSTEP ch3-6 A3 due
Lab 5
Project 1 out
5/21-22 File I/O OSTEP ch39 A4 due
Lab 6
5/26-27 Virtual Memory OSTEP ch15-19 (if you have time, start from ch12) Project 1 due
5/28-29 Concurrency OSTEP ch25-28, The Free Lunch is Over Assignment 5 out
Lab 7
6/2-3 Concurrency OSTEP ch29-32 Assignment 6 out
Lab 8
6/4-5 Condition Variables, Semaphores, Shared Memory A5 due
Assignment 7 out
Lab 9
6/9-10 OS Kernels, Booting, xv6 A6 due
Assignment 8 out
Lab 10
6/11-12 File Systems OSTEP ch39-41 A7 due
Project 2 out
6/16-17 File Systems OSTEP ch42-43, The Night Watch A8 due
6/23 No Lecture Project 2 due

Reading Materials

For this course, we will be using Operating Systems: Three Easy Pieces by Remzi H. Arpaci-Dusseau and Andrea C. Arpaci-Dusseau. This is a popular text for courses like this one, and it is available for free online. Of course, if you want to support the authors, you can also buy a copy.

We we also be occasionally using the free online textbook Dive Into Systems, which explains some concepts very well.

Useful Resources

Command Line Editors

For this class you should be comfortable working in the terminal. We recommend a text editor like Vim or Emacs.

Version Control

Unix/Linux

Exams

There will be no exams.

Grading

This class is primarily programming-based. Therefore, you will mostly be judged on the quality and correctness of your code.

Class Activities (around 10) 15%
Labs (around 10) 15%
Assignments (around 8) 48%
Projects (2) 22%

Requests for Regrading

In this class, we will use the Coaches Challenge to handle requests for regrading. Each student is allotted two (2) challenges each semester. If you want a project or a test to be regraded, you must come to the professors office hours and make a formal challenge specifying (a) the problem or problems you want to be regraded, and (b) for each of these problems, why you think the problem was misgraded. If it turns out that there has been an error in grading, the grade will be corrected, and you get to keep your challenge. However, if the original grade was correct, then you permanently lose your challenge. Once your two challenges are exhausted, you will not be able to request regrades. You may not challenge the use of slip days, or any points lost due to lateness.

Note that, in the case of projects, all group members must have an available challenge in order to contest a grade. If the challenge is successful, then all group members get to keep their challenge. However, if the challenge is unsuccessful, then all group members permanently lose one challenge.

AI Policy

The usage of generative AI models is allowed in this course under certain constraints, unless specifically stated otherwise.

  1. Generative AI may be used to aid programming, but may not be used for writing or documentation.
  2. Any use of Generative AI must come with attribution including the specific model, date/time of use, and exact prompts. Failure to do so will be considered plagiarism.
  3. Generative AI should be used not to get assignments done as quickly as possible but rather to facilitate learning.

Cheating Policy

It’s ok to ask your peers about the concepts, algorithms, or approaches needed to do the assignments. We encourage you to do so; both giving and receiving advice will help you learn. However, what you turn in must be your own, or for projects, your group’s own work. Looking at or copying code or homework solutions from other people or the Web is strictly prohibited. In particular, looking at other solutions (e.g., from other groups or students who previously took the course) is a direct violation. Projects must be entirely the work of the students turning them in, i.e., you and your group members. If you have any questions about using a particular resource, ask the course staff or post a question to the class forum. All students are subject to the Northeastern University’s Academic Integrity Policy. Per Khoury College policy, all cases of suspected plagiarism or other academic dishonesty must be referred to the Office of Student Conduct and Conflict Resolution (OSCCR). This may result is deferred suspension, suspension, or expulsion from the university.

Accommodations for Students with Disabilities

If you have a disability-related need for reasonable academic accommodations in this course and have not yet met with a Disability Specialist, please visit www.northeastern.edu/drc and follow the outlined procedure to request services. If the Disability Resource Center has formally approved you for an academic accommodation in this class, please present the instructor with your “Professor Notification Letter” at your earliest convenience, so that we can address your specific needs as early as possible.

Title IX

Title IX makes it clear that violence and harassment based on sex and gender are Civil Rights offenses subject to the same kinds of accountability and the same kinds of support applied to offenses against other protected categories such as race, national origin, etc. If you or someone you know has been harassed or assaulted, you can find the appropriate resources here.

Acknowledgements

Thank you to Christo Wilson, Cheng Tan, Ji-Yong Shin, and Ferdinand Vesily, from whom much of this content is derived.


Ben Weintraub © 2025
Site Last Updated May 06, 2025 at 20:09:43 UTC