BBM 341 - Systems Programming (Fall 2012)
Lectures: Monday 13:00-15:45 @D1 (Section 1), @D2 (Section 2)
Curiosity’s tracks on Mars, 22 Aug 2012, Image Credit: NASA/JPL-Caltech
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: To be announced. |
Office Hours: To be announced. |
|
Lectures:  |
Monday  |
13:00-15:45 @ D1 (Section 1) |
Monday  |
13:00-15:45 @ D2 (Section 2) | |
TA: |
Kazım Sarıkaya |
|
kazimsarikaya-at-cs.hacettepe.edu.tr |
||
Office: 218, Tel: 297 7500 / 130 |
||
Office Hours: To be announced.       |
Course Description:
The subject matter of this third-year undergraduate course is to provide a programmer's perspective on how computer systems execute programs and store data. The course covers major concepts such as data representation, computer arithmetic, assembly language, code optimization, memory organization and management, linking, exceptional control flow, virtual memory, system-level I/O.
The main aim of the course is to help students to gain deep understanding of inner workings of computer systems, enabling them to become better programmers. Students will have hand-on experiences via a set of programming assignments. They will also read and discuss some research papers from the current literature.
Textbook:
Computer Systems: A Programmer’s Perspective, 2/E (CS:APP2e), Randal E. Bryant and David R. O'Hallaron, Prentice Hall, 2011
Prerequisites:
The course requires the students to have basic knowledge of computer architecture. Since students are also asked to complete some systems programming assignments, good programming skills (especially in C) will be helpful.
Grading Policy:
Written Assignments   |
5% |
Programming Assignments     |
20% |
Midterm exam |
30% |
Final exam |
40% |
Class participation |
5% |
Important Dates:
Programming Assignment 1 |
|
Programming Assignment 2 |
19 November 2012 |
Programming Assignment 3 |
17 December 2012 |
Midterm exam |
19 November 2012 |
Final exam |
To be announced. |
Detailed Schedule:
Week |
Date     |
Topic |
From the book |
Additional Readings |
Assignments |
1 |
10/1 |
Overview, bits, bytes [pdf] |
1, 2.1 |
||
2 |
10/8 |
Integer representations and integer arithmetic [pdf] |
2.2-2.3 |
||
3 |
10/15 |
Floating point [pdf] |
2.4 |
What Every Computer Scientist Should Know About Floating-Point Arithmetic, |
|
4 |
10/22 |
No class (Religious Holiday) |
|||
5 |
10/29 |
No class (Republic Day) |
PA1 due |
||
6 |
11/5 |
3.1-3.5 |
An Introduction to 64-bit Computing and x86-64, |
||
7 |
11/12 |
Assembly: Control structures and procedures [pdf] [codes 1] [codes 2] |
3.6-3-7 |
||
8 |
11/19 |
Midterm exam [exam] [sample solution] |
PA2 (bomblab) out (.pdf) |
||
9 |
11/26 |
3.8-3.14 |
The Internet Worm Program: An Analysis, |
||
10 |
12/3 |
The Memory hierarchy [pdf] |
6 |
PA2 due |
|
11 |
12/10 |
7 |
|||
12 |
12/17 |
8 |
|||
13 |
12/24 |
System-level I/O. [pdf] [codes] |
10, 5 (5.11-12 excl.) |
||
14 |
12/31 |
Virtual memory [pdf] |
9.1-9.8 |
Virtual Memory Management in the VAX/VMS Operating Systems |
PA3 due |
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/fall2012/bbm341
Policies:
All work on assignments must be done individually unless stated otherwise. You are encouraged to discuss with your classmates about the given assignments, but these discussions should be carried out in an abstract way. That is, discussions related to a particular solution to a specific problem (either in actual code or in the pseudocode) will not be tolerated.
In short, turning in someone else’s work, in whole or in part, as your own will be considered as a violation of academic integrity. Please note that the former condition also holds for the material found on the web as everything on the web has been written by someone else.