Meeting: Monday & Wednesday, 2:00PM-3:15PM @ WWH 102
Instructor: Randy Shepherd - rjs471 [at] nyu.edu
Office Hours: Monday & Wednesday, 4:45PM-6:15PM @ WWH 425
Graders: Chen Chen & cc4772 [at] nyu.edu & Jesse Gumz - jdg513 [at] nyu.edu


Meeting: Tuesday, 8:00AM-9:15AM @ WWH 109
Leader: Hassan Zaidi - hmz224 [at] nyu.edu
Office Hours: Wednesday 4:00PM-5:00PM @ 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


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.


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)


  • C: basic types, control flow
  • C: pointers and arrays
  • Bits, bytes, Ints, floats
  • C type conversion
  • Machine Programming
  • Linking
  • System Hardware
  • Memory hierarchy
  • Caching
  • Virtual Memory
  • Dynamic Memory Allocation
  • Exceptions and processes
  • Multitasking and signals
  • System-level I/O
  • Concurrent programming
  • Synchronization