CSE220 - System Fundamentals I

2018 Spring 2017 Fall 2017 Spring 2016 Fall 2016 Spring 2015 Fall 2015 Spring

This course introduces 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.

The course is taught in a problem-solving format. Students are expected to solve problems similar to those explored in lecture. Practice problems are provided to aid in preparation. Recitations provide students with the opportunity to ask questions and to practice problems in a smaller group setting.

Topics covered include:

  • Assembly Language Programming (MIPS)
  • Number Representations: Signed Magnitude, 1’s complement, 2’s complement, Floating Point
  • Boolean Expressions and Simplification (karnough maps)
  • Digital Logic Design and Basic Logic Gates, including Multiplexors and Decoders
  • Adders and Arithmetic Logic Units
  • Single-cycle Datapath
  • Multi-cycle Datapath
  • Pipelined Datapath

Programming Assignments cover the following topics:

  • Basic Instruction Set: Register Purpose/Usage, Syscalls
  • Function Calls (parameter passing through registers and stack) and Activation Records
  • Register Conventions
  • Memory Organization and Access
  • Stack Management and Usage
  • 1D and 2D arrays (Row-major vs Column-major order)
  • Memory-mapped I/O (MMIO) and File I/O

Past Projects include:

  • IPv4 header field access and header validation
  • IPv4 packet manipulation
  • Number Base conversions and bit manipulation
  • String Manipulation functions
  • Cryptography Cipher and Compression schemes
  • Recursive functions
  • Tree traversal with “structs”
  • VT100 display with ANSI escape codes
  • Java-syntax highlighter
  • 2D Board-based games: Connect 4, 2048, Minesweeper, DOS Lawn Mower game

220 LawnMower  1 220 Logo VT100 1 220 Logo VT100 2