Overview + Who Gets the Cake
slides: 20200113 course intro.pdf
HW01: Development tools: Vim, due 1/17 (Fri)
HW02: Strings: print_integer(…), due 1/24 (Fri)
HW03: Development tools: GDB, due 1/30 (Thu)
HW04_bonus: TDD, due 2/5 (Wed)
HW04: Strings: mintf(…), due 2/7 (Fri)
Address syntax, relationship of '&', '*', '[▒]', types, GDB
Announcement: Know every GDB command on reference sheet for exam 1
Build steps (preprocessor, compiler, linker, error: “undefined reference to `▒▒▒' ⋯ error: ld returned 1”, preprocessor (#define, #include, #ifdef, #ifndef, etc.)
HW05: Mini-unit: #define + make, due 2/17 (Mon)
HW06: Dynamic memory: smintf(…), due 2/27 (Thu)
Linked lists, best practices, common GCC errors, named initializers vs. compound literals
snippets: append.c const_notes.c, for_vs_while.c, gcc_error_assignment_of_read_only_location.c, gcc_error_assignment_to_expression_with_array_type.c, gcc_error_attempting_to_modify_memory.c, gcc_error_initialization_discards_const_qualifier.c, gcc_error_writing_to_memory_marked_as_const.c, h.c, i.c, j.c, linked_list_size_1_simple.c, linked_list_size_2_simple.c, linked_list_size_3_using_append_function.c, linked_list_size_3_using_append_function_verbose_but_incomplete.c, named_initializer_vs_compound_literal.txt, syntax.c
HW07: Who Gets The Cake, due 3/5 (Thu)
HW08: JSON 1, due 3/9 (Mon)
HW09: JSON 2, due 3/14 (Sat)
notes: json language.pdf
▶▶▶ Switch to online ◀◀◀
Note: Videos may look different depending on the day.
HW10: Tree sort, due 3/27 (Fri)
qsort(…), function addresses
These are Boilercast videos from Spring 2019, but I have added them to this semester. If these links don't work for you, try going to Boilercast and either scrolling down or hitting Ctrl-F (or Cmd-F on Mac) to search for the topics. I am working on a new, fancier video, but it doesn't matter which one you watch. The information is the same. For the old ones, just skip the bits that we've already covered, or that don't apply to this semester.
If these links don't work for you, try going into Blackboard » Boilercast.
HW11: Huffman 1: priority queue, due 4/2 (Thu)
Bytes vs. values, endianness, files
Quiz questions are for your practice, and not graded.
slides: bytes vs values, endianness.pptx
Error handling with files
You can skip to specific topics by clicking the button in the player.
This was actually posted on Wed 4/8.
slides: 20200406 error handling.pptx
HW12: Huffman 2: files, frequencies, due 4/8 (Wed)
snippets: set_bit_1.c set_bit_2.c, set_bit_3.c, set_bit_4.c, set_bit_5.c, set_bit_6.c, set_bit_7.c, set_bit_8.c
video: 20200410.mp4, 20200410_First_Frame.png, 20200410_Thumbnails.png, 20200410_config.xml, 20200410_embed.css, 20200410_player.html, index.html, scripts/config_xml.js, scripts/desktop.ini, scripts/techsmith-smart-player.min.js, skins/desktop.ini, skins/remix/desktop.ini, skins/remix/techsmith-smart-player.min.css
HW13: Huffman 3: linked list of trees, due 4/14 (Tue)
HW14: Huffman 4: build Huffman tree, due 4/17 (Fri)
HW15: Huffman 5: write bits to a file, due 4/20 (Mon)
HW16: Huffman 6: encode tree to file, due 4/23 (Thu)
HW17: Huffman 7: encode data to file, due 4/25 (Sat)
Software engineering review for Exam 3, ISO C89→C99→C11→C18
Code quality, TDD, testing, typecasts
You should also watch the lecture from Mon 4/13 in its entirety, if you have not done so already.
Parallel programming, review of unit testing, code coverage, bugs vs. run time errors, X forwarding
HW18: Huffman 8: command line, due 4/30 (Thu)
HW19: Buffer overflow, due 5/2 (Sat)
EC01: BMP, due 5/2 (Sat)
EC02: Parallel Adaptive Threshold, due 5/2 (Sat)
Buffer overflow, stack memory, instructions, registers, assembly language
OPTIONAL: Alchemy, next steps for learning C after ECE 264
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.