Challenge 1: Where Three Specific kvstore Pieces Came From — Possible Solution ==================================================================== (a) THE SEPARATE-CHAINING COLLISION STRATEGY comes from c3-2 (Building Data Structures From Scratch). That chapter built the exact bucket-of-linked-list structure kvstore's HashTable reuses directly -- when two keys hash to the same bucket index, both are appended to that bucket's own linked list rather than one overwriting the other, exactly as c3-2 established and justified. (b) THE SAVE-FILE FORMAT comes from c2-6 (File I/O). The one-line- per-entry "key=value\n" text format, written with fopen/fprintf in "w" mode and read back on startup, is a direct application of that chapter's fopen/fprintf/fgets material -- specifically the text-mode (not binary-mode) file handling it covered. (c) THE DISCIPLINE OF FREEING EVERY KEY AND VALUE ON PROGRAM EXIT comes from c2-2 (Dynamic Memory), applied at the scale c3-2 later extended it to (many separate allocations, not just one). Every string duplicated onto the heap when a key or value is inserted needs its own matching free -- the exact malloc/free pairing discipline c2-2 established as this track's central safety-tradeoff lesson. WHY THIS WORKS AS AN ANSWER ------------------------------ This correctly attributes each piece to its actual origin chapter (not just "somewhere in Course 2/3") and briefly restates what that chapter specifically taught that the capstone is now applying, confirming real understanding of how the pieces connect rather than just naming chapter numbers.