Advanced C Programming

Summer 2023 ECE 264 :: Purdue University

This is a past semester (Summer 2023)

Schedule

Week 1: 6/12
Overview
slides: Intro.pptx
snippets: bashrc.sh
HW03: TDD, due 6/18 (Sun)
6/13
Vim
6/14
Number bases, gcc basics, test-driven development (TDD)
whiteboards: number_conversion.png
6/15
assert(…), Test-Driven Development (TDD), Testing, HW02 tips
whiteboards: testing.png
6/16
Week 2: 6/19
HW05: Strings: mintf(…), due 6/25 (Sun)
6/20
HW05 setup, Stings, memory, varardic functions
whiteboards: memory.png
6/21
6/22
Preprocessor, #include/#define
whiteboards: notes.png
6/23
Preprocessor, #define cont, #ifdef/#ifndef/#endif
Week 3: 6/26
Unit Testing, Miniunit (HW07) overview, Makefile basics
6/27
Build automation with make continued, introduction to address syntax
6/28
Address syntax (nested addresses, arrays, address arithmetiic, strings
6/29
Address applications (array functions), introduction to dynamic memory
6/30
Week 4: 7/3
EC01: Bitwise operators, due 7/6 (Thu)
7/5
valgrind continued (memory faults memory leaks), HW09 tips (argument copying, function outline)
whiteboards: valgrind_errors.png
7/6
Pass/return by address, const qualifier, iterating strings by address
7/7
Week 5: 7/10
HW10: JSON 1: parse numbers, due 7/11 (Tue)
HW11: JSON 2: parse strings, due 7/14 (Fri)
7/11
Struct addressing, compound initializers, linked lists
whiteboards: linked_list.png
7/12
Linked lists (cont), stack, queue, priority queue
whiteboards: linked_lists.png
7/13
Linked lists (cont), Binary search tree introduction
whiteboards: trees.png
7/14
Binary search tree (cont), JSON linked lists, JSON testing
Week 6: 7/17
Function addresses, generic addresses
whiteboards: testing.png
HW13: JSON 3: parse list, due 7/22 (Sat)
7/18
7/19
Generic data structures cont, compare functions
7/20
Endianness, stack, function calls
7/21
Week 7: 7/24
Call stack handout, text files cont.
EC02: Buffer overflow, due 7/24 (Mon)
HW15: JSON 4: text files, due 7/30 (Sun)
7/25
7/26
7/27
7/28
Types, BMP overview
Week 8: 7/31
JSON 5 overview (extra credit)
snippets: test_object.c
whiteboards: trees.png
HW16: BMP: binary files, due 8/4 (Fri)
8/1
Compression algorithms
snippets: io_test.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.