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
- Number representation
1. Integers and real
2. Bases 2,8,16
3. Unsigned numbers
4. Signed (2's compliment) numbers
5. BCD numbers - Computer Arithmetic
1. Boolean algebra
2. Boolean Theorems
3. Adding
4. Subtracting
5. Working with positive and negative numbers
6. 2's compliment arithmetic - 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 - Sequential Logic
- 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 - Flip Flops/Latches
1. Clocked
2. Asynchronous
3. Synchronous
4. Data (D) flip flops/latches
5. J-K flip flops - Finite State Machines
1. Excitation Tables
2. State Tables
3. State Diagrams - Computer Aided Design
- Computer Simulation
- Emulators
- Serial and Parallel data flow
- Parity
- Codes (ASCII/EBCDIC)
- Data Busing and Data Paths
1. Registers
2. Tri-state buffers
3. Critical path
4. Clocking
5. Timing - Memory Organization
- Formats
1. Codes
2. Encoding
3. Decoding
4. Addressing
5. Operands - 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 - Instruction Cycles
1. Fetch
2. Execute - Introduction to assembly language programming.
1. Loading registers
2. Basic integer arithmetic - 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 - Relationship of a high-order programming language (C) to assembly
language. - Relationship of assembly language to machine code.
- The implementation of machine code in hardware.
- 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