CS-210. Computing Systems I: Machine Organization
Course web page: http://www.cs.binghamton.edu/~pmadden/cs210
Fall 2008

Instructor: Patrick H. Madden email pmadden@acm.org
Lectures: MWF
TAs: Michael Hines, Gowrishankar Sivanathan
There are four lab sections; check with BUSI for times
Text: Patt & Patel: Introduction to Computing Systems - From Bits and Gates to C & Beyond - 2nd Ed.
The Textbook Resource page has a lot of useful stuff
There will be a required lab kit (about $15); details will be available shortly.
Atmel ATtiny2313 documentation
AVR Studio
WinAVR
Recommended: check out TopCoder algorithms competitions, to get an idea of the sort of folks you'll be up against in the job market.
Highly recommended: join the ACM Student chapter, and try the local programming contests.

Grading:

3 in-class exams, 25% each
One final, 25%.

There will be periodic in-class pop quizzes, and some homeworks for over the weekend. For every 2 you miss, your grade is lowered by 1 percentage point. So -- it's ok if you miss a class or two, but if you make a habit of it, your grade will suffer.

Labs are required, and you MUST complete your work during lab. If you're paying attention and working at a reasonable pace, this will not be difficult. You may miss or fail to complete one lab. For each subsequent lab, your grade will be lowered by 2 two points.

Grade ranges are typically [90-100%] = [A- to A], [80=90%]=[B- to B+], [70-80%]=[C- to C+], and so on. Depending on the actual scores, the percentage range may change slightly.

As an example: suppose your scores on the exams are 70, 90, 80, and 80. This gives an average of 80, which would be a B-. If you have missed 3 pop quizzes (resulting in 1% deduction) and 4 labs (first one is skipped, three others gives a 6% deduction), you wind up with a total deduction of 7%, with the final average being 73. This would fall into the C- range. You probably should have come to class more, and not missed those labs.

If I catch anyone cheating (or helping someone cheat), they will fail the course. There will not be make-up dates for labs, or late homeworks accepted. Get things done on time.

Homeworks and Labs

Homeworks will be assigned on Friday, and should be turned in at lab.

Rough Schedule

The Google Calendar will likely be the most up-to-date schedule, as it will be updated periodically during the semester. Note that the class times listed on the calendar are not correct (Google Calendar is limited to half-hour schedule increments).
Monday, August 25 First lecture
Wednesday, August 27 Chapters 1 and 2, binary, hex
Friday, August 29 Chapters 1 and 2, binary, hex, floating point
Wednesday, September 3 Chapter 3, transistors
Friday, September 5 Chapter 3, transistors
Monday, September 8 Chapter 3, transistors
Wednesday, September 10 Chapter 3, transistors
Friday, September 12 Chapter 3, DeMorgan's Law
Monday, September 15 Chapter 3, Decoders and MUXes
Wednesday, September 17 Chapter 3, Adders
Friday, September 19 Chapter 3, PLAs, Karnaugh Maps
Monday, September 22 Karnaugh Maps
Wednesday, September 24 Karnaugh Maps
Friday, September 26 Exam 1
Friday, October 3 Chapter 3, RS latches
Monday, October 6 Chapter 3, Gated D latch
Wednesday, October 8 Chapter 3, Registers
Monday, October 13 Chapter 3, Memory
Wednesday, October 15 Chapter 3, Sequential Machines
Friday, October 17 Chapter 3, Sequential Machines
Monday, October 20 Chapter 4, von Neumann machines
Wednesday, October 22 Chapter 4, von Neumann machines
Friday, October 24 Chapter 4, von Neumann machines
Monday, October 27 Chapter 5, 6, 7. Assemblers and the LC3
Wednesday, October 29 Chapter 5, 6, 7. Assemblers and the LC3
Friday, October 31 Exam 2
Monday, November 3 Chapter 8, I/O
Wednesday, November 5 Chapter 8, I/O
Friday, November 7 Chapter 8, I/O
Monday, November 10 Chapter 9, traps and subroutines
Wednesday, November 12 Chapter 9, traps and subroutines
Friday, November 14 Chapter 9, traps and subroutines
Monday, November 17 Chapter 10, the Stack
Wednesday, November 19 Chapter 10, the Stack
Friday, November 21 Chapter 10, the Stack
Monday, November 24 Chapter 10, the Stack
Wednesday, November 26 Exam 3
Monday, December 1 Chapter 11, programming in C
Wednesday, December 3 Chapter 11, programming in C
Friday, December 5 Chapter 11, programming in C
Monday, December 8 Multiple threads, processes
Wednesday, December 10 Virtual memory
Friday, December 12 Last day of classes, prep for the final

Announcements