update OOP session materials & resources#294
update OOP session materials & resources#294PaoloBozzini wants to merge 4 commits intoHackYourFuture-CPH:mainfrom
Conversation
siderdk
left a comment
There was a problem hiding this comment.
Thank you so much Paolo for putting this together. Really loved the session and I even learned a few things that day.
I think the session materials part is really nice. I wanted to share a couple of thoughts before we merge and would love to hear what @HackYourFuture-CPH/curriculum-crew and other mentors think too.
The new content has some really useful pedagogical ideas (the FoodDash design challenge, the composition vs inheritance progression). One thing I'm wondering is whether the session plan might be getting a bit dense for its role as the first document mentors open when prepping. The old version was very scannable, which made it easy to quickly get oriented.
What if we kept the session plan itself lightweight (topic order, links, key guardrails) and moved the more detailed facilitation advice, analogies, and discussion prompts into a separate "Facilitator's Guide" or into the slide speaker notes? That way it's all still available for mentors who want it, but it doesn't overwhelm the main document. It would also leave more room for mentors to bring their own style to the session. Would love to hear how others feel about this balance.
As for the assignment, adding API documentation is a great idea. We've seen confusion before where trainees get stuck just trying to get the APIs working, which has nothing to do with the actual learning goals. The question I'd raise is whether the current code examples might be giving away a bit too much. The complete fetch functions, the UIComponent base class, the error class examples, and the handler pattern are pretty close to what the assignment is asking trainees to build themselves.
Maybe we could trim the API sections to just the reference info (endpoints, methods, headers, response shape) and let trainees write the actual functions? And for the class/error patterns, the existing prose hints ("think about what parts can be modeled as classes") might already be enough guidance. But I'm curious if others see it differently, maybe some cohorts need more scaffolding than I'm assuming.
Thank you again for the very valuable contribution, and apologies for the very delayed feedback 🙏
|
Thanks for the thorough and thoughtful review, no need to apologize for the delay at all! I've updated both files based on your feedback: Assignment: I trimmed the API sections to reference tables only (endpoint, method, headers, response shape) so trainees write the actual fetch functions themselves. Removed the Screenshot class scaffolding and the full error class + handler examples. I kept the UIComponent base class though, the assignment is already long (honestly, I still think it's too long) and that boilerplate isn't really what we're asking trainees to figure out. Let me know if the balance feels right now! |
|
Thank you again Paolo. I really appreciate your work and thoughts. |
Week 4 – OOP Materials Rework
Reworked the week 4 materials after teaching the session. I reworked the week 4 materials to better reflect how I actually run the session. Below my proposed changes:
Session plan restructured
Reordered around: mental model → object to class → methods → FoodDash design challenge → inheritance & composition → optional design patterns. This avoids introducing syntax before learners have a conceptual hook.
Exercises reorganised
FoodDash design + build — split into a design phase first, then implementation (as a bonus).
Code-inspiration extended
Added inheritance/composition and design pattern snippets. Design pattern are marked optional.
README learning goals updated
Inheritance/composition and design patterns marked as optional.
Monster Arena challenge added
A more advanced, self-contained challenge for trainees who finish early or want to go further after the session
More documentation to the assignment
Added more context, examples and snippets of code to the assignment
Checks
npm run generate:learning-goalspassing for both Backend and Frontend ✅