Schedule
Week 1: | 8/22 |
Code quality, editing code, vim
|
HW01: Editing C code with Vim,
due 8/26 (Fri)
|
8/24 |
Academic integrity, tools, assignments
|
||
8/26 |
Test-driven development (TDD), C literals, number bases, strings
1 Appendix D: Computing Number Systems, pp. 1033-1040
11 Strings, pp. 665-717
|
||
Week 2: | 8/29 |
10.4 Memory Allocation Functions, pp. 627-628
|
HW02: Strings: print_integer(…),
due 8/31 (Wed)
HW03: Test-driven development,
due 9/2 (Fri)
|
8/31 |
8.1-8.3 Array Concepts; Using Arrays in C; Inter-Function Communication, pp. 459-480
11 Strings, pp. 665-717
|
||
9/2 |
2.2 C Programs, pp. 31-33
|
||
Week 3: | 9/7 |
HW04: Strings: mintf(…),
due 9/8 (Thu)
|
|
9/9 |
Pointers, call-by-address + examining memory using gdb
snippets:
1.c
9 Pointers, pp. 558-585
10.1-10.3 Arrays and Pointers; Pointer Arithmetic and Arrays; Passing an Array to a Function, pp. 611-626
|
||
Week 4: | 9/12 |
10.4 Memory Allocation Functions, pp. 627-633
|
HW05: Debugging with GDB,
due 9/12 (Mon)
|
9/14 |
Malloc, concepts
10.4 Memory Allocation Functions, pp. 627-633
|
||
9/16 | |||
Week 5: | 9/19 |
Review memory segments, address syntax, brief overview of Valgrind messages
|
HW06: Malloc: smintf(…),
due 9/19 (Mon)
|
9/21 |
12.1-12.3 The Type Definition; Enumerated Types; Structure, pp. 745-781
|
||
9/23 |
Pass by address
exercise:
pass_by_address_swap.pdf
|
||
Week 6: | 9/26 |
HW07: Malloc + structs,
due 9/29 (Thu)
|
|
9/28 |
Testing, assert(…), pre- and post-conditions, loop invariants
|
||
9/30 |
15.1-15.2 List Implementations; General Linear Lists, pp. 927-949
|
||
Week 7: | 10/3 |
15.1-15.2 List Implementations; General Linear Lists, pp. 927-949
|
HW08: Linked lists #1,
due 10/6 (Thu)
|
10/5 | |||
10/7 | |||
Week 8: | 10/12 |
HW09: Linked lists #2,
due 10/14 (Fri)
|
|
10/14 | |||
Week 9: | 10/17 | ||
10/19 |
How to think of test cases, exercise
notes:
testing.pdf
|
||
10/21 |
Big-O primer
6.11 Big-O Notation, pp. 370-371
|
||
Week 10: | 10/24 |
Binary search trees
notes:
binary_search_trees.pdf
15.5 Trees, pp. 967-978
|
HW10: Linked lists #3,
due 10/24 (Mon)
|
10/26 |
"
|
||
10/28 |
Tree traversals
notes:
tree_traversal_types.pdf
|
||
Week 11: | 10/31 |
Merge sort
notes:
merge_sort.pdf
|
HW11: Binary search trees,
due 11/1 (Tue)
|
11/2 | |||
11/4 |
Valgrind messages, function addresses
notes:
valgrind.pdf
|
||
Week 12: | 11/7 |
Files
7.1-7.5 File; Streams; Standard Library I/O Functions; Formatting I/O Functions; Character I/O Functions, pp. 393-441
13.1-13.3 Text vs. Binary Streams; Standard Library Functions for Files; Converting File Types, pp. 821-850
|
HW12: Sorting,
due 11/8 (Tue)
|
11/9 |
Files
7.1-7.5 File; Streams; Standard Library I/O Functions; Formatting I/O Functions; Character I/O Functions, pp. 393-441
13.1-13.3 Text vs. Binary Streams; Standard Library Functions for Files; Converting File Types, pp. 821-850
|
||
11/11 |
Images
|
||
Week 13: | 11/14 |
Images
snippets:
setjmp_longjmp.c
|
HW13: Image files,
due 11/18 (Fri)
|
11/16 |
Images
exercise:
handout_20161116_bmp_images.pdf
|
||
11/18 |
#define + parallel programming
|
||
Week 14: | 11/21 |
NO CLASS
|
|
Week 15: | 11/28 |
Parallel programming, pthread
snippets:
pthread_1.c pthread_2.c
|
HW14: Parallel adaptive threshold,
due 12/4 (Sun)
|
11/30 |
"
|
||
12/2 |
Quiz #5 and quiz #6
Quiz #5 was a review from exam #2. Quiz #6 was about BMP images. These will be treated as separate quizzes, but were held on the same day due to dead week.
|
||
Week 16: | 12/5 |
Stack inspection, buffer overflow attacks
exercise:
buffer_overflow_exercise.pdf
|
HW15: Buffer overflow attack,
due 12/9 (Fri)
|
12/7 |
"
|
||
12/9 |
OPTIONAL: final exam review session
This is in lieu of the usual evening review session that Prof. Quinn would otherwise hold. Students from Prof. Lu's section are welcome to join (up to room capacity).
|
Assignments and deadline may be changed without notice up to 1 week before the due date.