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

Instructor: Patrick H. Madden email pmadden@acm.org
Lectures: T/Th 10:05-11:30am AAG008.
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.
Lab kit: to be determined, but available from Unicorn Electronics (near Wegmans/Oakdale Mall)

Grading:

3 in-class exams, 10% each
One final, 20%
In-class pop-quizzes, 20% total
Lab assignments and projects, 30%

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.

Announcements

There will be no lab during the first week.
Go to the mailing list info page and sign up during the first week of classes. The URL is https://www.cs.binghamton.edu/mailman/listinfo/cs210.

Lecture notes will not be available on the web; bring a notebook for taking notes. On the exams, quizzes, and assignments, you are responsible for knowing all the material. Labs will normally be done with students paired up (there's limited workspace); be sure to understand what you're doing, so that you'll be prepared for the exams.

List of Topics

  1. Number representation
    1. Integers and real
    2. Bases 2,8,16
    3. Unsigned numbers
    4. Signed (2's compliment) numbers
    5. BCD numbers
  2. Computer Arithmetic
    1. Boolean algebra
    2. Boolean Theorems
    3. Adding
    4. Subtracting
    5. Working with positive and negative numbers
    6. 2's compliment arithmetic
  3. Combinatorial Logic
    1. Theorems
    2. Truth Tables
    3. Karnaugh Maps
    4. Equivalent circuits
    5. Hardware substitutions
    6. Modifying circuits
    7. Simulation of basic logic gates
    8. Waveforms from an existing circuit
    9. Circuit design from waveforms
  4. Sequential Logic
  5. Sequential Circuit Design
    1. Arithmetic - Signed 2's Compliment addition and subtraction
    2. Multiplexers/demultiplexers
    3. Adders
    4. Subtractors
    5. Programmable Logic Arrays (PLA)
    6. Random Access Memory (RAM) and Register Files
    7. Decoders
    8. Encoders
  6. Flip Flops/Latches
    1. Clocked
    2. Asynchronous
    3. Synchronous
    4. Data (D) flip flops/latches
    5. J-K flip flops
  7. Finite State Machines
    1. Excitation Tables
    2. State Tables
    3. State Diagrams
  8. Computer Aided Design
  9. Computer Simulation
  10. Emulators
  11. Serial and Parallel data flow
  12. Parity
  13. Codes (ASCII/EBCDIC)
  14. Data Busing and Data Paths
    1. Registers
    2. Tri-state buffers
    3. Critical path
    4. Clocking
    5. Timing
  15. Memory Organization
  16. Formats
    1. Codes
    2. Encoding
    3. Decoding
    4. Addressing
    5. Operands
  17. Design of a small digital computing system, including at least:
    1. Registers
    2. Data busing, Control busing, tri-state buffers
    3. Clocking/System timing
    4. RAM
    5. Control Unit
    6. ALU
    7. Channels with multiplexers and demultiplexe
    8. At least one I/O device
    9. Instruction Decoder
    10. Instruction Counter/Pointer
    11. State Counter
  18. Instruction Cycles
    1. Fetch
    2. Execute
  19. Introduction to assembly language programming.
    1. Loading registers
    2. Basic integer arithmetic
  20. Introduction to programming in C
    1. Basic Arithmetic Operations
    2. Basic formatted I/O
    3. Integer and character data
    4. Basic Control Structures
    5. Global Variables
  21. Relationship of a high-order programming language (C) to assembly
    language.
  22. Relationship of assembly language to machine code.
  23. The implementation of machine code in hardware.
  24. At least 10 assigned projects
    1. More than half of assigned projects require physical
    breadboarding
    2. At least one project involves a state machine
    3. At least one project involves a logic simulator
    4. At least one project using a C compiler/assembler