|Time||Monday and Thursday 11:45 am - 1:25 pm|
|Location||West Village H 210|
|a.jackson [at] northeastern.edu|
|Office, Office Hours||132F Nightingale, Friday 9:30-Noon and 1:30-3 or by appointment arranged by email|
|patel.sav [at] northeastern.edu|
|Office Hours, Location||Monday 2pm-4pm, WVF 116; Wednesday 2pm-4pm, Ryder Hall 145; Friday 2pm-4pm; WVF 118|
|elliott.jame [at] northeastern.edu|
|Office Hours, Location||Tuesday 10am-12pm SL 047; Friday 2-4pm WVF 118; Saturday 10am-12pm, WVH 162|
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.
By the end of this course, you will be ready to:
Students and instructors are to follow the Northeastern policies on these important issues.
While students are encouraged to discuss course materials, no plagiarism/copying is allowed on assignments or labs. In particular,
This class has very strict standards for borrowing code: You may not use other students' code. If you borrow anything for use in your homework from a textbook or an online source, you must have a citation. A good guideline is that if you take more than three lines of code from some source, you must include the information on where it came from. A URL or a notation (e.g., "MATLAB help files") is fine. If it is an entire function, note it at the beginning of the code segment and include any original credit information. Provide a qualitative description of what you used, and what you changed/contributed. If you have a question about what is considered a violation of this policy, ASK!
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.
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...
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|
|2||Monday, Sept. 10, 2018||Lab 1 - Terminal Overview|
|Thur, Sept. 13, 2018||Lecture 2 - The C Programming Language|
|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|
|Thur, Sept. 27, 2018||Lecture 4 - Compilers and Linkers|
|5||Monday, Oct. 1, 2018||Lab 4 - Code Generation|
|Thur, Oct. 4, 2018||Lecture 5 - Processor and Processes|
|6||Monday, Oct. 8, 2018|
|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|
|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|
|10||Monday, Nov. 5, 2018||Lab 8 - AVX|
|Thur, Nov. 8, 2018||Lecture 10 - OpenMP/GPUs|
|11||Monday, Nov. 12, 2018|
|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|
|13||Monday, Nov. 26, 2018||Lab 10 - xv6|
|Thur, Nov. 29, 2018||Lecture 12 - Extra Credit Assignment|
|14||Monday, Dec. 3, 2018||Flex Day - TBD|
|Thur, Dec. 6, 2018||Lecture 13 - TBD/Instrumentation/Class Photo|
There is no required textbook for this course. However, these resources are recommended:
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 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: firstname.lastname@example.org 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.
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.
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.