CS 201: Computer Systems Programming II 4 credit hours Winter 2009 Syllabus -------- Class time: M/W, 4:40-6:30 Classroom: DLC/Urban Center 204 at PSU Office hours: M/W, 3:00-4:00 at PSU office in FAB or by appointment OR send email. PSU Office: FAB 120-14 Email: jrb@cs.pdx.edu Class Web Page: http://www.cs.pdx.edu/~jrb/cs201.html PSU academic calendar: http://www.pdx.edu/registration/calendar.html#2008-2009 Mailing list: mailman list: Please join. https://mailhost.cecs.pdx.edu/mailman/listinfo/cs201jrb Please note that the mailing list is archived on the web. Don't ask a question until you look there first. Required Texts(2): ------------------ 1. Computer Systems: A Programmer's Perspective, Bryant and O'Hallaron, Prentice Hall, 2002. 2. The C Programming Language, 2nd ed., Kernighan and Ritchie, Prentice Hall, 1998. Pre-requisites: -------------- CS 200 - Computer Systems Programming I. CS 161&162 (or two-quarters of programming languages). Course description: ------------------- Introduction to computer systems from a software perspective, including systems programming using C and assembly language, basic computer organization, representation of data, machine instruction sets and assembly programming, relationship between C code and assembly code, C pointers and structures and their machine-level representation, linking & loading, and program debugging. ------------------------------------------------------------------------------- Schedule: This schedule is rough and may change as we progress through the quarter. We only give the week and a rough idea of the topics that week. Lecture slides are found on the home page and fit the readings/lecture order below. ---------- January February March S M Tu W Th F S S M Tu W Th F S S M Tu W Th F S 1 2 3 1 2 3 4 5 6 7 1 2 3 4 5 6 7 4 5 6 7 8 9 10 8 9 10 11 12 13 14 8 9 10 11 12 13 14 11 12 13 14 15 16 17 15 16 17 18 19 20 21 15 16 17 18 19 20 21 18 19 20 21 22 23 24 22 23 24 25 26 27 28 22 23 24 25 26 27 28 25 26 27 28 29 30 31 29 30 31 Classes begin: Jan 5 Finals: March 16-21 Holidays: Jan 19 (includes this class) B&O and K&R are abbreviations for the course textbooks. Coverage: B/O Chapters 5, 6, 8-11; K/R Chapter 8. Week Topic/s Reading Assignment 1. Jan 5/7 standard i/o, B/O, c. 11 A1 on wed Unix system calls K/R, c. 8 debugging 2. Jan 12/14 time and profiling B/O, c. 9 exceptions, B/O, c. 8.1 3. Jan 19/21 process system calls B/O, c. 8.2-8.4 A1 in on wed, A2 out Jan 19 - holiday 4. Jan 26/28 signals B/O, c. 8.5 5. Feb 2/4 optimization B/O, c. 5.1-5.6 A2 in on wed, A3 out 6. Feb 9/11 midterm review midterm on wed. 11 7. Feb 16/18 optimization cont. B/O, c. 5.7-5.15 8. Feb 23/25 memory hierarchy B/O, c. 6 A3 in on wed, A4 out 9. Mar 2/4 cont. virtual memory B/O, c. 10 10. Mar 9/11 virtual memory cont. A4 in on wed final: Monday Mar 16, 1730-1920 according to PSU final schedule, same class room. ------------------------------------------------------------------------------- Programming Assignments/Homework: ---------------------------------- There will be 4 - 5 assignments, two exams, and possibly several quizzes. All programming assignments will be done using the C programming language and the Linux operating system. Your programs must compile and run on the CS Linux Lab machines (linuxlab.cs.pdx.edu), where your programs will be tested. You must work alone on all assignments (unless otherwise specified). See the class web page for assignments and for information about help and getting computer accounts. Homework/programming assignments will be posted on the class web page and are also mentioned on the syllabus schedule above as A1, A2, etc. Grading: -------- Midterm: 100 points Final: 100 points Programming assignments: 100 points ---- Total: 300 points There may be an occasional additional homework assignment or quiz. Your final grade for the course is determined by the percentage of the points you earn with respect to the total possible. Each letter grade occupies roughly a 10 point spread (A: 90%-100%, B: 80%-90%etc). Minus and plus grades will be awarded too; e.g., A- will be 90-92. B+ will be 88-89. Important Class Policies ------------------------- 1. Late assignments will NOT be accepted. Assignment submission emails are due 10 minutes before the class begins; assignment hardcopies are due at the beginning of the class. 2. Cheating will not be tolerated. It is considered cheating if you copy part or entire work created by others or you supply part or entire of your work to other students. Punishment for cheating is severe -- it results in a zero mark for that assignment or exam in question plus a letter to the CS Department Chair describing the incident. Stricter penalties may apply for repeat offenders. 3. Requests for regrading must be done within one week of the time the graded work is made available for pickup. Note that a request for regrading may result in re-evaluation of the entire exam or project work and your total grade may increase or decrease as a result. 4. Makeup Exams will not be given except in case of medical or family emergencies. If an emergency arises and you miss an exam, contact the instructor as soon as you can to arrange for a makeup exam. Students who take a makeup exam will use the PSU Test Proctor Service and pay a fee for their service. Note that travel (even work-related travel) is not considered an emergency. 5. Quizzes given in class may not be made up.