Speaker note: This deck mirrors the Prerequisites page; the "Test yourself" tasks near the end are the same ones on that page.
Speaker note: This is not a "nice to have" list — week 1's C workshop assumes all of this is already working.
Speaker note: If a self-check task feels shaky, the fix is to go back to the matching CEN107/CEN108 material, not to skip it.
Speaker note: Five things, each already taught in CEN107/CEN108, that this course reuses starting week 1.
Speaker note: If this is not already working, week 1's C workshop will be a struggle before it even starts.
Speaker note: Both the midterm and the final checkpoint are graded partly on how Git was actually used, not just the final code.
Speaker note: 100% test coverage is a hard acceptance condition in the project guide — this is where that skill comes from.
Speaker note: The template already wires up building, testing, documentation and coverage — you extend it, you do not build that scaffolding from scratch.
Speaker note: Recursion is not a "week 3 topic" — it is a tool this course reaches for repeatedly, all the way through file organization.
Speaker note: The midterm project is C, the final project is Java — almost every data structure is built directly out of these constructs.
Speaker note: You should be able to read AND write every one of these comfortably before the first class, not just recognize them.
Speaker note: The final project ports every C data structure to Java using generics — this short list is exactly what that port needs.
Speaker note: These two are recapped, not assumed cold — everything else in this deck IS assumed.
Speaker note: A laptop is required — come to the first class with every one of these already installed.
Speaker note: Every one of these is free and cross-platform; there is no licensing barrier to arriving ready.
Speaker note: Eight tasks. Try each on your own computer before looking at the answer on the next slide.
Speaker note: Think about what p and x actually share before revealing the answer.
Speaker note: This is the single idea the entire course builds on: a pointer and the variable it points to are the same memory.
Speaker note: Both notations describe the exact same memory access.
Speaker note: This equivalence is why arrays and pointers look interchangeable in C function signatures.
Speaker note: Ask where arr actually lives, and what happens to that memory the instant the function returns.
Speaker note: "Dangling pointer" is exactly the bug named on the Week 1 recap slide of the stacks-and-queues deck.
Speaker note: This is the exact shape every linked-list function in weeks 2–3 will take.
Speaker note: Every recursive function in this course needs exactly this shape: a base case, then a call on a strictly smaller problem.
Speaker note: Compare this to fprintf, which would have produced text, not raw bytes.
Speaker note: File organization (weeks 13–14) is built entirely on this same fwrite/fread pattern, just with records instead of ints.
Speaker note: Think about what List<Integer> restricts and what the for-each loop does with it.
Speaker note: The final project's F1 requirement ports every C structure to Java using exactly this kind of generic.
Speaker note: Think about what "finally" guarantees regardless of whether an exception was thrown.
Speaker note: This exact try/catch/finally shape reappears in the final project's file-handling code.
Speaker note: These are the exact two templates named in the project guide for the midterm and final checkpoints.
Speaker note: This is the single best predictor of a smooth week 1 — a green run on both templates, done in advance.
Speaker note: These two pages/decks are the natural next stop after this one.