Course Syllabus

Overview

In this course we will take a look under the hood of computers. Modern computer systems are composed of several layered abstractions that interact in complex ways. One consequence of this complexity is that it can seem like there's a lot of magic happening behind the scenes. After taking this course you'll understand much of what might seem magical now, and be equipped to continue demystifying obscure technologies on your own.


Basic Logistics

Instructor Benjamin Ylvisaker
Paraprof Colter Fatt
Room Tutt Science 223
Meeting Time M-F, 9-noon
Office Hours M-Th, 2-4
Textbook Computer Systems: A Programmer's Perspective, 2/E (CS:APP2e) by Randal E. Bryant and David R. O'Hallaron
Note: This book is quite expensive, but excellent. Consider rental, if the price is daunting.

Schedule

Day Date Topic Reading Other
M 2-16 Comp Sys; C 1  
Tu 2-17 C; integral data 2.1-2.2 Data A
W 2-18 More data 2.3-2.4 Data B
Th 2-19 Fractional data 3.1-3.5 Data C
F 2-20 Assembly: Basics 3.6 Asm
Day Date Topic Reading Other
M 2-23 Assembly: Control 3.7 Data A
Tu 2-24 Assembly: Procedures 3.8-3.9 Data B
W 2-25 Assembly: Data 3.10-3.14 Buf A
Th 2-26 Assembly: Advanced 6.1-6.3 Buf B
F 2-27 Memory Hierarchy 6.4-6.6 Cache A
Day Date Topic Reading Other
M 3-2 Caches 7.1-7.11 Cache B
Tu 3-3 Linking, Exceptions 8.1-8.5, 8.7 Shell A
W 3-4 Processes, Signals, System I/O 10 Shell B
Th 3-5 Memory 9.1-9.8 Malloc A
F 3-6 Memory 9.9-9.11 Malloc B
Day Date Topic Reading Other
M 3-9      
Tu 3-10 Exam    
W 3-11 Verification    

Scoring

Your score in Org will be based on the following:

  • Daily quizzes
  • Daily programming exercises
  • Honor programming assignments (3; one per weekend)
  • Final exam

Your scores on the daily programming exercises will not be averaged into your grade in the conventional way. Rather, you will get participation points for completing daily exercises on time. The more participation points you accumulate, the more low quiz grades will be dropped from your final score. You are permitted to work together and use absolutely any resources to complete daily exercises. You should think of daily exercises as an opportunity to study for the daily quizzes. The more work you put into the exercises, the easier the quizzes will be.

Daily Quizzes

The daily quizzes will start on the first Wednesday of the block. They will generally cover the topic of the daily exercise you turned in the previous morning. The quizzes will start at 11:30 and be designed to take less than 30 minutes. The daily quizzes will account for 35% of your final score.

Daily Programming Exercises

The daily programming assignments will be available by after class and due before class the next day. You will get no credit for late daily exercises. Daily exercises will be scored on a simple scale: 0=little or no evidence of work; 5=got started, but missing big pieces; 8=mostly right, but still missing an important piece or two; 10=good. The points you get on daily assignments are "participation points" and are not directly averaged in to your finals score. The more participation points you earn, the more low quiz scores will be dropped to compute your final average (exact formula TBD).

Honor Programming Assignments

Each Friday you will get an honor assignment (there will be no daily exercise on Fridays). The honor assignments will be due before class on Monday. You will be expected to work on your own on honor assignments. The honor assignments will be graded out of 100. Each day late will cost you 20 percentage points. The honor assignments together will be 45% of your final score.

Final Exam

The final exam will be given on Tuesday (the day before the last day of class). It will be cumulative. The final exam will be approximately all of the daily quizzes stapled together, filtered down and tweaked slightly. The final exam will be 20% of your final score.


Policies

Attendance

Attendance will be measured by the quizzes. In addition to your regular score, simply taking a quiz will earn you participation points. If you know you will miss class, talk with the instructor in advance. Retroactive adjustments for late/missed work will only be considered in extreme circumstances (held hostage, car accident, etc).

Disability Accommodations

If you have a disability and require accommodations for this course, please speak with the instructors privately as soon as possible so that your needs may be appropriately met. If you have not already done so, you will need to register with Accessibility Resources (Learning Commons at Tutt Library, Room 152, 719-227-8285), the office responsible for coordinating accommodations and services for students with disabilities. You must present a letter from Accessibility Resources to get any disability accommodations in this class.

Course Summary:

Date Details Due