CSE logo University of Washington Computer Science & Engineering
 CSE 303 Concepts and Tools for Software Development - Autumn 2008
  CSE Home   About Us    Search    Contact Info 


Course Information

Academic-Integrity Policy
Extra-Credit Policy
Meetings: MWF 2:30-3:20, JHN 175


Class discussion list
Class email list archives


Dropbox for assignment submission

Homework 0 "due" Friday, Sept. 26, worth 1 point, but important(!)
Homework 1a, due Monday, Sept. 29 at 11 pm
Homework 1b, due Monday, Oct. 6 at 11 pm
Homework 2, due Tuesday, Oct. 14 at 11 pm
Homework 3, due Thursday, Oct. 23 at 11 pm
Homework 4, due Sunday, Nov. 9 at 11 pm
Homework 5: pick partners by Wednesday, Nov. 12, 2 pm; part A (skeleton code) due Tuesday, Nov. 18 at 11 pm; part B (everything) due Tuesday, Nov. 25 at 11 pm.
Homework 6: due Wed., Dec. 3 at 11 pm.
Societal-impact paper, due Friday, Dec. 5 at 2 pm. No late assignments will be accepted.    example paper


A selection of old exams for review. Topics covered in previous quarters may not be exactly the same because of differences in orders of topics or timing of the exam.

Old midterm exams: sp05 (solution); wi06 (solution); sp06 (solution); wi07 solution; sp07 (solution)  au07 (solution)  sp08 (solution)
This quarter's midterm: exam sample solution

Old final exams: sp05 (solution); wi06 (solution); sp06 (solution); wi07 (solution); sp07 (solution)  au07 (solution)  sp08 (solution)
This quarter's final:  exam  sample solution

Class Materials

Tentative schedule to be updated as the quarter progresses. Slides will be posted no later than the middle of the day before class. Links to sample code and other files won't work until the associated files are posted shortly after the corresponding lecture.

1. Sept. 24: Course Introduction, Shell Basics   slides   shell history
2. Sept. 26: Processes, Users, Shell Special Characters, Emacs   slides   shell history
3. Sept. 29: : I/O Redirection, Shell Scripts   slides  scripts  big jpg file  shell history
  Hint for accessing the scripts: tar -xf lec3scripts.tar (see man tar)
4. Oct. 1: Shell Variables, More Shell Scripts   slides   scripts   shell history
5. Oct. 3: Regular Expressions (and more), grep, Other Utilities  slides   shell history
6. Oct. 6: sed, command-line-tools wrap-up   slides  shell history
7. Oct. 8: sed wrapup; Introduction to C   slides   shell history
8. Oct. 10: C: locals, left vs. right expressions   slides   some sample code
9. Oct. 13: C: structs, pointers, heap memory slides   more sample code
10. Oct. 15: C: preprocessor basics, printf/scanf slides
11. Oct. 17: gdb slides  gdb manual   debugger demo from class  original reverse.c  final reverse.c
12. Oct. 20: C: casts, linked-lists,  slides   generic_swap.c   list.c
13. Oct. 22: C: more about the preprocessor slides
14. Oct. 24: C: summary slides; next assignment.
15. Oct. 27: Societal issues: elections and electronic voting slides
X. Oct. 29: Midterm, in class
16. Oct. 31: Make slides  makefile demo  shell history
17. Nov. 3: Make (concl.); Testing   slides
18. Nov. 5: Societal issues: Data ownership and privacy  slides
19. Nov. 7: Testing (concl.); Version control   slides   Subversion book  first shell history  second user shell history
20. Nov. 10: Version control (cont.); Memory management and hw5
21. Nov. 12: Specification  slides
22. Nov. 14: Specification, invariants, pre- and post-conditions (no slides)
23. Nov 17: Shared-memory concurrency   slides
24. Nov. 19: Concurrency (cont.)  slides
25. Nov. 21: Societal issues: diversity slides
26. Nov. 24: C++   slides   bankaccount code   cplusplus.com tutorial
27. Nov. 26: C++   slides   string class code   properties code (inheritance)
X. Nov. 28: No class, Thanksgiving break
28. Dec. 1: Societal issues: Software quality and liability slides
29. Dec. 3: Code-Pointers and Objects;   slides   files
30. Dec. 5: Linking and libraries slides; Course wrapup
X. Dec. 8: Review, 4:30-6pm, CSE 403.
X. Dec. 9: Final exam, 2:30-4:30 pm, regular classroom.


Instructor: Hal Perkins; perkins(at)cs; CSE 548, office hours Mon. ~4:45-5:30, Tue. 2:00-3:00.
TA: Daniel Jones; dcjones(at)cs; CSE006 lab Thur. 2-3 pm
TA: Masaharu Kobashi (Masa); mkbsh(at)cs; CSE 006 lab, Wed. 3:30-4:30.

Office hours tba

Other Resources

A Quick-And-Dirty Getting-Started Guide
Your ACM Chapter's tutorials
The CSE department's Computing Resources for Undergrads
The Bash Manual
Stanford CS library: Essential C, Unix Programming Tools


Are the texts required?
Linux Pocket Guide by Daniel J. Barrett, O'Reilly, 2004.
C: A Reference Manual (5th Edition) by Samuel P. Harbison, Guy L. Steele. Prentice Hall, 2002.

And for an alternative opinion, The Unix-Haters Handbook by Garfinkle, Weise & Strassmann, IDG, 1994 (i.e., in pre-Linux times).

CSE logo Computer Science & Engineering
University of Washington
Box 352350
Seattle, WA  98195-2350
(206) 543-1695 voice, (206) 543-2969 FAX
[comments to Hal Perkins]