Advanced C Programming

Spring 2019 :: ECE 264 :: Purdue University

⚠ This is for Spring 2019, not the current semester.

Schedule

Week 1: 1/8
Overview + Development tools: Vim
snippets: a.c
1/10
Development tools: Vim + Data types, ASCII, number bases, literals
notes: 20190110.pdf
snippets: a.c b.c, d.c, e.c, f.c
1 Appendix D: Computing Number Systems, pp. 1033-1040
Week 2: 1/15
Number bases, test-driven development (TDD), TDD workflow enhancements
CQ: Use character literal ('A') not 65
notes: 20190115.pdf
1/17
11 Strings, pp. 665-717
Week 3: 1/22
1/24
Address syntax exercise, call by address vs. call by value, GDB whatis
video: Boilercast
notes: 20190124.pdf
Week 4: 1/29
Assertions, GDB watchpoints, reverse debugging, Quiz 1: Address syntax
video: Boilercast
notes: 20190129.pdf
HW04: Strings: mintf(…), due 2/1 (Fri)
1/31
Preprocessor; #define macros; variadic functions; HW02 recap
CQ: Declare where you initialize
CQ: Use character literal ('A') not 65
CQ: Code in “paragraphs”
video: Boilercast
notes: 20190131.pdf
Week 5: 2/5
Code review; dynamic memory with malloc(…)
video: Boilercast
notes: 20190205.pdf
2/7
Week 6: 2/12
Structures
video: Boilercast
snippets: a.c a.h, b.c, c.c, d.c, e.c, f.c, g.c, h.c, i.c, j.c, j.h, o.c, oh1.c, p.c, q.c, r.c, s.c
2/14
Week 7: 2/19
2/21
Week 8: 2/26
Binary search trees, union, enum
video: Boilercast
HW07: Sorting, due 2/28 (Thu)
2/28
Week 9: 3/5
HW08: JSON #1, due 3/8 (Fri)
3/7
Endianness (big and little endian, GDB x/▒▒▒
video: Boilercast
notes: 20190307.pdf
snippets: a.c b.c, c.c, d.c, e.c, n.c, o.c, p.c
Week 10: 3/19
Review for Exam 2
video: Boilercast
snippets: gdb_x.c
HW09: JSON #2, due 3/20 (Wed)
3/21
Week 11: 3/26
Const, HW10 tips
video: Boilercast
notes: 20190326.pdf
snippets: a.c b.c, c.c, d.c, e.c, f.c, g.c, h.c, i.c, j.c, k.c
HW10: Backward file reader, due 3/29 (Fri)
3/28
Images, binary files
video: Boilercast
notes: 20190328.pdf
Week 12: 4/2
4/4
Exam 2 recap: TDD, numbers in memory, GDB x/, testing HW11 (BMP)
video: Boilercast
Week 13: 4/9
Unit testing, parallel programming
video: Boilercast
HW11: BMP files, due 4/8 (Mon)
4/11
Week 14: 4/16
Parallel programming: arrays of threads + Quiz 5
video: Boilercast
notes: 20190416.pdf
HW12: Testing BMP, due 4/15 (Mon)
4/18
Buffer overflow attacks; instruction-level execution
video: Boilercast
notes: 20190418.pdf
Week 15: 4/23
NO CLASS: Quiz make-ups
video: Boilercast
4/25
OPTIONAL: Exam 3 review
video: Boilercast
notes: 20190425.pdf

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.