Lecture
Meeting: Monday & Wednesday, 12:30PM-1:45PM @ 60 Fifth Ave. Rm. 150 Instructor: Randy Shepherd - rjs471 [at] nyu.edu Office Hours: Wednesdays 7:00PM-8:00PM @ WWH 425 Graders: Bhaskar Gurram - bhaskar.gurram [at] nyu.edu, Puneet Kaur - pk1616 [at] nyu.edu, Simranjyot Gil - simranjyot [at] nyu.edu
Recitation
Meeting: Tuesday, 8:00AM-9:15AM @ WWH 109 Leader: Hassan Zaidi - hmz224 [at] nyu.edu Office Hours: Tuesdays 4:45PM-6:45PM @ WWH 412 In-class exercises and quizzes will take place in recitation. Therefore attendance is crucial. It will be recorded. You will need to bring a laptop to recitations. If this is a problem for you please see me.
Waitlist Questions
Please direct them to Romeo Kumar - kumar [at] cs.nyu.edu
Description
Prerequisites: Data Structures (CSCI-UA 102)
Covers the internal structure of computers, machine (assembly) language programming, and the use of pointers in high-level languages. Topics include the logical design of computers, computer architecture, the internal representation of data, instruction sets, and addressing logic, as well as pointers, structures, and other features of high-level languages that relate to assembly language.
Acknowledgments
Many materials used in this course are borrowed with permission from Joanna Klukowska, Jiyang Li, Mohamed Zahran, Randal E. Bryant (CMU) and David R. O’Hallaron (CMU)
Syllabus
- C: basic types, control flow
- C: pointers and arrays
- Bitwise integers / IEEE 754
- Machine Programming
- System Hardware
- Memory hierarchy
- Caching
- Virtual Memory
- Dynamic Memory Allocation
- Exceptions and processes
- Multitasking and signals
- Concurrent programming
Textbooks
Required:
- Computer Systems: A Programmer's Perspective, Third Edition by Randal E. Bryant and David R. O'Hallaron
Recommended:
- The C Programming Language, Second Edition by Brian W. Kernighan, Dennis Ritchie