CS 2461: Course Outline and
Syllabus
Fall 2019
Schedule of Topics
When appropriate the chapters (from the textbook) are listed next to
each topic in the schedule.
- Introduction and Course Overview :
Chapter 1
- Module 1: Data representation and
operations: Chapter 2, Notes: (1 week)
- Bits and data types, binary
representation
- 2’s complement representation,
Floating point, ASCII codes.
- Arithmetic and logic operations
- Lab: Introduction to HW circuits.
- Module 2: Digital Logic structures :
Chapter 3, Notes. (4 weeks)
- Introduction to transistors and
logic gates- DeMorgan’s laws. Use simulator. (Week 2)
- Lab: Introduction to Digital Logic chips (7400 series)
- Combinational logic: Decoder, Mux,
Adder, and intro to PLAs: (Week 3)
- Homework 2
- Lab: Building combinational circuits
- Project 1: HW project using 7400 series chips
- Sequential Logic: Latches,
registers, states and finite state machines: (Week 4)
- Concept of memory, address space.
- Data representation and storage in real systems - a detour.
- Homework 3
- Lab: Building digital circuits
- Project 2: Implement Boolean functions in C programming language
- Module 3: The von Neumann Model of Computers and Instruction Set Architecture/Assembly Programming : (4 weeks)
- Basic components: memory, CPU, I/O; Chapter 4,5 (Week 5/6)
- Putting it all together -- Instruction processing: inst cycle,
control and the microarchitecture
- Intro to the LC3 computer
instruction set
- Project 3 - Processor Design
- Labs: Assembly programming
- The ISA overview of the LC-3
processor: registers, inst types, addressing, opcodes, condition codes,
data types; Data movement instructions and Control Instructions - Chapters 5,6,7 (Week 6)
- Simple Assembly Language programming
- The assembly, linking, loading
processes
- Homework 4
- Exam
1. All material
upto (including) Chapter 5. (Week 6/7- October 10)
- Overview of I/O, Trap routines and
subroutines: Chapters 8,9, More assembly (Week 7)
- The Stack - implementation of stacks, interrupt driven I/O. Chapter 10
(Week 8)
- Project 4 ( Assembly Programming)
- Module 4: Translation C programs to Assembly -- Introduction to Systems Programming : (4 weeks)
- Running programs on a system, Review
of C programming - operators, variables, and Intro to run-time system
stack. Chapter 11--14, Notes (Week 9)
- Program Execution process: compiling, linking, loading, I/O in C, Make files, gcc compiler, debugging, gdb.
Chapter 11, Chapter 18, Notes (Week 10)
- Run-time stack: Pointers, Arrays, Structs -- how
does a C
program get executed in assembly/processor, code generation. Dynamic memory and malloc.
Chapter 16,17,18,19. (Week 11)
- Project 5 (C Programming)
- Exceptional control flow, Stack
–
smashing the stack attacks Notes
- Exam
2. (Week 11 or 12 - November 19)
- Module 5: Memory Hierarchy and Program Performance (1.5 weeks)
- The memory hierarchy and memory
management: Cache Memory - Notes, (Week 13)
- Code optimization for memory
- Measuring program performance and Code
Optimization Notes (Week 14)
- Project 6: Optimizing C code
- Review
Back to course
homepage