Advanced C Programming

Summer 2022 ECE 264 :: Purdue University

⚠ This is a PAST SEMESTER (Summer 2022).

Schedule

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

Schedule will be filled as lectures happen, see the Syllabus for a tenative topics list.

Week 1: 6/13
Overview
slides: Intro.pptx
6/14
Vim
notes: vimtutor.txt
6/15
Number bases, gcc basics, test-driven development (TDD)
snippets: numbers.c
whiteboards: number_systems.png
6/16
Test-Driven Development (TDD), Testing, HW02 tips
whiteboard: testing.png
6/17
Week 2: 6/20
GDB, callstack, function argumens
whiteboards: callstack.png
HW04: TDD, due 6/20 (Mon)
6/21
HW05 setup, Stings, memory, varardic functions
whiteboards: memory.png
6/22
6/23
6/24
Week 3: 6/27
Valgrind basics, Address syntax (address of operator, dereference operator)
whiteboards: program_memory.png
HW05: Strings: mintf(…), due 6/28 (Tue)
6/28
Address syntax (nested addresses, arrays, address arithmetic
whiteboards: memory_examples.png
6/29
Strings as addresses, nested address applications
whiteboards: memory_examples.png
6/30
Unit Testing, Miniunit (HW07) overview, object files, linking, Makefile basics
whiteboards: quick_notes.png
7/1
Build automation with make continued, introduction to dynamic memory
Week 4: 7/5
7/6
valgrind continued (memory faults memory leaks), HW09 tips (argument copying, function outline)
7/7
7/8
Parsing strings, pos, a_pos, struct introduction
whiteboards: struct_memory.png
Week 5: 7/11
HW10: JSON 1: parse numbers, due 7/12 (Tue)
HW11: JSON 2: parse strings, due 7/15 (Fri)
7/12
Struct addressing, compound initializers, linked lists
whiteboards: linked_lists.png
7/13
7/14
Linked lists (cont), Binary search tree introduction
whiteboards: trees.png
7/15
Binary search tree (cont), JSON linked lists, JSON testing
whiteboards: tree.png
Week 6: 7/18
HW13: JSON 3: parse list, due 7/23 (Sat)
7/19
7/20
Endianness, stack, function calls
snippets: boa.c end.c
7/21
7/22
Week 7: 7/25
EC02: Buffer overflow, due 7/25 (Mon)
HW15: JSON 4: text files, due 7/30 (Sat)
7/26
7/27
7/28
7/29
Week 8: 8/1
Bitwise operators exercise
whiteboards: operator_examples.png
HW16: BMP: binary files, due 8/3 (Wed)
EC03: Bitwise operators, due 8/5 (Fri)
8/2
BMP hints, JSON 5 overview
whiteboards: hw16_ec04_tips.png

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.