CSE 303: Concepts and Tools for Software Development

Spring 2005

Course Information

Academic-Integrity Policy
Extra-Credit Policy
Anonymous Feedback

midterm sample solution
final-exam sample solution

Course Dictionary


Homework 1, due 8 April 9:00AM. Turnin
Homework 2   buggy, htmlfiles.tar.gz, due 15 April 9:00AM Turnin
Homework 3   hw3cfiles.tar, due 25 April 9:00AM Turnin
Homework 4   hw4cfiles.tar, due 5 May 9:00AM Turnin Late Turnin   sample solution
Homework 5   Version A   Version B   Version C   due 17 May 9:00AM Turnin 5A Turnin 5B Turnin 5C
      (Homework 5 is an individual assignment, but you must establish a group of 3 students and have each group member do a different version of the assignment.)
Homework 6, due 26 May 9:00AM
Homework 7  hw7.java  hw7.cgi, due 3 June 9:00AM Turnin

Short paper on societal implications topic, due 3 June 9:00AM  description  sample and advice Turnin

Class Materials

1. March 28: Course Introduction, Shell Basics slides   shell history
2. March 30: Processes, Users, Shell Special Characters, Emacs   slides   shell history   lec2.java
3. April 1: I/O Redirection, Shell Scripts   slides   lec3scripts.tar.gz
   Hint for accessing the scripts: tar -zxf lec3scripts.tar.gz (or use WinZip)
4. April 4: Shell Variables, More Shell Scripts   slides   history   scripts, etc.
5. April 6: Regular Expressions   slides   history
6. April 8: Line Editors and Filters (Sed)   slides   history
7. April 11: Introduction to C: The C-Level of Abstraction   slides
8. April 13: C: locals, left vs. right expressions, dangling pointers, ...   slides   sums.c   pointers.c   structs.c
9. April 15: C: structs, heap-allocation   slides
10. April 18: Implications of bad software scenario
11. April 20: C: casts, linked lists   slides   list.c
12. April 22: The C preprocessor, printf/scanf slides   Browse slide  badpi.c pmacro.c cond.c print.c
13. April 25: C: Post-overview, function pointers slides  mypoint.h  mypoint.c  mypoint_user.c
14. April 27: Privacy in the Digital Age topics
15. April 29: MIDTERM
16. May 2: Debuggers, gdb slides   C file   gdb manual
17. May 4: Profilers, gprof   slides   C file  gprof manual
18. May 6: Linkers, Libraries, Archives  slides
19. May 9: Unit testing, stubs  slides
20. May 11: Professional code of ethics   ACM code
21. May 13: Build scripting, make   slides
22. May 16: Generics, function pointers, void*  slides   lec22Code.tar.gz
23. May 18: Version-control, cvs   slides   cvshome.org   history
24. May 20: Security, defensive programming   slides
25. May 23: Memory-management idioms  slides
26. May 25: Computer technology for voting  some pointers  slides
27. May 27: html, cgi, http  slides
28. June 1: Threads, concurrency  slides
29. June 3: Wrap-up, a taste of C++  slides  C++ code


Instructor: Dan Grossman, , Allen Center 556
    (careful: the userid equal to the instructor's last name belongs to a different person)
TA: Yongjoon Lee ( yongjoon at cs.washington.edu )
TA: Ben Hindman ( b at cs.washington.edu )

Meetings and Office Hours

Lecture: MWF 2:30-3:20, building BNS room 117
Final Exam: JUNE 7, 2005, 2:30-4:20, building BNS room 117
Grossman Office Hours: Tuesday 2-3, Friday 3:30-4:30
Lee Office Hours: Wednesday 3:30-4:30. Allen Center 315
Hindman Office Hours: Thursday 2:30-3:30. Allen Center 002


Are the texts required?
C: A Reference Manual (5th Edition) by Samuel P. Harbison, Guy L. Steele. Prentice Hall, 2002.
Linux in a Nutshell (Fourth Edition) by Ellen Siever, Aaron Weber, Stephen Figgins. O'Reilly, 2003.

Other Resources

A Quick-And-Dirty Getting-Started Guide
Your ACM Chapter's tutorials
The CSE department's Computing Resources for Undergrads
A Csh Tutorial


Join the course mailing list
Homework 0 ("due" 30 March, 9:00AM, worth 0 points)