|
CSE Home | About Us | Search | Contact Info |
Syllabus
Academic-Integrity Policy
Extra-Credit Policy
Meetings: MWF 12:30-1:20, MGH 241
Class
discussion list
Class
email list archives
Instructor: Hal Perkins; perkins(at)cs; CSE 548, office hours MW 2-3..
TA: Laura Marshall; lmarsh16(at)cs; office hours Th 3:30-4:30, CSE 220; F 1:30-2:30,
CSE 218
TA: Orkhan Muradov; orkhan(at)cs; office hours T 2:30-3:30, CSE 218
Dropbox
for assignment submissions
Gradebook
Assignment dates are tentative and may be changed, but these might be useful for planning.
Homework 0, due Wed. Jan. 5 at 11 pm.
Homework 1, due Sun. Jan. 9 at 11 pm.
Homework
2, due Sun. Jan. 16 at 11 pm.
Homework 3, due Sun. Jan. 23 at 11 pm.
Homework 4, due Thur. Feb. 3 at 11 pm.
Homework 5, due Thur. Feb. 17 at 11 pm.
Homework 6, due: Partner info, Sat. Feb. 19 at noon; Headers
and skeleton code, Thur. Feb. 24 at 11 pm (no
late assignments for this part); Final
code, Thur., Mar. 3, at 11 pm.
Homework 7, due Fri. Mar. 11 at 11 pm.
You have up to four (4) late days to use during the quarter, no more than two (2) of which can be used on any one assignment. For assignments done with partners, late days can only be used if both partners have them available.
Here is a selection of exams from CSE 374 and the related course, CSE 303. Different offerings of these courses covered slightly different things. You won't be tested on things we did not do this quarter.
This quarter's midterm: exam sample solution
CSE 374 midterms: sp10 (solution) sp09 (solution)
Some CSE 303 midterms: wi09 (solution); au08 (solution); sp08 (solution); au07 (solution)
This quarter's final: exam sample solution
CSE 374 final exams: sp10 (solution) sp09 (solution)
Some CSE 303 final exams: wi09 (solution); au08 (solution); sp08 (solution); au07 (solution)
Tentative schedule to be updated as the quarter progresses. Slides will be usually be posted no later than the night before class. Sample code and other files will be posted shortly after the corresponding lecture. The links below will not work until the corresponding material is posted.
1. Jan. 3: Course Introduction, Shell Basics slides
2. Jan. 5: Processes, Users, Shell Special Characters, Emacs slides;
A command sampler slides; shell
history from lecture
3. Jan. 7: I/O Redirection, Shell Scripts;
slides, scripts, large
picture, shell history
4. Jan. 10: Shell Variables, More Shell Scripts; slides, scripts,
shell history
5. Jan. 12: Regular Expressions (and more), grep, Other Utilities; slides shell
history
6. Jan. 14: Regular expressions and grep (concl.), sed; slides shell
history
X. Jan. 17: No class, MLK Day
7. Jan. 19: Introduction to C
slides
8. Jan. 21:C: Control constructs, declarations,
preprocessor intro, printf slides
9. Jan. 24: C: cont. shell history, printargs.c demo program
10. Jan. 26: C: locals,
left vs. right expressions slides
11. Jan. 28: C: malloc/free slides
12. Jan. 31: Tools:
gdb (start) slides gdb
manual original reverse.c debugging
transcript final reverse.c
13. Feb. 2: malloc/free and debugging wrapup
14. Feb. 4: C:
Structs, linked lists, and casts slides sample
code: structs.c list.c
15. Feb. 7: Midterm, in class
16. Feb. 9: Next assignment & tries;
17. Feb. 11: Preprocessor revisited,
multifile programs slides
18. Feb. 14: Tools: Make and build dependencies slides demo
project shell history
19. Feb. 16: Memory management and hw6
20. Feb. 18: Version control and svn demo slides
shell histories: natasha boris;
subversion book
X. Feb. 21: No class, Presidents' Day
21. Feb. 23: Loose ends: memory manager project; makefiles; svn
22. Feb. 25: Project; Testing slides
23. Feb. 28: Specification slides
24. Mar. 2: C++: intro slides; example
classes: BankAccount string ; cplusplus.com
tutorial Google
C++ Style Guide
25. Mar. 4: C++:
26. Mar. 7: C++: subclasses and inheritance slides property
classes
demo; function pointers (skipped - no time) slides funcptr
demo
27. Mar. 9: Shared-memory concurrency slides;
wrapup
28. Mar. 11: No class
X. Wed., Mar. 16: Final exam review, 4:30 pm, EEB 045
X. Thur., Mar. 17: Final exam, 8:30-10:20
am.
A Quick-And-Dirty Getting-Started Guide
UW CSE Home
Virtual Machines (e.g., Linux)
Linux
Pocket Guide by Daniel J. Barrett, O'Reilly, 2004 (required)
The
C Programming Language by Brian W. Kernighan & Dennis M. Ritchie, Prentice-Hall,
2nd ed., 1988 (optional - K&R is a classic that all programmers should read.
You may find it useful for this course as a source of examples and explanations
about C beyond what you can find in reference sources.)
C:
A Reference Manual by Samuel P. Harbison, Guy L. Steele.
Prentice Hall, 5th ed., 2002.
Programming
in C by Stephen Kochan, Sams, 3rd ed., 2005.
Many useful Unix books published by O'Reilly and others are available online
through the UW library as part of the Safari Books Online package.
The Bash Manual
Stanford CS library: Essential
C, Unix Programming Tools
There is a tremendous amount of information about Linux, Unix, and C available
on the web
and
in the man(ual) pages and info documents on all Linux/Unix systems.
And for an alternative opinion, The Unix-Haters Handbook by Garfinkle, Weise & Strassmann, IDG, 1994 (i.e., in pre-Linux times).
Computer Science & Engineering University of Washington Box 352350 Seattle, WA 98195-2350 (206) 543-1695 voice, (206) 543-2969 FAX [comments to Hal Perkins] |