We discuss how computers operate at fairly low level of abstraction and then discuss how computer systems build as layers and layers of abstraction. Our focus will be to introduce computer systems from the perspective of a programmer, rather from the more traditional perspective of a system implementer.

After taking this course, you will know the components of a computer and how do they fit together. How computers do arithmetic and how does the code you write actually execute? How does a program in a high level language like C get translated into a form the machine can execute? How can you write code likely to execute efficiently? How is information stored and accessed? How does your program access existing “libraries”?

Office Hours:

Tue/Thu 1:10–2pm, 9-120A

Office Hours:

TBD, CS Student Lounge

Office Hours:

TBD, CS Student Lounge

Course Information

Class meetings

Tue/Thu 11:30am–1:10pm in TBD


CS 100

Required text



20%Assignments (there will be bonuses but it will not make assignment marks more than 20)
40%Mid-term examinations (2 x 20% in-class exams)
30%Final examination (Comprehensive)
10%Attendance (Not counting the first 4 classes, you get 2 marks for each class you attend over 17 classes, upto 10 for all 22 classes.)


Academic dishonesty

You must not turn in work that is not yours. You must not enable someone else to turn in work that is not his or hers. Do not share your work with anyone else and adequately protect all your files. You must not allow someone to openly violate this policy because it diminishes your effort as well as that of your honest classmates.

Changing your exam answers after they have been graded, copying answers during exams, or plagiarizing the work of others will be considered academic dishonesty and will be subject to disciplinary penalties, including the possibility of failure in the course and/or dismissal from the University. Plagiarism detection software will be used on the programs submitted in this class.

Attendance & class decorum

Attendance is required. As per Computer Science Department policy, no one will be allowed in class after 5 minutes of scheduled start time. If you do not attend, do not expect me or any TA to repeat the material for you.

Your behavior should not be disruptive during class and should not hinder in other students’ learning. In particular do not chat with your neighbors. Keep your cell phones turned off in class.

Late submissions & missed exams

All work must be turned in by electronic submission before the deadline (no e-mailed submissions). Do not submit at the last moment. If you submit your assignment late even by a second, it will not be considered.

Under exceptional situations (e.g. emergency medical), I may give extra days but under no circumstance, the extra days will be awarded after the deadline has already passed.

Petitions for missed examinations approved by the Office of Student Affairs will most likely receive an average score after a deduction according to their semester performance.

Tentative Schedule


Introduction & administrivia

Ch 1

Information storage

Ch 2.1–2.2

Integer & floating point operations

Ch 2.3–2.4

Guest Lecture

No class

Eid ul Azha

Eid ul Azha

Program encodings

Ch 3.1–3.3

Data movement & arithmetic

Ch 3.4–3.5

Control flow

Ch 3.6


Ch 3.7

Arrays & structures

Ch 3.8–3.9

Buffer overflow

Ch 3.10


Instruction set architecture

Ch 4.1

Logic Design

Ch 4.2

Logic Design & Verilog

Ch 4.2

Sequential processor design

Ch 4.3

Sequential processor details

Ch 4.3


Ch 4.4

Pipelined processor design

Ch 4.5

Stalls and bubbles

Ch 4.5

Memory hierarchy & locality of reference

Ch 6.1–6.3

Introduction to cache design

Ch 6.4

Cache-friendly code

Ch 6.5–6.6

Linking & loading programs

Ch 7.1–7.9

Interrupts & hardware interfacing

Ch 8.1


Ch 8.2–8.4

Dynamic memory allocation & garbage collection

Ch 9.9–9.10

12th Rabi ul Awal

Memory related bugs

Ch 9.11