CS 201: Computer Systems Programming I

Course coordinates:
  
MW 2:00pm-3:50pm
  Unitus (UTS) 206
Class e-mail:
  cs201 at lists.pdx.edu
   Click here to join
Class WWW:
   http://thefengs.com/wuchang/work/courses/cs201
Instructor:
Wu-chang Feng
  wuchang at cs.pdx.edu
Office hours:
   4pm-5pm Monday
  By Appointment
  FAB 120-14 (4th Ave Bldg.)
TA:
John Kassebaum
   kassebaj at cs.pdx.edu
Office hours:
  W/Th 10:00am-11:00am
   Outside of FAB 120

Course syllabus here

Course objectives http://www.cs.pdx.edu/user/coursedetails/20

Tentative course schedule

Date

Reading

Topic

Slides

Assignment

9/27

K/R Ch 1-4

Introduction, Course Expectations
The C Programming Language

Slides
Examples

 

9/29

B/O Ch 1, Ch 7
K/R Ch 7

The C Library, GDB
Computer System Organization

Slides
Examples

 

10/4

B/O Ch 7

Computer System Organization

Slides
Examples

 

10/6

B/O Ch 2.1-2.2

Data Representation

Slides
Examples


10/11

B/O Ch 2.3-2.5

Arithmetic and Floating Point representation

Slides
Examples

10/13

B/O Ch 3.1-3.5

IA32 Data Access and Operations

Slides
Examples

A1 Due
Submission instructions

10/18


Midterm Exam (K/R Ch 1-4,7, B/O Ch 1-2)


Sample Midterm

10/20

B/O Ch 3.6

IA32 Control Flow

Slides
Examples

 

10/25

B/O Ch 3.7

IA32 Procedures, Stack smashing

Slides #1

Slides #2
Examples

 

10/27

B/O Ch. 3.8, K&R Ch. 5.1-5.10

IA32 Pointers and Arrays

Slides
Examples

A2 Due
Submission instructions

11/1

B/O Ch. 3.9-3.10, K&R Ch 6

IA32 Structures, function pointers, embedded assembly

Slides


 

11/3

B/O Ch 3.11, 3.14, 3.15
K/R Ch. 5.11-5.12

x86-64, SIMD

Slides
Examples


11/8

B/O Ch 5

Optimizing program performance

Slides


A3 Due
(Hard copy in class)

11/10

B/O Ch 5

Optimizing program performance

Slides

 

11/15

B/O Ch 6.2-6.8

Cache memories

Slides

 

11/17

B/O Ch 6

Cache memories

Slides
Examples

 

11/22

B/O Ch 8

Exceptional control flow

Slides


A4 Due
(Hard copy in class)

11/24

No class

     

11/29

B/O Ch 8

Exceptional control flow

Slides

 

12/1

 

Exam review

 

A5 Due
(Hard copy in class)

Sample Final

12/8, Wednesday 12:30-2:20pm (CORRECTED TIME)

 

Final Exam - Comprehensive

   

Accounts

You will need an account to log in to the Linux systems (linuxlab.cs.pdx.edu) provided by the college. If you don't already have an account, go to http://www.cat.pdx.edu/students.html for instructions. The Linux lab is located in FAB 88-10.

 

Class Mail List

All students are required to join the class mail list. A great deal of information is communicated on this mailing list, including general questions, information, updates, hints on the homeworks, schedule changes.

Required Textbooks

Computer Systems: A Programmer's Perspective, 2nd ed., Bryant and O'Hallaron, Prentice Hall, 2010. ISBN 0-13-610804-0. Errata

The C Programming Language, 2nd ed., Kernighan and Ritchie, Prentice Hall, 1998.     ISBN 0-13-110362-8. Errata

Help

If you need general programming help or guidance, the Tutors. may be a very valuable resource for you. Students often require help on how to create and use a makefile as well as how to run a debugger. Google "GNU make tutorial" and "GNU gdb tutorial" to find simple examples.

Attendance

Assignments

Academic Integrity

You are expected to behave with integrity at all times. Cheating will result in a grade of zero on the assignment or exam on which the student cheats and the initiation of disciplinary action at the university level. Allowing another student to use your work as his/her own is also academic misconduct. There are a few simple steps that you can take to protect your work from unauthorized copying by another can be found here. For assignments, we will be using source-code plagiarism tools to check that code has not been duplicated.

Grading

Exams are in-class and closed notes and books. 

Homework A1

 10% 

Homework A2

 10% 

Homework A3

 5% 

Homework A4

 5% 

Homework A5

 5% 

Midterm exam 

 30% 

Final exam 

 35%