CMU CS Academy - Programming Semester
Semester overview and lesson resources
Purpose of This Semester
This document describes the programming-focused semester of the Fundamentals of Computer Science course. This semester uses the CMU CS Academy CS1: Introduction to Programming curriculum to address the programming and computational thinking components of the Texas Essential Knowledge and Skills (TEKS) for computer science.
The other semester of Fundamentals of Computer Science addresses additional TEKS topics such as digital citizenship, technology operations, hardware concepts, binary representation, and web development.
This semester is dedicated specifically to learning to program.
Semester Description
During this semester, students will learn the fundamentals of computer programming through interactive, graphics-based projects. Instruction emphasizes:
- Logical problem solving
- Algorithmic thinking
- Debugging strategies
- Writing and organizing code
- Creating interactive programs
No prior programming experience is required.
The semester is designed to prepare students for more advanced computer science courses such as AP Computer Science Principles, AP Computer Science A, or additional programming electives.
Course Structure and Parameters
- Length: One semester (approximately 40 class meetings)
- Class Duration: 90 minutes
- Curriculum Platform: CMU CS Academy – CS1
- Units Covered: 1–8, 10–11
- Unit 9: Omitted
- Unit 12: Final Project (semester test)
- Grading Periods: Two grading periods of 20 classes each
- Clean Midpoint Divide: After Class 20
Semester Narrative
The semester is intentionally divided into two distinct phases:
First Half – "Learn the Core Tools of Programming"
Students develop essential skills:
- Variables and functions
- Conditionals and decision making
- Mouse and keyboard interaction
- Building basic interactive programs
Second Half – "Use Those Tools to Build Bigger Things"
Students apply earlier skills to:
- Animation and motion
- Loops and repetition
- Randomization
- Lists and simple games
- Larger, more complex programs
This structure ensures that students first master the basics before moving into more advanced programming concepts.
Instructional Methodology
This semester uses a blended learning model that combines direct instruction with guided independent practice.
Typical Class Structure
- 35–45 minutes: Teacher-Led Instruction
- Concept introduction
- Live coding demonstrations
- Explanation of new programming ideas
- Modeling problem-solving strategies
- 45–55 minutes: Student Work Time
- Working through CMU CS Academy lessons and exercises
- Applying new skills
- Debugging with teacher support
Homework Expectations
Learning to program requires regular practice.
- Unfinished CMU lessons and exercises become homework
- Students are expected to complete assigned coding work outside of class
- Typical homework expectation: 30–60 minutes between class meetings
This approach mirrors how real-world programming is learned and prepares students for future computer science coursework.
Programming Topics Covered
This semester follows the CMU CS Academy CS1 curriculum.
| Unit | Major Topics |
|---|---|
| Unit 1 | Creating drawings, shapes, colors |
| Unit 2 | Functions, mouse events, object properties |
| Unit 3 | Conditionals and helper functions |
| Unit 4 | Key events and program methods |
| Unit 5 | Nested and complex conditionals |
| Unit 6 | Groups, animation, and motion |
| Unit 7 | Local variables and for loops |
| Unit 8 | Random values and nested loops |
| Unit 10 | Lists and return values |
| Unit 11 | 2D lists and simple games |
| Unit 12 | Final programming project |
Unit 9 is intentionally omitted to maintain an appropriate semester pace.
What Students Will Be Able to Do
By the Midpoint of the Semester
Students will be able to:
- Write basic computer programs
- Use functions to organize code
- Create interactive graphics
- Use conditional logic
- Respond to mouse and keyboard input
- Debug and improve their own programs
By the End of the Semester
Students will also be able to:
- Use loops and animation
- Work with lists and data structures
- Create simple games and simulations
- Plan and complete a multi-day programming project
Grading Plan for This Semester
Grading Period Structure
Each grading period (20 classes) follows the same format:
| Category | Number of Grades | Weight Each | Total Weight |
|---|---|---|---|
| Mastery / Understanding | 8 | 10% | 80% |
| Engagement | 4 | 5% | 20% |
| Total | 12 grades | 100% |
Mastery / Understanding Grades (80%)
These grades measure actual programming knowledge and skills. Examples include:
- Programming quizzes
- Application labs
- Mini-projects
- Unit assessments
- Cumulative programming tasks
Engagement Grades (20%)
Engagement grades reward consistent effort and responsibility, including:
- Completion of assigned CMU CS Academy exercises
- Productive use of class work time
- Meeting homework expectations
- Regular progress through online lessons
Semester Grade Calculation
| Component | Percent of Semester |
|---|---|
| Grading Period 1 | 45% |
| Grading Period 2 | 45% |
| Semester Test – Unit 12 Final Project | 10% |
| Total | 100% |
The Unit 12 Final Project serves as the semester test grade and is completed during the final two class meetings.
Semester Lessons
First Half - Classes 301-321
| Lesson | Description |
|---|---|
| 301 | Personal Introduction and class procedures |
| 302 | Course intro, digital citizenship, CMU setup, Unit 1.1 Basics |
| 303 | Unit 1.2 Colors |
| 304 | Unit 1.3 Shapes |
| 305 | FLEX DAY #1 – reteach / catch-up |
| 306 | Unit 1 Exercises Catch-Up and Support Day |
| 307 | Unit 1 Creative Mini-Task |
| 308 | Lecture: 2.1 Functions + 2.2 Mouse Events |
| 309 | 2.3 Properties – guided practice |
| 310 | Unit 2 Exercises Catch-Up and Support Day |
| 311 | Collaborative debugging challenge |
| 312 | 3.1 Mouse Motion + 3.2 Conditionals |
| 313 | 3.3 Helper Functions |
| 314 | Unit 3 Exercises Catch-Up and Support Day |
| 315 | Assessment + application lab |
| 316 | 4.1 More Conditionals |
| 317 | 4.2 Key Events + 4.3 Methods |
| 318 | Unit 4 Exercises Catch-Up and Support Day |
| 319 | 5.1 Nested Conditionals |
| 320 | 5.2 onKeyHold and advanced logic |
| 321 | Consolidation + mini-project |
Second Half - Classes 401-421
| Lesson | Description |
|---|---|
| 401 | Groups and group methods |
| 402 | onStep events and motion |
| 403 | Unit 6 Exercises Catch-Up and Support Day |
| 404 | Creative application lab |
| 405 | 7.1 New shapes |
| 406 | 7.2 Local variables |
| 407 | 7.3 For loops |
| 408 | Unit 7 Exercises Catch-Up and Support Day |
| 409 | Math functions |
| 410 | Random values |
| 411 | Nested loops |
| 412 | Unit 8 Exercises Catch-Up and Support Day |
| 413 | Unit 10 Lists basics |
| 414 | Return values |
| 415 | Unit 10 Exercises Catch-Up and Support Day |
| 416 | 2D Lists |
| 417 | Writing simple board games |
| 418 | Game lab / assessment |
| 419 | Review |
| 420 | Unit 12 Final Project – Day 1 |
| 421 | Unit 12 Final Project – Day 2 |
Enrichment Activities
| Activity | Description |
|---|---|
| CMU Graphics → Mobile App | Refactor a CMU CS Academy Python project into a React Native mobile app using Claude.ai and the CodeHS sandbox. Runs on a real device via Expo Go. |