Exercises: What's Next — Pathways in Computer Science
These exercises focus on reflection, self-assessment, and planning rather than coding. You've done plenty of coding over the past 26 chapters — this is your chance to step back and think about the bigger picture.
Difficulty Guide: - ⭐ Foundational (5-10 min each) - ⭐⭐ Intermediate (10-20 min each) - ⭐⭐⭐ Challenging (20-40 min each) - ⭐⭐⭐⭐ Advanced/Research (40+ min each)
Part A: Reflection ⭐
A.1. Write a short paragraph (4-6 sentences) that you would say to the version of yourself who opened Chapter 1 for the first time. What do you wish you had known? What would you tell yourself not to worry about?
A.2. Name the three concepts from this course that were hardest for you to learn. For each one, describe what made it difficult and what eventually helped it "click." If it hasn't fully clicked yet, that's worth acknowledging too.
A.3. Name the three concepts that surprised you — things that turned out to be more interesting, more useful, or more fun than you expected when you first heard about them.
A.4. In Chapter 1, we said "computational thinking is a superpower." Now that you've experienced 27 chapters of it, do you agree? Write 3-4 sentences explaining your answer with specific examples from the course.
A.5. The recurring theme "errors are information, not failures" appeared across many chapters. Describe a specific debugging experience from this course where an error message led you to the solution. How has your relationship with error messages changed since Chapter 2?
Part B: Self-Assessment ⭐⭐
B.1. Complete the skills inventory from Section 27.7. For each skill rated 2 or below, write one specific action you could take to improve it (e.g., "Re-read Chapter 18 and complete all exercises" or "Build a small project using recursion").
B.2. Look at the TaskFlow version history in Section 27.8. Pick the three versions where you learned the most. For each one, explain what was new and why that particular feature or concept was significant to your development as a programmer.
B.3. Review the four pillars of computational thinking (decomposition, pattern recognition, abstraction, algorithm design). For each pillar, identify one non-programming situation in your daily life where you now apply that thinking — something you wouldn't have recognized before this course.
B.4. Compare your approach to solving a programming problem now versus how you approached it in the first few weeks. Describe the steps you take today when you encounter a problem (before you start typing code). What has changed?
Part C: Planning and Research ⭐⭐⭐
C.1. Career Exploration: Choose two career pathways from Section 27.3. For each one: - Find one real job posting that matches the description (search LinkedIn, Indeed, or a company website) - List the skills from the job posting that you already have - List the skills you would need to develop - Identify one free or low-cost resource where you could start learning each missing skill
C.2. Learning Roadmap: Create a 6-month learning plan for yourself. Include: - One course you'll take next (CS2, a specialization, or a self-study course) - One personal project you'll build, with a brief description and a list of concepts it will require - One community you'll join (online forum, local meetup, open source project) - Monthly milestones so you can track your progress
C.3. Open Source Exploration: Visit GitHub and find an open-source Python project that interests you. Then: - Read the project's README and CONTRIBUTING guide - Find the "Issues" tab and look for issues labeled "good first issue," "beginner-friendly," or "help wanted" - Pick one issue and write a plan for how you would approach fixing it (you don't have to actually submit the fix — though you certainly can) - Describe what you learned about the project by reading its code and documentation
C.4. AI Tool Evaluation: Use an AI coding assistant (GitHub Copilot, ChatGPT, Claude, or another) to generate a solution to a problem from an earlier chapter (pick something from Chapter 17-19). Then: - Evaluate the generated code: Is it correct? Is it efficient? Is it readable? - Identify any errors, inefficiencies, or style issues - Compare it to the solution you wrote yourself - Write a paragraph reflecting on how your CS1 knowledge helped you evaluate the AI's output
Part D: Writing and Communication ⭐⭐⭐⭐
D.1. Teach It: Choose one concept from this course and write a 500-word explanation of it aimed at someone who has never programmed before. Use an analogy, a concrete example, and at least one "common misconception" that you address directly. The test: could someone who reads your explanation understand the concept well enough to use it?
D.2. The Elevator Pitch: You have 60 seconds to explain to a family member or friend what you learned in this course and why it matters. Write out your pitch. It should be jargon-free, specific (not "I learned to code"), and convey genuine enthusiasm for at least one thing you built or discovered.
D.3. Letter to the Next Cohort: Write a one-page letter to the students who will take this course next semester. Include: what to expect, what surprised you, your best advice for succeeding, and the one thing you wish was different about the course. Be honest but constructive.
D.4. Portfolio README: Write a README file for your TaskFlow project that you could put on GitHub. Include: - A clear description of what the project does - Installation and usage instructions - A list of features - A "What I Learned" section that highlights the key concepts demonstrated by the project - A "Future Plans" section with at least three extensions you'd like to build
This is a real exercise — you can use this README when you publish your project.