Advanced C Programming

Fall 2022 ECE 264 :: Purdue University :: Section 3 (Quinn)

⚠ This is a PAST SEMESTER (Fall 2022).

Schedule

Week 1: 8/23
8/25
Week 2: 8/30
number bases, test-driven development (TDD)
HW01: Editing: Vim, due 8/30 (Tue)
9/1
Week 3: 9/6
testing, strings
snippets: a.c b.c, c.c, d.c, e.c, f.c, g.c, h.c
HW03: TDD, due 9/8 (Thu)
9/8
strings, memory
Week 4: 9/13
variadic functions, GDB
snippets: a.c b.c, c.c, d.c, e.c, f.c, g.c, h.c
HW04: Debugging: GDB, due 9/12 (Mon)
9/15
address syntax
snippets: a.c b.c, c.c, d.c, e.c, f.c, g.c, h.c
Week 5: 9/20
preprocessor, precedence, pass-by-address
HW05: Strings: mintf(…), due 9/19 (Mon)
9/22
address syntax
snippets: a.c b.c, c.c, d.c
Week 6: 9/27
address syntax, arrays
snippets: a.c b.c, c.c
HW06: Log macros, due 9/28 (Wed)
HW07: Unit testing, due 10/2 (Sun)
9/29
helper functions, code quality, preprocessor
snippets: a.c b.c, c.c, d.c, e.c, f.c
Week 7: 10/4
malloc(…)
snippets: _NOTES.txt a.c, b.c, c.c, d.c, e.c
HW08: Make, due 10/4 (Tue)
10/6
malloc(…), miniunit
Week 8: 10/13
struct, typedef, linked list, append(…)
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, n.c, o.c, w.c, x.y, z.c
Week 9: 10/18
linked lists, append(…), priority queue
snippets: _NOTES.txt a.c, b.c, c.c, d.c, e.c, f.c, g.c
10/20
Week 10: 10/25
BSTs
snippets: a.c b.c, c.c, d.c, e.c
HW11: Tree sort, due 10/27 (Thu)
10/27
union types, enum types, anonymous unions
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, z.c
Week 11: 11/1
HW12: JSON: ints, due 11/2 (Wed)
HW13: JSON: strings, due 11/4 (Fri)
11/3
Week 12: 11/8
HW14/15, complex structure in memory, how to read a file
[1,[2,"three"]]
parse_json("[1,[2,\"three\"]]")
Function call trace
Structure in memory (using memory form)
⚠: Do not use EOF when reading a file.
⚠: Googling how to read a file will likely to lead to more error-prone methods.
HW14: JSON: lists, due 11/9 (Wed)
HW15: JSON: errors, due 11/11 (Fri)
11/10
Week 13: 11/15
"
snippets: a.txt b.txt, c.c
11/17
Week 14: 11/22
Week 15: 11/29
12/1
Week 16: 12/6
Endianness, examining memory with x/▒, buffer overflows/overwrites
HW22: Buffer overflow, due 12/10 (Sat)
12/8
Quiz 5 and primer for HW22

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.