CSE 303: Concepts and Tools for Software Development

Spring 2007

Course Information

Academic-Integrity Policy
Extra-Credit Policy
Anonymous Feedback
Meetings: MWF 2:30-3:20, EEB 105


Homework 1, due Friday 6 April
Homework 2, due Monday 16 April   datedwordcount_buggy   example input   example output
Homework 3, due Tuesday 24 April   files
Homework 4, due Friday 4 May   all files   grid_utilities.c
Homework 5, due Monday 14 May   5A   5B   5C   files
Homework 6, due Tuesday 22 May
Homework 7, due Wednesday 30 May   files

Societal-Implications Papers, due 1 June   assignment   example


Our final:   unsolved   solved
Sample finals:   Wi06 unsolved   Wi06 solved   Sp05 unsolved   Sp05 solved
Our midterm:   unsolved   solved
Sample midterms:   Wi06 unsolved   Wi06 solved   Sp05 unsolved   Sp05 solved   make-questions unsolved   make-questions solved

Class Materials

1. Mar 26: Course Introduction, Shell Basics   slides   shell history
2. Mar 28: Processes, Users, Shell Special Characters, Emacs   slides   shell history
3. Mar 30: I/O Redirection, Shell Scripts   slides   scripts   shell history
  Hint for accessing the scripts: tar -xf lec3scripts.tar (see man tar)
4. Apr 2: Shell Variables, More Shell Scripts   slides   scripts   shell history
5. Apr 4: Regular Expressions (and more), grep, Other Utilities  slides   shell history
6. Apr 6: sed, command-line-tools wrap-up   slides   shell history   followup-email
7. Apr 9: Introduction to C   slides
8. Apr 11: C: locals, left vs. right expressions, pointers   slides   code
9. Apr 13: C: dangling pointers, structs, the heap   slides   structs.c
10. Apr 16: Societal implications: web privacy   slides
11. Apr 18: C: casts, linked-lists   slides   generic_swap.c   list.c
12. Apr 20: C: preprocessor, printf/scanf   slides
13. Apr 23: C summary, simple function pointers; make   slides
14. Apr 25: make continued; gdb   slides   buggy code   gdb manual
15. Apr 27: Societal implications: Software quality, licensing, defect disclosure   slides
X. Apr 30: Midterm, in class
16. May 2: gdb continued; Testing   slides   code
17. May 4: Version control   slides
18. May 7: Specification; Profiling and gprof   slides   code   gprof manual
19. May 9: Profiling continued; Linking and libraries   slides
20. May 11: Societal implications: Electronic voting   slides   links
21. May 14: Linking wrapup; introduction to concurrency   slides   code
22. May 16: Shared-memory concurrency   slides   code
23. May 18: Concurrency wrap-up; introduction to C++   slides   code   cplusplus.com tutorial
24. May 21: C++ continued   slides   code (code is almost the same as last class)
25. May 23: C++ Overriding and Wrap-up; Manual Memory-Management Idioms   slides
26. May 25: Societal Implications: Obligations of Software Professionals   ACM Code   questions
X. May 28: University Holiday
27. May 30: Security and Defensive Programming   slides   security_eg.c   security_eg.sh
28. Jun 1: Code-Pointers vs. Objects; Course Summary   slides   C++ code   C code

Course Glossary


Instructor: Dan Grossman, , Allen Center Room 556
TA: Laura Effinger-Dean effinger (departmental email address, i.e., with the cs)
TA: Jimmy Lewis jhlewis (departmental email address, i.e., with the cs)

Office hours:
   Grossman: Tuesdays 2:00-3:00, Fridays 3:30-4:00, and by appointment
   Effinger-Dean: Thursdays 2:00-3:00, in CSE 220
   Lewis: Mondays 1:30-2:20, in CSE 002

Other Resources

More than enough HTML for homework 2:  beginning    "advanced" (describes tables)
A Quick-And-Dirty Getting-Started Guide
Your ACM Chapter's tutorials
The CSE department's Computing Resources for Undergrads
The Bash Manual
C++ Tidbits (optional material)


Are the texts required?
Linux Pocket Guide by Daniel J. Barrett, O'Reilly, 2004.
Programming in C (3rd Ed.) by Stephen G. Kochan, Sams Publishing, 2005.
C: A Reference Manual (5th Edition) by Samuel P. Harbison, Guy L. Steele. Prentice Hall, 2002.


Join the course mailing list
Homework 0 "due" March 28, worth zero points