CSE 303: Concepts and Tools for Software Development
Spring 2005
Course Information
Syllabus
Academic-Integrity Policy
Extra-Credit Policy
Anonymous Feedback
midterm
sample solution
final-exam
sample solution
Homework
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
Staff
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
Textbooks
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
Preliminaries
Join the course
mailing list
Homework 0 ("due" 30 March, 9:00AM, worth 0 points)