Schedule
Week 1: | 8/25 |
overview, tips, editing
|
|
8/27 |
environment, editing
|
||
Week 2: | 9/1 |
memory, strings, number bases
1.8 Arrays, Strings, and Pointers, pp. 36-47
6.10 Strings, pp. 270-272
6.11 Strings-Handling Functions…, pp. 272-276
3.12 Hexadecimal and Octal Constants, pp. 135-137
|
Vim,
due 8/31 (Mon)
|
9/3 |
header files, test-driven development, number bases, build process (preprocessor » compiler » linker)
2 The C System, pp. 69-96
|
||
Week 3: | 9/8 |
arrays, malloc
6.8 Dynamic Memory Allocation…, pp. 259-260
6 Arrays, Pointers, and Strings, pp. 245-303
|
Strings: make your own printf,
due 9/8 (Tue)
|
9/10 |
memory, malloc, debugging
6.8 Dynamic Memory Allocation…, pp. 259-260
6 Arrays, Pointers, and Strings, pp. 245-303
|
||
Week 4: | 9/15 |
stack frames, gdb, Quiz #1
–
quiz answer key
|
Malloc: make your own sprintf,
due 9/16 (Wed)
|
9/17 |
gdb, debugging, call-by-address, swap functions, practice quiz
–
answers via valgrind
–
quiz
6.2 Pointers, pp. 248-251
6.3 Call-by-Reference, pp. 252-253
6.4 Pointer arithmetic and element size, pp. 253-255
|
||
Week 5: | 9/22 |
types, typedef, gdb x/{#}{unit}{format} {addr} for examining memory, sizeof, Quiz
–
quiz answer key
3.7 The use of typedef, p. 122
3.8 The sizeof operator, pp. 122-123
6.12 Multidimensional arrays, pp. 282-283
|
Debugging with gdb,
due 9/23 (Wed)
|
9/24 | |||
Week 6: | 9/29 |
structs, overview
9.1 Structures, pp. 407-410
9.2 Accessing members…, pp. 411-414
9.3 Operator precedence and associativity:…, pp. 415-416
9.4 Using structures with functions, pp. 416-417
9.5 Initialization of structures, p. 418
9.6 An example: playing poker, pp. 419-424
|
|
10/1 |
structs, design
|
||
Week 7: | 10/6 |
linked lists
10 Structures and List processing, pp. 447-463
|
Structs,
due 10/7 (Wed)
|
10/8 |
linked lists, testing
|
||
Week 8: | 10/15 |
sizeof, data types, Big-O
|
|
Week 9: | 10/20 |
software testing, assert(…)
–
ideas from class
|
Linked lists #1,
due 10/21 (Wed)
|
10/22 |
binary search trees
|
||
Week 10: | 10/27 |
"
|
Linked lists #2,
due 10/29 (Thu)
|
10/29 |
"
|
||
Week 11: | 11/3 |
quiz #4, memory, hw08
–
answers
|
Binary search trees,
due 11/6 (Fri)
|
11/5 |
test-driven development, quiz #5
–
answers
|
||
Week 12: | 11/10 |
Test-driven development,
due 11/8 (Sun)
Merge sort,
due 11/12 (Thu)
|
|
11/12 |
files
1.9 Files, pp. 47-53
A.13 Input/Output: <stdio.h>, pp. 653-662
|
||
Week 13: | 11/17 |
exam #2 recap, number bases, run-time error handling, how to debug, color on the console
|
|
11/19 |
binary files, BMP file format, endian-ness
|
||
Week 14: | 11/24 |
threads, pthread
|
Image files,
due 11/24 (Tue)
|
Week 15: | 12/1 |
quiz #6, threads, processes, security, buffer overflow attacks
–
answer
|
|
12/3 |
security, buffer overflow attacks
|
||
Week 16: | 12/8 |
"
|
Parallel adaptive threshold,
due 12/7 (Mon)
Buffer overflow attack,
due 12/12 (Sat)
|
12/10 |
security, defenses
|
Assignments and deadline may be changed without notice up to 1 week before the due date.