Advanced C Programming

Autumn 2015 :: ECE 264 :: Purdue University

This is for Fall 2015 (2 years ago)

Schedule

Week 1: 8/25
overview, tips, editing
8/27
environment, editing
Week 2: 9/1
memory, strings, number bases
1.8 Arrays, Strings, and Pointers, pp. 36-47
6.10 Strings, pp. 270-272
6.11 Strings-Handling Functions…, pp. 272-276
3.12 Hexadecimal and Octal Constants, pp. 135-137
Vim, due 8/31 (Mon)
9/3
header files, test-driven development, number bases, build process (preprocessor » compiler » linker)
2 The C System, pp. 69-96
Week 3: 9/8
arrays, malloc
6.8 Dynamic Memory Allocation…, pp. 259-260
6 Arrays, Pointers, and Strings, pp. 245-303
9/10
memory, malloc, debugging
6.8 Dynamic Memory Allocation…, pp. 259-260
6 Arrays, Pointers, and Strings, pp. 245-303
Week 4: 9/15
stack frames, gdb, Quiz #1 quiz answer key
9/17
gdb, debugging, call-by-address, swap functions, practice quiz – answers via valgrind – quiz
6.2 Pointers, pp. 248-251
6.3 Call-by-Reference, pp. 252-253
6.4 Pointer arithmetic and element size, pp. 253-255
Week 5: 9/22
types, typedef, gdb x/{#}{unit}{format} {addr} for examining memory, sizeof, Quiz quiz answer key
3.7 The use of typedef, p. 122
3.8 The sizeof operator, pp. 122-123
6.12 Multidimensional arrays, pp. 282-283
Debugging with gdb, due 9/23 (Wed)
9/24
Week 6: 9/29
structs, overview
9.1 Structures, pp. 407-410
9.2 Accessing members…, pp. 411-414
9.3 Operator precedence and associativity:…, pp. 415-416
9.4 Using structures with functions, pp. 416-417
9.5 Initialization of structures, p. 418
9.6 An example: playing poker, pp. 419-424
10/1
structs, design
Week 7: 10/6
linked lists
10 Structures and List processing, pp. 447-463
Structs, due 10/7 (Wed)
10/8
linked lists, testing
Week 8: 10/15
sizeof, data types, Big-O
Week 9: 10/20
software testing, assert(…) ideas from class
Linked lists #1, due 10/21 (Wed)
10/22
binary search trees
Week 10: 10/27
"
Linked lists #2, due 10/29 (Thu)
10/29
"
Week 11: 11/3
quiz #4, memory, hw08 answers
Binary search trees, due 11/6 (Fri)
11/5
test-driven development, quiz #5 answers
Week 12: 11/10
EXAM #2 study guide, answers
Test-driven development, due 11/8 (Sun)
Merge sort, due 11/12 (Thu)
11/12
files
1.9 Files, pp. 47-53
A.13 Input/Output: <stdio.h>, pp. 653-662
Week 13: 11/17
exam #2 recap, number bases, run-time error handling, how to debug, color on the console
11/19
binary files, BMP file format, endian-ness
Week 14: 11/24
threads, pthread
Image files, due 11/24 (Tue)
Week 15: 12/1
quiz #6, threads, processes, security, buffer overflow attacks answer
12/3
security, buffer overflow attacks
Week 16: 12/8
"
Parallel adaptive threshold, due 12/7 (Mon)
Buffer overflow attack, due 12/12 (Sat)
12/10
security, defenses
Assignments and deadline may be changed without notice up to 1 week before the due date.