| CSA 278 – Tentative Schedule |
This semester I also took Computer Architecture (CSA 278) with Dr. Dhananjai M. Rao. Attending classes regularly can be rough if you’re not fascinated by the material, but he does make entertaining jokes and goes off on a lot of tangents. Plus almost completely goes over handouts before you turn them in for easy points. Definitely do all the handouts and assignments as they will really help your grade.
Anyway, I’ve copied the “tentative schedule” from blackboard. The schedule was pretty well kept throughout the semester and it’s not real important, but I’ve included it more to follow along with uploaded assignments and handouts than anything else.
Here is a tentative schedule for this course. I will suitably pace the course as the semester progresses.
Week 1 (Aug 25, 27, 29): Introduction & Fundamentals
- Introduction to class room environment and policies.
- Initial outcomes survey for the course.
- Computer Abstractions and Technology (Chapter 1).
Week 2 (Sept 3, 5): Boolean Algebra and Logic Circuits (Appendix B)
- Sept 1 (Labor day): No class.
- Introduction to Boolean Algebra.
- Laws of Boolean algebra and Truth Tables.
- Introduction to logic circuits.
- Basic logic gates.
Week 3 (Sept 8, 10, 12): Complex logic circuits
- Multiplexer, de-multiplexer
- Flip-flops
- Registers and Memory
Week 4 (Sept 15, 17, 19): Number representation (Chapter 2)
- Binary number representation (Chapter 3.1).
- Conversion from decimal to binary numbers and vice versa.
- Representation of signed numbers (Chapter 3.2).
- Signed number representation (1’s complement and 2’s complement).
Week 5 (Sept 22, 24, 26): Arithmetic and Logic Circuits (Appendix B)
- Half adder, full adder, and ripple carry adder.
- 1-bit ALU and n-bit ALU.
- Programming the ALU.
Week 6 (Sept 29. Oct 1, 3): Introduction to x86 architecture (Chapter 2)
- Overview of an x86 processor.
- Introduction to assembly language programming (notes).
- Assembly process and instruction encoding.
- Memory addressing modes.
Week 7 (Oct 6, 8, 10): Exam 1 and assembly basics
- Basics of assembly language programming.
- Exam 1 on Thursday, Oct 9 2008, from 7:00 PM to 9:00 PM (room TBD).
Week 8 (Oct 13, 15): More assembly programming
- Arithmetic and logic instructions.
- Branching and looping in assembly.
- Oct 17 (Fall Break): No class
Week 9 (Oct 20, 22, 24): Assembly continued
- Discussion on procedure calls.
- Working with the stack.
Week 10 (Oct 27, 29, 31): String processing
- Memory addressing revisited.
- String processing in assembly.
Week 11 (Nov 3, 5, 7): Floating point numbers
- Representation
- x86 FPU and instructions.
Week 12 (Nov 10, 12, 14): Pipelining (Section 6.1 to 6.6)
- Instruction level parallelism.
- Introduction to pipelining.
- Hazards in a pipeline.
Week 13 (Nov 17, 19, 21): Exam 2 and Superscalar architecture
- Exam 2 on Thursday, Nov. 20 2008, from 7:00 PM to 9:00 PM (room TBD).
- Superscalar architecture and concepts.
- Introduction to SSE instruction set.
Week 14 (Nov 24): Assessing & Understanding Performance (Chapter 4)
- CPU performance and its factors.
- Thanksgiving break.
Week 15 (Dec 1, 3, 5): Assessing & Understanding Performance (Chapter 4 Contd.)
- Evaluating Performance.
- Benchmarks.
Week 16 (Dec 8, 10, 12): Multi-core processors and Review
- Introduction to multi-core processors.
- Catch up.
- Review.



