Schedule
Week 1: | 1/10 |
Overview
slides:
20230110 Course intro, Vim.pptx
|
|
1/12 |
Vim
snippets:
a.c
|
||
Week 2: | 1/17 |
number bases, test-driven development (TDD)
|
HW01: Editing: Vim,
due 1/17 (Tue)
|
1/19 |
code quality, number bases (more), common issues
CQ: 1- and 2-letter names, loop index, bool variables, scope, declare where you initialize, use char constant not integer constant for a character GCC errors: “implicit declaration of function”, “… makes integer from …”, “▒.h: No such file or directory”, “multiple definition of ‘print_integer’”, “undefined reference to ‘main’” diff error: “No newline at end of file”
|
||
Week 3: | 1/24 |
Testing, code quality, debugging
|
HW02: Strings: print_integer(…),
due 1/24 (Tue)
HW03: TDD,
due 1/25 (Wed)
HW04: Debugging: GDB,
due 1/28 (Sat)
|
1/26 | |||
Week 4: | 1/31 |
"
|
|
2/2 | |||
Week 5: | 2/7 |
HW05: Strings: mintf(…),
due 2/6 (Mon)
HW06: Log macros,
due 2/9 (Thu)
|
|
2/9 | |||
Week 6: | 2/14 |
HW07: Unit testing,
due 2/13 (Mon)
HW08: Make,
due 2/16 (Thu)
|
|
2/16 |
test coverage, make, malloc(…)
snippets:
_notes.txt _terminal_session.txt, a.c, address_example.c, b.c, c.c, d.c, oh_20230220-a.c, oh_20230220-b.c
|
||
Week 7: | 2/21 |
malloc(…)
|
|
2/23 |
CANCELLED
A video lecture was posted, though the same content was covered on 2/28 so watching the video lecture was not required.
|
||
Week 8: | 2/28 |
memory faults, Valgrind messages
slides:
20230223 memory faults.pdf
snippets:
a.c conditional_jump.c, conditional_jump.valgrind.txt, correct.annotated.c, correct.c, correct.valgrind.txt, double_free.c, double_free.valgrind.txt, invalid_read-after_free.c, invalid_read-after_free.valgrind.txt, invalid_read-buffer_overread.c, invalid_read-buffer_overread.valgrind.txt, invalid_read.invalid_write.0_bytes_after.c, invalid_read.invalid_write.0_bytes_after.valgrind.txt, invalid_write.after_free.c, invalid_write.after_free.valgrind.txt, memory_leak.c, memory_leak.valgrind.txt, segmentation_fault.null.c, segmentation_fault.null.valgrind.txt
|
HW09: malloc(…): Join strings,
due 3/1 (Wed)
|
3/2 | |||
Week 9: | 3/7 |
HW10: JSON parse_int(…),
due 3/9 (Thu)
HW11: JSON parse_string(…),
due 3/12 (Sun)
|
|
3/9 | |||
Week 10: | 3/21 | ||
3/23 |
function address, compound literals, compare function, destroy function
|
||
Week 11: | 3/28 |
linked list in memory, memory form exercise
exercise:
20230328 memory form append a_value 1.docx 20230328 memory form append a_value 2.docx, 20230328 memory form append a_value 3.docx, 20230328 memory form append a_value 4.docx, 20230328 memory form append a_value 5.docx
snippets:
a.c
|
HW12: Priority queue,
due 3/29 (Wed)
|
3/30 |
JSON assignment help
|
||
Week 12: | 4/4 |
"
snippets:
a.c post_lecture_question.1.c
|
HW13: JSON 3,
due 4/3 (Mon)
HW14: JSON 4,
due 4/5 (Wed)
HW15: Tree sort,
due 4/8 (Sat)
|
4/6 |
tree traversals, post-order, pre-order, in-order
|
||
Week 13: | 4/11 |
files
|
HW16: Huffman 2: files, frequencies,
due 4/10 (Mon)
HW17: Huffman 3: linked list of trees,
due 4/12 (Wed)
HW18: Huffman 4: build Huffman tree,
due 4/15 (Sat)
|
4/13 |
bits
snippets:
_NOTES.txt a.c
|
||
Week 14: | 4/18 |
HW19: Huffman 5: write bits to a file,
due 4/20 (Thu)
HW20: Huffman 6: encode tree to file,
due 4/23 (Sun)
|
|
4/20 |
"
|
||
Week 15: | 4/25 |
"
|
HW21: Huffman 7: encode data to file,
due 4/26 (Wed)
HW22: Buffer overflow,
due 4/29 (Sat)
|
4/27 |
"
snippets:
_quiz.txt recursive_vs_iterative.c
|
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.