CS 201 Computer Systems Programming
Introduction to computer systems from a software perspective. Topics include: Basic machine organization, System programming using C and assembly language, Introduction to system programming tools (gcc, makefile, gdb), Data representation (bits & bytes, characters, integers, floating point numbers), Implementation of control flow, procedure calls, and complex data types at machine level, Linking and loading, Exceptions and interrupts, Process control and signals, System calls, File I/O, Timing and improving program performance, Introduction to memory hierarchy, dynamic memory allocation techniques.