Advanced C Programming

Spring 2023 ECE 264 :: Purdue University

Alchemy details (also sent last week)

Schedule

Week 1: 1/10
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
snippets: _notes.txt a.c, b.c, c.c
HW03: TDD, due 1/25 (Wed)
HW04: Debugging: GDB, due 1/28 (Sat)
1/26
"
snippets: a.c b.c, c.c, d.c, e.c, z.c
Week 4: 1/31
2/2
variadic functions, preprocessor
Week 5: 2/7
preprocessor
snippets: _notes.txt a.c, b.c, c.c, d.c, e.c, f.c, g.c, h.c, i.c, j.c
HW05: Strings: mintf(…), due 2/6 (Mon)
HW06: Log macros, due 2/9 (Thu)
2/9
preprocessor, memory addresses, address syntax
snippets: _notes.txt a.c, b.c, c.c, d.c, e.c, f.c, g.c, h.c, i.c, j.c, k.c, l.c
Week 6: 2/14
memory addresses, address syntax, make
HW07: Unit testing, due 2/13 (Mon)
HW08: Make, due 2/16 (Thu)
2/16
test coverage, make, malloc(…)
Week 7: 2/21
malloc(…)
snippets: _notes.txt a.c, b.c, c.c
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
3/2
struct types, typedef, linked list
snippets: _notes.txt a.c, b.c, c.c, d.c, e.c, f.c, g.c, h.c, i.c, j.c, k.c, l.c, m.c
Week 9: 3/7
HW10: JSON parse_int(…), due 3/9 (Thu)
3/9
linked lists, append(…), destroy_list(…)
snippets: a.c b.c, c.c, d.c, e.c, f.c, g.c, h.c, i.c, j.c, k.c, l.c, m.c, n.c, o.c, p.c
Week 10: 3/21
"
snippets: _notes.txt a.c, b.c, c.c, d.c, e.c, f.c
3/23
function address, compound literals, compare function, destroy function
Week 11: 3/28
HW12: Priority queue, due 3/29 (Wed)
3/30
Week 12: 4/4
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
4/13
bits
snippets: _NOTES.txt a.c
Week 14: 4/18
"
snippets: _NOTES.txt _gdb.txt, a.c, b.c, c.c, d.c, e.c
4/20
Week 15: 4/25
"
HW22: Buffer overflow, due 4/29 (Sat)
4/27

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.