In short, we are going to learn how to work in the terminal, program in C, program in Assembly, and understand how a computer works. This course is heavily project based, meaning we will be spending time building programs and using tools to understand how a computer works.
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; the use of system calls and systems programming to show the interaction with the operating system; and the basic structures of an operating system, including application interfaces, processes, threads, synchronization, interprocess communication, deadlock, memory management, file systems, and input/output control.
By the end of this course, you will be ready to:
There will be no required textbook for this course. However, these resources are recommended.
Students and instructors are to follow the Northeastern policies on these important issues.
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.
Students who do well in this course tend to show up to the course consistently, participate, and engage with their peers. Come to class, come on time, and build good habits! In-Class activities that are not attended are a zero.
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.
Week |
Date |
Slides/Readings/Code/etc | Assignments | Note(s) |
---|---|---|---|---|
1 | Thursday, July 5, 2018 | Lecture 1 - An Overview of Computer Systems, Introduction and Linux Crash Course | ||
2 | Thursday, July 12, 2018 | Lecture 2 - The C Programming Language | ||
3 | Thursday, July 19, 2018 | Lecture 3 - Assembly and Machine Representation, CPU Architecture, and Operating Systems | ||
4 | Thursday, July 26, 2018 | Lecture 4 - Compilers, Linkers, and Code Generation | ||
5 | Thursday, Aug. 2, 2018 | Lecture 5 - Processes and The Memory Hierarchy | ||
6 | Thursday, Aug. 9, 2018 | Lecture 6 - Concurrency | ||
7 | Thursday, Aug. 16, 2018 | Lecture 7 - Trace, Final Exam, (Optional)Networking with Sockets Lab, Feedback, class picture |