The term Computer Systems refers to the underlying machinery, both hardware and software, required to run computer applications. Computer Organization is the study of how the various components of Computer Systems fit together and interact. This course will focus in particular on the interaction of computer architecture (high-level hardware design) with compilers and operating systems. Topics to be covered include: data representation; assembly language and assembly-level computer architecture; processor design; performance measurement and optimization; the memory hierarchy, including I/O and devices; virtual memory; storage management; and interrupts, signals, and process control. Across all these areas we will focus on design tradeoffs and on implications for system performance.
Students must complete CSC 172 and MTH 150, or their equivalents, before enrolling in CSC 252. Completion of CSC 173 is recommended but not required. If you are unsure of your background, contact the professor.
CSC 252 is in turn a prerequisite for all further courses in Systems, including CSC 255 (Advanced Programming Systems), CSC 256 (Operating Systems), CSC 257 (Networks), and CSC 258 (Parallel and Distributed Systems).