This course teaches how computers really work, starting from digital logic. It covers basic CPU design built from combinational and sequential logic, an introduction to programming in assembly, and basic OS design requirements, with an emphasis on embedded system design. We use the Nios II assembly language on DE10-lite boards. Topics covered include register logic, number representations, basic pipeline processing, caches, assembly, calling conventions, memory layout, memory-mapped I/O, interrupts, and OS design. See the schedule for details.
| Professor | Eric Wustrow Office hours: Monday 2:30–3:30pm, Friday 11:30–1:30pm or by appointment |
| Teaching Assistants | Min-Yang Hsu (Office hours: Tuesday 3:00-4:00pm ECCR 1B10; Thursday 4:00-5:00pm ECCR 1B10) Caroline Avram (Office hours: Friday 2:20-3:20pm ECCR 1B10) Zach Moolman (Office hours: Monday & Wednesday 11:00-12:00 ECCR 1B11) |
| Prerequisites | ECEN 1310 C Programming for EE/CE (or equivalent) ECEN 2350 Digital Logic |
| Lectures | Mon./Wed./Fri. 1:25–2:15pm, EKLC E1B20 |
| Communication |
We'll use Slack for general discussion and questions about course material. For administrative issues, DM me on Slack (or email ewust@colorado.edu) Assignments will be distributed here and collected via Canvas. |
| Reference Books |
No textbook is required, but if you would like additional references, we recommend: Marilyn Wolf, "Computers as Components", 3rd Edition, 2012, Morgan Kaufmann Publishers, ISBN-978-0-12-388436-7 Noam Nisan, Shimon Schocken, "The Elements of Computing Systems: Building a Modern Computer from First Principles", ISBN 978-0262640688 |
| Resources |
DE10-Lite emulator NAND Game |
| Homework | 20% | Five Homeworks, completed on your own in Moodle |
| Programming Projects | 25% | Four programming projects, completed on your own, typically using the DE10-Lite board or simulator. |
| Interview grading | 10% | Brief in-person check of understanding of project concepts. |
| In-class midterm exams | 20% | Two during-class (50-minute) exams (see schedule). |
| Final Exam | 25% | One exam covering all material from the course |
It is your responsibility to act in accordance with the Honor Code, and ensure that the work you submit is your own. You may work with other students to understand material and concepts, but the work that you turn in must be entirely your own. Failure to do so will result in failing the course. If in doubt, please ask the course staff for guidance.