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, interprocess communication, deadlock, memory management, file systems, and input/output control.
The course Piazza page is a forum where you may ask questions. This is a forum you may ask other instructors/students clarifying questions (read: Do not ask for answers) or for helpful tips. You can ask questions anonymously or using your name. Using this resource will often be much faster than e-mailing the instructor directly.Prerequisites: CS 1500, CS 2510, or EECE 2560.
The required textbook for this course is: Computer Systems A Programmer's Perspective (3rd Edition)
By the end of this course, you will:
|Unit||Week||Topic||Assignment Due Date||In-Class Activity||Readings||Note/Video|
||Getting setup on CCIS||Chapter 1|
||C Crash Course||Chapter 2 and Ch. 3 - 3.6|
Chapter 3.7 to end of Chapter 3
What every computer scientist should know about floating-point arithmetic
Chapter 6 and
What Every Programmer Should Know About Memory (Section 3 on caches at a minimum)
on a System
I will be using the Clang Compiler, which is available on almost every operating system. A pre-built binary (the executable program) can be downloaded here. Clang is available on the CCIS servers. You may also use GCC if you like, though my examples will primarily be using clang tools.
Any basic text editor will do for writing code.
Class Assignments: Each assignment is due before lecture (3:24:59pm) unless otherwise specified.
Many classes we will have an activity. You will submit your activity at the end of class, and it will be graded for effort, completeness, and contribute to your attendance/Participation score.
Please find below the grading distribution that will be used for this course. You will find the grade you earn in this course on blackboard.
These are some general tips for becoming a successful programmer in this course.
Students and instructors are to follow the Northeastern policies on these important issues.Northeastern Non-Discrimination Policy - This classroom is a safe space for the instructor and students to talk about ideas, share viewpoints, and learn.
I do not take attendance, and you are not required to attend lecture. However, keep in mind your participation grade depends on how you engage during the class and with your peers. Students who do well in this course tend to show up to the course consistently, participate, and engage with their peers.
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.
Occasionally, other life events and circumstances occur that were not planned. If this is the case, please e-mail me privately.
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. If you have a disability that requires accommodations, please contact the Student Accessibility Services office at DRC@northeastern.edu or (617) 373-2675 to make an appointment with the Disability Resource Center representatives in 20 Dodge Hall to determine appropriate accommodations.