Schedule
Week 1: | 1/8 |
Overview
slides:
First day - Course intro.pptx
|
|
1/9 |
Overview, Vim (a little)
|
||
1/10 |
Vim, Code quality, Test-driven development (TDD)
|
||
1/11 |
Code Quality, Test-driven development (TDD)
|
||
1/12 |
TDD, development workflow
|
||
Week 2: | 1/16 |
TDD, development workflow
|
HW01: Editing: Vim,
due 1/16 (Tue)
|
1/17 | |||
1/18 | |||
1/19 | |||
Week 3: | 1/22 |
"
|
HW02: Strings: print_integer(…),
due 1/23 (Tue)
HW03: Debugging: GDB,
due 1/26 (Fri)
|
1/23 |
"
|
||
1/24 |
"
|
||
1/25 |
How to think of test cases, assert(…), variadic functions
|
||
1/26 |
How to think of test cases, assert(…), variadic functions
|
||
Week 4: | 1/29 |
HW02 code fix-up
|
|
1/30 | |||
1/31 | |||
2/1 | |||
2/2 | |||
Week 5: | 2/5 |
Floating point
|
HW04: Strings: mintf(…),
due 2/6 (Tue)
HW05: Log macros,
due 2/9 (Fri)
|
2/6 |
"
snippets:
_NOTES.txt floating_point.c
|
||
2/7 |
Build automation with make
|
||
2/8 |
Memory, address syntax
|
||
2/9 |
"
|
||
Week 6: | 2/12 |
Memory, address syntax
|
HW06: Unit testing,
due 2/13 (Tue)
HW07: Make,
due 2/16 (Fri)
|
2/13 |
"
|
||
2/14 |
"
snippets:
Makefile.0 Makefile.1, Makefile.2, _NOTES.txt, a.c, floating_point.c, test_floating_point.c
|
||
2/15 | |||
2/16 | |||
Week 7: | 2/19 |
"
snippets:
h.c
|
HW08: malloc(…): Join strings,
due 2/23 (Fri)
|
2/20 | |||
2/21 |
"
snippets:
_NOTES.txt a.struct_simple.c, b.struct_pass_to_function.c, c.c, d.c, e.c, f.c, g.c, h.c, i.c, j.c, k.c, l.c, oh.c
|
||
2/22 |
"
|
||
2/23 |
"
|
||
Week 8: | 2/26 |
struct
|
|
2/27 | |||
2/28 |
*a_pos, array of strings, find_vowel(…)
|
||
2/29 | |||
3/1 | |||
Week 9: | 3/4 |
HW09: Split string,
due 3/4 (Mon)
HW10: Split string 2,
due 3/10 (Sun)
|
|
3/5 |
linked list
|
||
3/6 |
split_string, *a_pos
|
||
3/7 |
linked list
|
||
3/8 |
linked list
|
||
Week 10: | 3/18 |
HW11: JSON parse_int(…),
due 3/21 (Thu)
HW12: JSON parse_string(…),
due 3/24 (Sun)
|
|
3/19 | |||
3/20 | |||
3/21 | |||
3/22 |
"
|
||
Week 11: | 3/25 |
JSON Element walk-through
snippets:
_NOTES.txt
|
HW13: JSON parse_list(…),
due 3/29 (Fri)
|
3/26 |
JSON Element walk-through
snippets:
_NOTES.txt a.c
|
||
3/27 |
Binary search trees (BSTs)
|
||
3/28 |
Binary search trees (BSTs)
|
||
3/29 |
Binary search trees (BSTs), files
|
||
Week 12: | 4/1 |
streams, files
snippets:
_NOTES.txt a.c, b.c, b.stderr.txt, b.stdout.txt, c.txt, d.c, d.txt, e.c, f.c, f.txt, file_list.txt, file_list_java.txt, g.c, oh_1.c
|
HW14: JSON (all),
due 4/1 (Mon)
|
4/2 |
function address, merge sort
|
||
4/3 |
function address, merge sort
|
||
4/4 | |||
4/5 | |||
Week 13: | 4/8 |
HW15: Sorting,
due 4/10 (Wed)
|
|
4/9 |
"
snippets:
_NOTES.txt a.c
|
||
4/10 |
"
snippets:
oh_1.qsort_rectangles.c
|
||
4/11 |
"
snippets:
a.c b.c, c.c, d.c, hw16/6x6_24bit.bmp, hw16/airplane.bmp, hw16/airplane16.bmp, hw16/bmp.h, hw16/car.bmp, hw16/car16.bmp, hw16/corrupt_airplanei.bmp, hw16/corrupt_carw.bmp, hw16/corrupt_green_earthh.bmp, hw16/corrupt_purduetraini.bmp, hw16/corrupt_purduetrainw.bmp, hw16/gray_earth.bmp, hw16/green_earth.bmp, hw16/purduetrain.bmp, point_x=5_label=Z_y=7.bin, point_x=5_y=7.bin
|
||
4/12 |
"
|
||
Week 14: | 4/15 |
"
snippets:
_NOTES.txt
|
HW16: BMP image files,
due 4/19 (Fri)
|
4/16 | |||
4/17 |
"
|
||
4/18 |
"
|
||
4/19 |
"
|
||
Week 15: | 4/22 |
"
|
HW17: BitWriter: write bits to a file,
due 4/24 (Wed)
HW18: Buffer overflow,
due 4/27 (Sat)
|
4/23 |
"
|
||
4/24 |
"
|
||
4/25 | |||
4/26 |
"
|
To try code snippets, right-click to copy URL. Then, in bash, type
wget URL
(where
URL is the URL you copied from this page.) To paste in
PuTTY, try Shift-Right_Mouse_Click or Shift-Insert_Key. (Do not do that in Vim.)
Assignments and deadline may be changed without notice up to 1 week before the due date.