!DOCTYPE html>

General Information

Professor: Alden Jackson, 132F Nightingale
Time and location: Tuesday and Friday; 9:50 am - 11:30 am; Richards Hall 458
Office Hours: Kariotis 208: Tuesday: 1:00-2:30 and Thursday 10:00-11:00 or by appointment via appointlet.com
Teaching Assistants: Kriti Gurubacharya, Mayuresh Chandrankant Khendkar, Sunny Shukla, Brian Vullo
TA Office Hours and Locations: Monday: 5:00pm-7pm, SL 003
Tuesday: 3:30pm-5:30pm, RY 456
Wednesday: 1pm-3pm, BK 204; 4:30pm-6pm, RY 456
Thursday: 4:30pm-6:00pm, SL 003
Saturday and Sunday: 10am-Noon, KA 202
Google calendar of TA Office Hours
Class forum: Piazza

There are other sections of this course being taught by Professor Nat Tuck. While the same overall information will be covered over the courses, they are not in sync.

Course Goals

We will be exploring many low level components of computer systems and learning to think like a systems programmer. This course is very applied. We will be writing a significant amount of code.

Registrar Description: 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, inter-process communication, deadlock, memory management, file systems, and input/output control.

Course Objectives

By the end of this course, you will:

Course Prerequisites

Academic Integrity and Non-Discrimination


Students and instructors are to follow the Northeastern policies on these important issues.

Make-Up Policy


Students participating in varsity athletics(this does not include club sports or intramurals) or other University sanctioned events may have the need for a make-up. Please contact me in advance of such events, so that appropriate accommodations can be made.

I recognize that unplanned life events and circumstances do occur. If this is the case, please e-mail me privately.

E-mailing me asking for extensions just because is unfortunately not fair to your classmates. The 10% penalty for each day late has to be enforced so no one receives an unfair advantage.

Git commits are used to determine the state of your repository at the time assignment is due. For commits after the deadline to be included (i.e. turning in your work late) and incur a penalty, you need to explicitly inform me in email to a.jackson (at) northeastern.edu (an equivalent to physically handing in the work late). The email must include the commit hash of the final commit for the assignment.

Evaluation

This is course about writing code. Therfore, most of your evaluation will be on the code you produce.

The grading distribution used for this course is below. You will find the grade you earn in this course on blackboard .

Final grades will be assigned based on the following scale...

A
93 - 100
A-
90 - <93
B+
87 - <90
B
83 - <87
B-
80 - <83
C+
77 - <80
C
73 - <77
C-
70 - <73
D+
67 - <70
D
63 - <67
D-
60 - <63
F
<60

Schedule

The following is our tentative schedule for the course, some changes should be expected throughout the semester. I will announce in class or through Piazza any major changes.


Week Date Lecture and Readings Assignments Notes
1 Tues, Jan 7, 2020 Lecture 1 - An Overview of Computer Systems
Automate (some of) your life (due Jan 17 @ 11:59pm)
First week of classes, welcome back!
Fri, Jan. 10, 2020 Lab 1 - Terminal Overview
-- --
-- --
2 Tues, Jan 14, 2020 Lecture 2 - The C Programming Language
A2 - C Data Structures (due Jan 24 26 @11:59:59pm)
-- --
Fri, Jan 17, 2020 Lab 2 - C Data Structures
-- --
-- --
3 Tues, Jan 21, 2020 Lecture 3 - Assembly and Machine Representation
-- --
-- --
Fri, Jan 24, 2020 Lab 3 - Assembly
A3 - Assembly (due Feb 9 11 @11:59:59 PM)
Jan 27: last day to drop without a W.
4 Tues, Jan 28, 2020 Lecture 4 - Compilers and Linkers
-- --
Jan 29: last day to file a Final Exam Conflict Form
Fri, Jan 31, 2020 Lab 4 - Code Generation
Lab 4 due on Friday Feb 7 @11:59:59 PM
-- --
5 Tues, Feb 4, 2020 Lecture 5 - Processor and Processes
-- --
-- --
Fri, Feb 7, 2020 Lecture 6 - The Memory Hierarchy
-- --
-- --
6 Tues, Feb. 11, 2020 Lecture 6 cont'd - The Memory Hierarchy
-- --
-- --
Fri, Feb. 14, 2020
Lab 5 - Processes and Cache Simulator
Lab 5 due on Friday Feb 21 @11:59:59 PM
A5 - Shell (due Feb 24, 2020 at 11:59:59 PM)
-- --
7 Tues, Feb. 18, 2020 Lecture 7 - Virtual Memory and Dynamic Memory Allocation A6 - Allocators 1 (due. Mar. 13 at 11:59pm)
-- --
Fri, Feb. 21, 2020 Lab 6 - Allocators
-- --
-- --
8 Tues, Feb. 25, 2020 Lecture 8 - Concurrency
-- --
-- --
Fri, Feb. 27 2020 Lab 7 - Multiprocessing
-- --
-- --
8 Tues, Mar. 2, 2020 SPRING BREAK
-- --
-- --
Fri, Mar. 6 2020 SPRING BREAK
-- --
-- --
9 Tues, Mar.10, 2020 Lecture 9 - Optimizations and Parallelism with SIMD
-- --
-- --
Fri, Mar. 13, 2020 Lab 8 - AVX A6 - Allocators 1 (due. Mar. 13 at 11:59pm)
-- --
10 Tues, Mar. 17, 2020 No Class
A8 - Allocators 2 due Mar. 29 Apr. 6 at 11:59pm
-- --
Fri, Mar. 20, 2020 Lecture 10 - OpenMP/GPUs
-- --
-- --
11 Tues, Mar. 24, 2020 Lecture 10 - OpenMP/GPUs continued
-- --
-- --
Fri, Mar. 27, 2020 Lab 9 - Parallel Programming
-- --
12 Tues, Mar. 31, 2020 Lecture 11 - Operating Systems and xv6 and Schedulers
-- --
-- --
Fri, Apr. 3, 2020 Lab 10 - xv6
A8 - Allocators 2 due Mar. 20 Apr. 6 at 11:59pm
A9 - XV6 due Apr. 14th on 11:59pm
-- --
13 Tues, Apr. 7, 2020 Lecture 12 - TBD
-- --
-- --
Fri, Apr. 10, 2020 Lab 11 - TBD
-- --
-- --
13 Tues, Apr. 14, 2020 Flex Day - TBD
A9 - XV6 due Apr. 14 at 11:59pm
Have a great summer!

