Advanced C Programming

Spring 2022 ECE 264 :: Purdue University

⚠ This is a PAST SEMESTER (Spring 2022).

Schedule

Recorded lectures are available via Kaltura. From BrightSpace, click Course Tools and then Kaltura Media Gallery.

Week 1: 1/11
Overview
These links go to the same video. Use whichever one works for you.
1/13
Vim
There is no recording available for this lecture.
snippets: a.c n.c
Week 2: 1/18
Number bases, test-driven development (TDD)
snippets: a.c b.c, n.c
1/20
Test-Driven Development (TDD), editing tips
Week 3: 1/25
1/27
Week 4: 2/1
HW04: TDD, due 2/1 (Tue)
2/3
Week 5: 2/8
HW05: Strings: mintf(…), due 2/11 (Fri)
2/10
Week 6: 2/15
2/17
Address syntax
snippets: a.c b.c, c.c, d.c, e.c, f.c, g.h, h.c, i.c, n.c, o.c, p.c, q.c, r.c, s.c, t.c, u.c, v.c, w.c, x.c
Week 7: 2/22
2/24
Heap, malloc(…)
⚠️ Do not use (TYPE) malloc(…), ex: ✗ … = (char*) malloc(…)
⚠️ Do not use sizeof(TYPE), ex: ✗ … = malloc(sizeof(char))
Week 8: 3/1
3/3
Exercise: memory syntax, types, sizeof, HW10 pitfalls
snippets: a.c b.c, c.c, d.c, e.c, f.c, g.c, h.c, i.c, n.c, o.c
Week 9: 3/8
Parsing strings, pass/return by address, pos, a_pos, struct types (primer)
snippets: a.c b.c, c.c, d.c, e.c, f.c, n.c, o.c, p.c, q.c, r.c, s.txt, t.c, u.c, v.c, w.c, x.c
HW10: JSON 1: parse numbers, due 3/11 (Fri)
3/10
Struct types, union types, enum types, typedef, Element
snippets: _.c a.c, b.c, c.c, c.txt, 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, q.c, r.c, s.c, t.c, u.c, v.c, w.c, x.c
Week 10: 3/22
const qualifier, static functions, linked lists (primer)
HW11: JSON 2: parse strings, due 3/25 (Fri)
3/24
Linked lists
snippets: a.c b.c, c.c, d.c, e.c, f.c, n.c, o.c, p.c, q.c, z.c
Week 11: 3/29
Binary search tree, function addresses
3/31
JSON assignment help, binary search tree (BST), Valgrind messages
in use at exit: ▒ bytes in ▒ blocks
total heap usage: ▒ allocs, ▒ frees, ▒ bytes allocated
▒ bytes in ▒ blocks are […] lost […]
Week 12: 4/5
Huffman coding - overview
HW14: Tree sort, due 4/5 (Tue)
EC01: qsort, due 4/7 (Thu)
4/7
Week 13: 4/12
4/14
Week 14: 4/19
Bitwise operations, in-class exercise
snippets: a.txt b.txt, c.c, n.c
4/21
Week 15: 4/26
EC02: Buffer overflow, due 4/30 (Sat)
4/28

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.