March 26 |
Course intro; Linux basics [intro notes] [shell basics notes]
|
March 28 |
Processes, users, shell characters, emacs [notes]
|
March 30 |
I/O redirection, shell scripts [notes]
|
April 2 |
Shell variables, more shell scripts [notes] [makethumbnail] [fibonacci] [countdown]
|
April 4 |
Shell scripts (concl.) [notes] [sdel]
|
April 6 |
Regular expressions & grep [notes] [words file] [gnu grep manual]
|
April 9 |
sed [notes] [gnu sed manual]
|
April 11 |
Introduction to C [notes] [hello.c]
|
April 13 |
C: control, declarations, preprocessor, printf [notes] [echo.c]
|
April 16 |
C: parameters, scope, left vs. right expressions [notes] [mystery1] [mystery2] [mystery3] [mystery4] [dangling]
|
April 18 |
gdb [notes] [reverse.c (buggy)] [reverse.c (fixed)] [demo]
|
April 20 |
More pointers, structs [notes] [pointer mystery (hard)] [point.c]
|
April 23 |
malloc/free, linked lists [notes] [linked list]
|
April 25 |
data structures, tries [notes] [linked list with remove] [Old slides about T9]
|
April 30 |
Preprocessor revisited, multifile programs [notes] [files]
|
May 2 |
Tools: make and build dependencies [notes] [files]
|
May 4 |
git, version control [notes]
|
May 7 |
Intro to hw6 [notes]
|
May 9 |
More memory management [notes]
|
May 11 |
Testing, specifications [notes]
|
May 14 |
Buffer overflows [notes]
|
May 16 |
Intro to C++ [notes] [hello.cpp]
|
May 18 |
C++ Classes [notes] [files]
|
May 21 |
C++ Subclasses and Inheritance [notes] [files]
|
May 23 |
More C++
|
May 25 |
shared-memory concurrency and mutual exclusion [notes]
|
May 30 |
programming with locks and critical sections [notes] [files]
|
June 1 |
Wrap-up & review [notes]
|