What does it mean to think in code? How do you decide which features are worth the engineering cost? How do you write systems other people can understand, change, and combine with their own work? What is “architecture” for, if not communication? Intermediate Programming for Games is a hands-on studio class about programming as a way of thinking and communication as the skill that makes that thinking useful. You will build several projects in C# (primarily with Monogame, including a Unity port of a service- and event-bus-based architecture) that force you to design clear boundaries, readable public APIs, and modular systems that survive changing requirements. The work is practical, but the goal is not “more syntax.” The goal is to get better at deciding what to build, explaining how your code works to others, and structuring projects so collaboration is possible. We will treat design patterns, dependency management, and content pipelines as tools for thinking and talking.