Meeting

Time Monday and Thursday 11:45 am - 1:25 pm
Location West Village H 210
Piazza piazza.com/northeastern/fall2018/cs365004

Instructors

Professor Alden Jackson

E-mail a.jackson [at] northeastern.edu
Web https://www.ccis.northeastern.edu/people/alden-jackson/
Office, Office Hours 132F Nightingale, Friday 9:30-Noon and 1:30-3 or by appointment arranged by email

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

Teaching Assistants

Savan Patel

E-mail patel.sav [at] northeastern.edu
Office Hours, Location Monday 2pm-4pm, WVF 116; Wednesday 2pm-4pm, Ryder Hall 145; Friday 2pm-4pm; WVF 118

James 'Jack' Elliot

E-mail elliott.jame [at] northeastern.edu
Office Hours, Location Tuesday 10am-12pm SL 047; Friday 2-4pm WVF 118; Saturday 10am-12pm, WVH 162
Google calendar of TA Office Hours

Course Goals

We will be exploring many low level components of computer systems and think like a systems programmer. This course is very applied. We will be writing 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 be ready to:

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 I do not get taken advantage of.

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
95 - 100
A-
91 - <95
B+
87 - <91
B
83 - <87
B-
80 - <83
C+
77 - <80
C
73 - <77
C-
70 - <73
D+
67 - <70
D
63 - <67
F
<63

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 e-mail any major changes.


Week Date Lecture and Readings Assignments Notes
1 Thur, Sept. 6, 2018 Lecture 1 - An Overview of Computer Systems
Automate (some of) your life (due Sept, 13 @ 11:59pm)
First week of classes, welcome back!
2 Monday, Sept. 10, 2018 Lab 1 - Terminal Overview
-- --
-- --
Thur, Sept. 13, 2018 Lecture 2 - The C Programming Language
A2 - C Data Structures (due Sept, 24 @11:59pm)
-- --
3 Monday, Sept. 17, 2018 Lab 2 - C Data Structures
-- --
-- --
Thur, Sept. 20, 2018 Lecture 3 - Assembly and Machine Representation
-- --
-- --
4 Monday, Sept. 24, 2018 Lab 3 - Assembly
A3 - Assembly (due Oct. 6 at 5:00 PM)
-- --
Thur, Sept. 27, 2018 Lecture 4 - Compilers and Linkers
-- --
-- --
5 Monday, Oct. 1, 2018 Lab 4 - Code Generation
Lab 4 due on Tuesday Oct 9 at 11:45 AM
-- --
Thur, Oct. 4, 2018 Lecture 5 - Processor and Processes
-- --
-- --
6 Monday, Oct. 8, 2018
------ (Review your notes) ------
A4 - Shell (due Oct. 17, 2018 at 11:59 PM)
No Class -- Holiday
Thur, Oct. 11, 2018 Lecture 6 - The Memory Hierarchy
-- --
-- --
7 Monday, Oct. 15, 2018 Lab 5 - Processes and Cache Simulator
-- --
-- --
Thur, Oct. 18, 2018 Lecture 7 - Virtual Memory and Dynamic Memory Allocation
-- --
-- --
8 Monday, Oct. 22, 2018 Lab 6 - Allocators
A5 - Allocators 1 (due. Oct. 29 at 11:59pm)
-- --
Thur, Oct. 25, 2018 Lecture 8 - Concurrency
-- --
-- --
9 Monday, Oct. 29, 2018 Lab 7 - Multiprocessing
-- --
-- --
Wed/Thur, Oct. 31/Nov. 1, 2018 Lecture 9 - Optimizations and Parallelism with SIMD
A6 - Concurrency (due. Nov. 8 at 11:59pm)
-- --
10 Monday, Nov. 5, 2018 Lab 8 - AVX
-- --
-- --
Thur, Nov. 8, 2018 Lecture 10 - OpenMP/GPUs
A7 Allocator 2 (due. Nov. 28 at 11:59pm)
-- --
11 Monday, Nov. 12, 2018
------ (Review your notes) ------
-- --
No Class -- Veterans Day. Thank you for your service.
Thur, Nov. 15, 2018 Lecture 11 - Operating Systems and xv6 and Schedulers
-- --
-- --
12 Monday, Nov. 19, 2018 Lab 9 - Parallel Programming
-- --
-- --
Thur, Nov. 22, 2018
------ (Enjoy good food!) ------
-- --
No Class, Thanksgiving Recess
13 Monday, Nov. 26, 2018 Lab 10 - xv6
A8 due Dec. 4 at 11:59pm
-- --
Thur, Nov. 29, 2018 Lecture 12 - Extra Credit Assignment
Due Dec. 1 at 11:59 PM
-- --
14 Monday, Dec. 3, 2018 Flex Day - TBD
-- --
-- --
Thur, Dec. 6, 2018 Lecture 13 - TBD/Instrumentation/Class Photo
-- --
Dec. 5 Last day of Fall Classes

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.