Course CSE220
Title System Fundamentals I
Credits 4
Course Coordinator

Michael Ferdman


This course will introduce assembly language programming and essential concepts of computer organization and architecture. The focus of this course is on the computer organization of a computer system, including the processor architecture and the memory system. In particular, we will discuss the internal representation of information, performance evaluation methodology, instruction set architectures and implementation techniques for computer arithmetic, control path design, and pipelining.

Bulletin Link


C or higher: CSE 214 or 260 and CSE major

Course Outcomes
  • An understanding of processor organization.
  • An understanding of instruction set architectures design and complex versus reduced instruction set computers.

  • Understanding of implementation techniques such as number representations,  computer arithmetic, processor data paths, pipelining.

  • An ability to program in assembly language and understand the  relationship to processor design.


  • Harris and Harris, Digital Design and Computer Architecture, Second Edition, Morgan Kaufmann, 2013.  (ISBN 978-0-12-394424-5)

Major Topics Covered in Course
  • Internal Number Representation

  • Basic Memory Organization: Bits, Bytes, Words, ASCII

  • Overview of MIPS, Instruction cycle, processor registers.

  • Assembly language: Loops, conditional branching, addressing modes

  • Assembly language: Register Convention, Function calls, parameter passing.

  • Assembly language: 2-pass assembly process, linking and loading

  • Introduction to Digital Logic: Boolean Algebra, Digital circuit design

  • Instruction Set Architectures - RISC/CISC/Hybrid

  • Arithmetic Logic Units

  • Processor Datapath and Control Path Design

  • Processor Pipelining

Laboratory Projects
  • Assembly language program that deals with strings, arrays, ASCII code, and simple arithmetic. (0.5 week)

  • Assembly language program(s) with nested function calls, parameter passing and register conventions. (1 week)

  • Assembly language program that deals with 2D arrays. (0.5 weeks)

  • Assembly language program that deals with stack and recursion. (0.5 week)

  • Assembly language program that deals with bit manipulations using logical and shift instructions. (0.5 week)

Course Webpage