Welcome budding computer scientists and engineers! This semester you enter a brave new world where the shroud of mystery surrounding computers is slowly removed. Unfortunately, we won't be able to remove all the mystery, but you'll see that no magic is involved.

Description

This course provides you with a basic understanding of how computers work. Starting from basic number and data representation we explore how computers store and manipulate information to perform computation. This is followed by higher-level systems designs including memory and input/output. We conclude with a brief discussion of advanced topics in computer systems design.

Topics covered include: C Programming, computer systems organization, machine language and assembly programming, machine representation of data and instructions, computer arithmetic, basic logic design, the CPU and instruction interpretation, memory organization, peripherals and I/O.

Prerequisites: Compsci 201 or equivalent, ability to program in a high level language.

Meeting Time & Location

Schedule is now indicated on Sakai.
Office Hours: See Sticky announcement on Piazza

Instructor

Alvin Lebeck
Email: alvy AT cs.duke.edu
Office: D308 Levine Science Research Center

Teaching Associate

Yesenia Velasco

Graduate Teaching Assistants

Phyllis Ang, Shujun Q, Vinith Sharma

Undergraduate Teaching Assistants

Abhi Jadhav, Anna Go, Austin Odell, Bowen Jiang, Camden Vassallo, Cary Shindell, Elizabeth Bartusiak, Jack Ellwood, Joanna Li, Joe Zuo, Joyce Zhou, Karen Deng, Katelyn Chang, Mary Wang, Morgan Langenhagen, Nathaniel Choe, Radu Vasilescu, Ryan Piersma, Samuel Thompson, Tharun Raj Mani Raj (Raj), Thomas Butler

Discussion Forum

We are using Piazza for class discussion. The system is highly catered to getting you help fast and efficiently from classmates, the TA, and myself. Rather than emailing questions to the teaching staff, you should post your questions on Piazza.
  • Find our class page at: https://piazza.com/duke/spring2020/compsci250d01dsp20/home