skip to main content

CS 398 - Data Driven Discovery

Spring 2021

Official Description

Subject offerings of new and developing areas of knowledge in computer science intended to augment the existing curriculum. See Class Schedule or departmental course information for topics and prerequisites. Course Information: May be repeated in the same or separate terms if topics vary.

Course Director


Computer Organization and Design, Revised Fourth Edition, Fourth Edition: The Hardware/Software Interface by Patterson & Hennessy

Learning Goals

be able to design modest combinational circuits (20 - 30 gates) from an natural language (e.g., English) specification (b) (c)
be able to design finite state machines of moderate complexity (~10+ states) from a natural language specification. Furthermore, they should be able to implement these FSMs using a collection of gates and flip flops. (b) (c)
be able to analyze the design of a simple processor, specify the control signals for supported instructions, and modify it to implement new instructions. (b) (c)
be able to translate small (20 line) C programs that include recursion and pointers into MIPS assembly, observing calling conventions and stack management. (c) (k)
be able to write code that uses memory-mapped I/O and interrupts given interface documentation. (c) (k)
be able to demonstrate an understanding of the performance pitfalls of pipelined processors with cache memory systems by predicting the performance of code fragments on simple pipelines and cache memory systems. (b)
be able to optimize the cache performance of a simple loop nest through cache-aware programming techniques (b) (c)
be able to recognize synchronization, coherence, and consistency pitfalls that could impact the execution's result or performance of simple programs executing on a shared memory parallel processor. (b)
be able to work in small groups on open ended problems (b) (d)

Topic List

Combinational Logic Design
Sequential Logic Design
Computer Organization
Assembly Language
I/O and interrupts
Caching and Virtual Memory
Cache-Aware Programming
Hardware support for Parallel Programming (brief intro to coherence, consistency and atomic operations)

Assessment and Revisions

Revisions in last 6 years Approximately when revision was done Reason for revision Data or documentation available?

Required, Elective, or Selected Elective


Last updated