Advanced C Programming

Summer 2024 ECE 26400 :: Purdue University

Schedule

Week 1: 6/10
Overview
slides: Intro.pptx
snippets: valgrind_example.c
HW01: Editing: Vim, due 6/12 (Wed)
6/11
Vim
6/12
Number bases, gcc basics, test-driven development (TDD)
whiteboard: Number_Conversion.png
6/13
assert(…), Test-Driven Development (TDD), Testing, HW02 tips
whiteboards: Testing.png
6/14
Debugging with valgrind and GDB
Week 2: 6/17
mintf setup, Strings, memory
snippets: strings.c
whiteboards: Memory.png
HW03: Debugging: GDB, due 6/19 (Wed)
HW04: Strings: mintf(…), due 6/22 (Sat)
6/18
6/19
6/20
Preprocessor, #include/#define
6/21
Week 3: 6/24
HW05: Log macros, due 6/24 (Mon)
HW06: Unit testing, due 6/27 (Thu)
HW07: Make, due 6/29 (Sat)
6/25
Testing unit testing, coverage, advanced makefiles
6/26
Address syntax (nested addresses, arrays, address arithmetic, strings as addresses)
6/27
Address continued (const addresses, address functions, array functions)
6/28
Week 4: 7/1
Dynamic memory (malloc)
EC01: Bitwise operators, due 7/1 (Mon)
HW08: JSON parse_int(…), due 7/3 (Wed)
7/2
7/3
Pass/return by address, const qualifier, iterating strings by address, struct introduction
7/5
Structs continued, enums, unions, typedef with structs
Week 5: 7/8
HW10 overview, HW11 overview, testing HW10, testing HW11
HW10: Split string: arrays, due 7/11 (Thu)
7/9
7/10
7/11
7/12
Binary search tree, JSON lists, JSON testing, participation 2
whiteboards: trees.png
Week 6: 7/15
HW13: JSON parse_list(…), due 7/20 (Sat)
EC02: Buffer overflow, due 7/20 (Sat)
7/16
HW12 Split string testing, HW13 parse list tips, HW14 sorting overview, C standard library qsort
7/17
Merge sort, endianness, call stack, function calls
7/18
7/19
Week 7: 7/22
Participation 3 solution, HW15 overview, refactoring, testing text files
HW14: Sorting: recursion, due 7/24 (Wed)
HW15: JSON text files, due 7/27 (Sat)
7/23
7/24
7/25
Types, BMP overview, structs and binary files
7/26
Week 8: 7/29
Generic data structures, compare functions
HW16: BMP image files, due 7/31 (Wed)
RE03: JSON: resubmission, due 8/3 (Sat)
7/30
EC03 overview, resubmission opportunity
snippets: test_json.c
whiteboards: objects.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.