Fundamentals of Computer Systems
Fall 2016 offering at LUMS as CS 225
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”?
Tue/Thu 11:30am–1:10pm in TBD
|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.)|
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.
Introduction & administrivia
Integer & floating point operations
Eid ul Azha
Eid ul Azha
Data movement & arithmetic
Arrays & structures
Instruction set architecture
Logic Design & Verilog
Sequential processor design
Sequential processor details
Pipelined processor design
Stalls and bubbles
Memory hierarchy & locality of reference
Introduction to cache design
Linking & loading programs
Interrupts & hardware interfacing
Dynamic memory allocation & garbage collection
12th Rabi ul Awal
Memory related bugs