Reading Materials

There is no required textbook for this course. However, these resources are recommended:

Classroom Environment

To create and preserve a classroom atmosphere that optimizes teaching and learning, all participants share a responsibility in creating a civil and non-disruptive forum for the discussion of ideas. Students are expected to conduct themselves at all times in a manner that does not disrupt teaching or learning. Your comments to others should be constructive and free from harassing statements. You are encouraged to disagree with other students and the instructor, but such disagreements need to respectful and be based upon facts and documentation (rather than prejudices and personalities). The instructor reserves the right to interrupt conversations that deviate from these expectations. Repeated unprofessional or disrespectful conduct may result in a lower grade or more severe consequences. Part of the learning process in this course is respectful engagement of ideas with others.

No social media; No cell phones. Not only does it distract you, it distracts others.

Title IX

Title IX of the Education Amendments of 1972 protects individuals from sex or gender-based discrimination, including discrimination based on gender-identity, in educational programs and activities that receive federal financial assistance.

Northeastern’s Title IX Policy prohibits Prohibited Offenses, which are defined as sexual harassment, sexual assault, relationship or domestic violence, and stalking. The Title IX Policy applies to the entire community, including male, female, transgender students, faculty and staff.

If you or someone you know has been a survivor of a Prohibited Offense, confidential support and guidance can be found through University Health and Counseling Services staff (http://www.northeastern.edu/uhcs/) and the Center for Spiritual Dialogue and Service clergy members (http://www.northeastern.edu/spirituallife/). By law, those employees are not required to report allegations of sex or gender-based discrimination to the University.

Alleged violations can be reported non-confidentially to the Title IX Coordinator within The Office for Gender Equity and Compliance at: titleix@northeastern.edu and/or through NUPD (Emergency 617.373.3333; Non-Emergency 617.373.2121). Reporting Prohibited Offenses to NUPD does NOT commit the victim/affected party to future legal action.

Faculty members are considered "responsible employees" at Northeastern University, meaning they are required to report all allegations of sex or gender-based discrimination to the Title IX Coordinator.

In case of an emergency, please call 911.

Please visit http://www.northeastern.edu/titleix for a complete list of reporting options and resources both on- and off-campus.

Accessibility

Part of what makes Northeastern University unique, is our diverse cohort of students, faculty, and staff. In order to support this, Northeastern is committed to providing equal access and support to all qualified students through the provision of reasonable accommodations so that each student may fully participate in the University experience. Students who have disabilities who wish to receive academic services and/or accommodations should visit the Disability Resource Center at 20 Dodge Hall or call (617) 373-2675. If you have already done so, please provide your letter from the DRC to me early in the semester so that I can arrange those accommodations.

Acknowledgements

Thank you to my colleagues Professors Mike Shaw, Laney Strange and Nate Derbinski for their assistance, templates and the code I used to create this page.