Advanced C Programming

Spring 2024 ECE 26400 :: Purdue University

This is a PAST SEMESTER (Spring 2024).

Schedule

Week 1: 1/8
1/9
Overview, Vim (a little)
1/10
Vim, Code quality, Test-driven development (TDD)
snippets: a.c b.c
1/11
Code Quality, Test-driven development (TDD)
1/12
Week 2: 1/16
TDD, development workflow
snippets: _NOTES.txt a.c, b.c, c.c
HW01: Editing: Vim, due 1/16 (Tue)
1/17
Data representations
snippets: a.c b.c, c.c
1/18
"
snippets: a.c b.c, c.c, d.c
1/19
"
snippets: a.c b.c, d.c, e.c, f.c
Week 3: 1/22
"
snippets: _NOTES.txt a.c, b.c, c.c
HW03: Debugging: GDB, due 1/26 (Fri)
1/23
1/24
"
snippets: _NOTES.txt a.c, b.c, c.c, d.c
1/25
How to think of test cases, assert(…), variadic functions
snippets: _NOTES.txt a.c, b.c, c.c
1/26
How to think of test cases, assert(…), variadic functions
Week 4: 1/29
HW02 code fix-up
1/30
HW02 code fix-up
snippets: a.c b.c, oh_1.c
1/31
Preprocessor
snippets: a.c b.c, b.h, c.c, d.c, e.c, f.c, g.c
2/1
"
snippets: _NOTES.txt a.c, b.c, c.c, d.c, e.c, f.c, g.c, h.c, i.c
2/2
"
snippets: a.c b.c, c.c, d.c
Week 5: 2/5
HW04: Strings: mintf(…), due 2/6 (Tue)
HW05: Log macros, due 2/9 (Fri)
2/6
2/7
2/8
2/9
Week 6: 2/12
HW06: Unit testing, due 2/13 (Tue)
HW07: Make, due 2/16 (Fri)
2/13
2/14
2/15
"
snippets: _NOTES.txt a.c, b.c, c.c, c.d, d.c, e.c, f.c, g.c, h.c, i.c
2/16
"
snippets: _NOTES.txt a.c, b.c, c.c, d.c, e.c, f.c, g.c, h.c
Week 7: 2/19
"
snippets: h.c
2/20
"
snippets: a.c b.c
2/21
2/22
"
snippets: _NOTES.txt a.c, b.c, c.c, d.c
2/23
"
Week 8: 2/26
struct
2/27
*a_pos, compound literal, array of strings
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, oh_1.c, oh_2.c
2/28
*a_pos, array of strings, find_vowel(…)
2/29
*a_pos, array of strings, copy_string_to_heap(…)
snippets: a.c b.c, c.c
3/1
array of strings on heap
snippets: a.c b.c, c.c, e.c
Week 9: 3/4
linked list
snippets: _NOTES.txt a.c, b.c, c.c, d.c, e.c, f.c, g.c, h.c, i.c, oh_1.c
HW09: Split string, due 3/4 (Mon)
HW10: Split string 2, due 3/10 (Sun)
3/5
3/6
3/7
3/8
Week 10: 3/18
"
snippets: _NOTES.txt a.c, b.c, c.c, d.c, e.c, f.c
HW11: JSON parse_int(…), due 3/21 (Thu)
3/19
"
snippets: _NOTES.txt a.c, b.c, c.c, d.c, e.c, f.c, oh_1.c, oh_2.c
3/20
Union, anonymous union, enum
snippets: a.c b.c, c.c, oh_1.c, oh_2.c
3/21
Union, anonymous union, enum
snippets: a.c b.c, c.c, d.c, e.c, f.c, g.c
3/22
"
Week 11: 3/25
JSON Element walk-through
snippets: _NOTES.txt
HW13: JSON parse_list(…), due 3/29 (Fri)
3/26
JSON Element walk-through
snippets: _NOTES.txt a.c
3/27
3/28
Binary search trees (BSTs)
3/29
Week 12: 4/1
HW14: JSON (all), due 4/1 (Mon)
4/2
function address, merge sort
snippets: _NOTES.txt a.c, b.c, c.c, d.c
4/3
function address, merge sort
4/4
files
snippets: a.c a.txt, b.c, b.txt, c.c, c.txt, d.c, d.txt
4/5
binary files
Week 13: 4/8
No class - eclipse
snippets: oh_1.c oh_2.txt
HW15: Sorting, due 4/10 (Wed)
4/9
"
snippets: _NOTES.txt a.c
4/10
4/11
4/12
Week 14: 4/15
"
snippets: _NOTES.txt
HW16: BMP image files, due 4/19 (Fri)
4/16
4/17
4/18
"
4/19
"
Week 15: 4/22
"
HW18: Buffer overflow, due 4/27 (Sat)
4/23
"
4/24
"
4/25
"
snippets: dbc8.bin oh_1.c
4/26
"

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.