Programming by Design: Course Overview + Strategic Pathways
Course Title: Programming by Design: Computing, Representation, and Reasoning Grade Level: 9th Grade Format: Yearlong, Modular, Project-Based Instructor: Eric Allatta
Course Overview
This course treats computer science as a discipline of design, logic, and interpretation—not just syntax or application. Students begin with structure, build through data, and extend to systems thinking, human-computer interaction, and inquiry through code. The goal is not just for students to write code, but to think with clarity, test their logic, and communicate their ideas in public-facing forms.
Guiding Principles:
- Programming is a language for structured thinking
- Data is never neutral—it must be interpreted and questioned
- Systems must be tested, visualized, and explained
- Good code is communicative: to machines and to people
Conceptual Arc
| Unit | Focus | Tool/Language |
|---|---|---|
| 1 | Computing as Communication | Concepts + History |
| 2 | Functional Design | Racket |
| 3 | Data Science + Representation | Pyret |
| 4 | Control + State | Python + EarSketch |
| 5 | Interfaces + Interpretation | HTML/CSS |
| 6 | Inquiry + Real Data | APIs + Jupyter |
| 7 | Infrastructure + Power | Internet Simulator + CLI |
| 8 | Capstone | Student Choice |
Strategic Pathways
This course is designed as a launchpad—not a terminal experience. Students are prepared for multiple rigorous next steps:
1. AP Computer Science A
- Strong foundation in control flow, state, and decomposition
- Transition to OOP and Java syntax built on solid habits
2. Data Science + AP Capstone Track
- Literate computing and real inquiry via Jupyter and APIs
- Ethical analysis and project framing embedded throughout
3. Algebra 2 + Computing Integration
- Tight alignment with function modeling, logic, and recursive structure
- Reinforces algebraic thinking through real applications
Outcomes
By the end of this course, students will:
- Write, test, and debug code across languages and paradigms
- Build and explain simulations, visualizations, and interfaces
- Analyze the structure and ethics of real-world computing systems
- Complete a capstone project that demonstrates reasoning, technical skill, and interpretive clarity
This is not a showcase course. It’s a thinking course. And it’s built to last.