Syllabus
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
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
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
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.