BIL 220 - Introduction to Systems Programming (Spring 2012)
A Leibniz Stepped Reckoner calculator (Courtesy of the Deutsches Museum, München)
Instructor:    |
Aykut Erdem (Section 1) |
Erkut Erdem (Section 2) |
aykut-at-cs.hacettepe.edu.tr |
erkut-at-cs.hacettepe.edu.tr |
|
Office: 111, Tel: 297 7500 / 146 |
Office: 114, Tel: 297 7500 / 149 |
|
Office Hours: Tuesday, 13:00-15:00 |
Office Hours: Friday, 13:00-15:00 |
|
Lectures:  |
Thursday  |
09:00-11:45 @ D1 (Section 1) |
Thursday  |
09:00-11:45 @ D3 (Section 2) | |
TAs: |
Ali Caglayan |
Oguzhan Guclu |
alicaglayan-at-cs.hacettepe.edu.tr |
oguzhanguclu-at-cs.hacettepe.edu.tr |
|
Office: 218, Tel: 297 7500 / 123 |
Office: 218, Tel: 297 7500 / 123 |
|
Office Hours: Wednesday, 14:00-16:00       |
Office Hours: Friday, 09:30-11:30 |
Course Description:
This course covers basic topics on systems programming: data representation, computer arithmetic, assembly language, code optimization, memory organization and management, linking, exceptional control flow, virtual memory, system-level I/O. The course will help students develop a deep understanding of inner workings of computer systems, enabling them to become better programmers.
Textbook:
Computer Systems: A Programmer’s Perspective, 2/E (CS:APP2e), Randal E. Bryant and David R. O'Hallaron, Prentice Hall, 2011
Grading Policy:
Programming Assignments   |
25% |
Midterm I |
15% |
Midterm II |
15% |
Final |
40% |
Class participation |
5% |
Important Dates:
Midterm I |
29 March 2012 |
Midterm II     |
|
Final |
30 May 2012 |
Detailed Schedule:
Week |
Date   |
Topic |
From the book |
Additional Readings |
Assignments |
1 |
16/2 |
Overview, bits, bytes [pdf] |
1, 2.1 |
The Strange Birth and Long Life of Unix, |
|
2 |
23/2 |
Integer representations and integer arithmetic [pdf] |
2.2-2.3 |
||
3 |
1/3 |
Floating point [pdf] |
2.4 |
What Every Computer Scientist Should Know About Floating-Point Arithmetic, |
|
4 |
8/3 |
3.1-3.5 |
Anatomy of a Digital Pest |
PA1 (datalab) due, |
|
5 |
15/3 |
Assembly: Control structures and procedures [pdf] [codes]   |
3.6-3.7 |
||
6 |
22/3 |
3.8-3.14 |
The Internet Worm Program: An Analysis |
PA2 (bomblab) due |
|
7 |
29/3 |
Midterm 1 [exam] [sample solution]   |
Smashing the Stack for Fun and Profit |
PA3(bufferlab) out (.pdf) |
|
8 |
5/4 |
The Memory hierarchy [pdf] |
6 |
||
9 |
12/4 |
7 |
Linkers and Loaders |
PA3 (bufferlab) due |
|
10 |
19/4 |
8 |
|||
11 |
26/4 |
System-level I/O [pdf] [codes] |
10, 5 (5.11-12 excl.) |
||
12 |
3/5 |
Midterm 2 [exam] [sample solution] |
|||
13 |
10/5 |
Virtual memory [pdf] |
9.1-9.8 |
Virtual Memory Management in the VAX/VMS Operating Systems |
|
14 |
17/5 |
|
|
PA4 (shelllab) due |
|
15 |
30/5 |
Final [exam] [sample solution] |
|||
Communication:
The course webpage will be updated regularly throughout the semester with lecture notes, programming and reading assignments and important deadlines. All other communications will be carried out through Piazza. Please enroll it by following the link https://piazza.com/hacettepe.edu.tr/spring2012/bil220