6.3.5 Cmu Cs Academy [patched] May 2026
Since CMU CS Academy updates their curriculum frequently and specific exercise numbers can shift, Unit 6.3 generally focuses on Keyboard Input. Specifically, 6.3.5 is typically an exercise where students learn to move a shape using onKeyPress and onKeyRelease to create smooth movement (handling the "sticky key" issue).
Below is a guide on the concepts taught in this section and a walkthrough for a standard "Shape Mover" exercise.
The Objective: From Text to Graphics
The primary goal of 6.3.5 is to bridge the gap between backend data processing and frontend visual output. Students are usually tasked with reading a CSV (Comma Separated Values) file and plotting the data using a Bar Chart, Line Graph, or Scatter Plot. 6.3.5 Cmu Cs Academy
This exercise reinforces the idea that coding is a tool for problem-solving. Instead of just drawing shapes, students are drawing shapes based on external, real-world variables.
1. Reading CSV Files
The foundation of the exercise is importing data. Instead of manually typing lists like data = [10, 20, 30], students learn to read from a file. The typical pattern involves: Since CMU CS Academy updates their curriculum frequently
- Importing the
csvlibrary. - Opening a file using
with open('filename.csv') as file:. - Using
csv.readerto parse the file into a list of lists or processing it row by row.
2. The key Parameter
The onKeyPress(key) function receives a string argument. For arrow keys, the strings are:
'up''down''left''right'
1. The Core Concept: Event-Driven Movement
In previous units, you used app.step() to make things happen automatically. In Unit 6.3, you switch to Event-Driven programming. The code only runs when the user presses a key. The Objective: From Text to Graphics
The primary goal of 6
Educational Goals
- Practice handling mouse drag events (
onMouseDrag) - Use appends to a list to store shapes
- Combine mouse coordinates with random colors
Step 2: Set Up the Function Template
In CMU CS Academy’s graphics environment, you would write:
def alternating_colors(rows, cols):
grid = [] # This will become a list of rows
# Your nested loops here
return grid