Honors Section Specifics
Overview and Goals
The central theme of the H is to explore both the C language and assembly code in small groups (typically pairs), mostly in-class, in the context of a little arduino device. We will work a bit in advance of the regular section and do creative work with the device.
We'll provide the arduino, though it's $20 if you want more of them to play with. It's much cooler than a classic arduino, having built-in sensors, RGB LEDs, and a little speaker. There's a good bit of library code associated with the device to look at, some of which is in assembly, and some of it could even use some fixing.
This experience with a simple embedded device like the arduino is meant to help students, after the class is done, to work on small systems: hackathon projects, wearables, environment monitoring, robots, etc. The tangible hardware complements the typical 216 content: the underlying mechanisms of registers, interrupts, stacks, functions, and the rest. We will still complete the standard 216 projects because I like them so much. I'm rather proud of the shell and performance optimization projects, but the usual class doesn't often work much on performance optimization.
To help you complete the term project, we'll also work through some basic circuits, in enough detail to read datasheets and understand the circuit of the circuit playground. We will make sure it is not hard.
The syllabus and policies of the class are as they are for the the broader 216 with the following exceptions.
I encourage you to pick up a copy of Kernighan and Ritchie, which has a much more compact presentation of C basics than is present in friendlier textbooks. At the same time, I learned C from "Teach yourself C in 21 days"... so just find something you want to read. A textbook you read is worth much more than one that gathers dust.
The following table summarizes how the work in the honors section will feature into the grading breakdown. In general, this reduces weight on exams and increases weight on in-class work.
NOTE: Should assignments become unexpectedly easy or difficult, I may alter this breakdown, but will attempt to do so as little as possible.
|25%||216 Standard Projects|
|4%||Additional Project (optimization)|
|5%||Honors Term Pair Project|
|8%||216 Standard Announced Quizzes
|5%||216 Standard Exercises, Lab, Lecture Work|
|2%||Honors Discussion Exercises and Lecture Work|
|25%||Midterms(2), (11% and 14%)|