Advanced C Programming

Fall 2017 :: ECE 264 :: Purdue University

Schedule

Week 1: 8/21
Overview, introductions
8/23
Programming environment, main(…), fputc(…)
snippets: fputc_simple.c
2.2 C Programs, pp. 31-33
8/25
Data types, ASCII, number bases, literals
snippets: data_types.c
1 Appendix D: Computing Number Systems, pp. 1033-1040
Week 2: 8/28
Strings, number bases, addresses
11 Strings, pp. 665-717
HW01: Debugging with GDB, due 8/29 (Tue)
8/30
Addresses, address syntax, memory layout
snippets: address_syntax.c
9 Pointers, pp. 558-585
9/1
Stack frames, examining memory using GDB
snippets: a.c
Week 3: 9/6
Call by address, passing arrays to functions
10.1-10.3 Arrays and Pointers; Pointer Arithmetic and Arrays; Passing an Array to a Function, pp. 611-626
9/8
Function addresses, structures
snippets: a.c b.c, c.c, d.c, e.c, f.c
12.1-12.3 The Type Definition; Enumerated Types; Structure, pp. 745-781
Week 4: 9/11
9/13
Struct objects in memory, examining memory with x/ and p/
12.3 Structure, pp. 753-781
9/15
Variadic functions, arrays, address arithmetic
office hours: gcc gdb.pdf
Week 5: 9/18
Exercise: Struct objects in memory, examining memory with x/ and p/
9/20
Quiz #1: struct objects in memory, examining bytes in memory
9/22
DRY rule, assert, test-driven development (TDD)
Assignments and deadline may be changed without notice up to 1 week before the due date.