Course CSE220
Title System Fundamentals I
Credits 4
Course Coordinator

Michael Ferdman


Introduces systems-level programming concepts using the C language and assembly language, and explores the correspondence of programming constructs in these languages. Topics include internal data representation, basic instructions and control structures, bitwise operations, arithmetic operations, memory management, pointers, function calls and parameter passing, linking, and loading. Included is an overview of computer architecture and organization topics, including von Neumann architecture, the memory hierarchy, and basics of pipelining.

Prerequisite C or higher in CSE 214 or co-requisite CSE 260 and CSE major
Course Outcomes
  • An ability to determine the machine-level representations of primitive and structured data types.
  • An ability to determine the correspondence of program constructs written in C and in assembly language.

  • An ability to implement non-trivial algorithms, and both static and dynamic data structures, in the C programming language.


  • C Programming: A Modern Approach, 2nd ed. by K. N. King. W. W. Norton & Company, 2008. 978-0393979503

Major Topics Covered in Course
  • Basics of computer architecture and organization

  • Machine-level representations of data

  • Basics of C programming

  • Low-level programming in C

  • C functions and program structure

  • C I/O; Linking and loading

  • C pointers and arrays

  • Fundamental data structures in C

  • MIPS architecture and assembly language basics

  • MIPS assembly memory management

  • MIPS assembly functions

  • C/MIPS correspondence and cross-compilation
  • Modern computer architectures
Course Webpage