This course begins with a strong focus on programming in order to allow students to create computational artifacts early on in the course. Students will be able to use their knowledge of programming to explore future topics in the course.
We use Karel, a dog that only knows how to move, turn left, and place tennis balls in his world, to show students what it means to program, and allow students to focus on computational problem-solving. Students will learnabout the need for programming languages, the uses of programs, how to write programs to solve computational problems, how to design algorithms, how to analyze and compare potential solutions to programming problems, and learn the value and challenges involved in collaborating with others to solve programming problems. Students will use the grid coloring functionality of Karel tocreate a digital painting and embed this program in their portfolio website.
Abstraction
Lessons:
Abstraction
AAP-3.B.1 AAP-3.B.7 AAP-3.B.2 CRD-2.G.1 AAP-3.B.3 DAT-1.A.2 AAP-3.B.4 DAT-1.A.5 AAP-3.B.6
Procedural Abstraction
Modularity
Program Reuse
Digital Data (Bits)
Reducing Complexity
Programming Style
Lessons:
Intro to Programming
Super Karel
Ultra Karel
Top-Down Design Commenting Your Code
CRD-2.G.1 CRD-2.B.5 CRD-2.G.2 AAP-3.D.1 AAP-2.M.1 AAP-3.D.2 AAP-2.M.3 AAP-3.D.3 CRD-2.B.1 AAP-3.D.4 CRD-2.B.2 AAP-3.D.5
Program Documentation
Using Existing Code and Libraries
APIs
Commenting Code
Control Structures
Lessons:
If/Else Statements
For Loops
While Loops in Karel
AAP-2.G.1 AAP-2.J.1 AAP-2.K.1
If/Else Statements (Selection) For Loops and While Loops (Iteration)
Debugging Strategies
Lessons:
Functions in Karel
Debugging Strategies
CRD-2.I.1 CRD-2.I.2 CRD-2.I.3 CRD-2.I.5
Logic Errors
Syntax Errors
Run-Time Error
Testing
Designing Algorithms
Lessons:
Karel Algorithms
AAP-2.A.4 AAP-2.M.2 AAP-2.B.1 AAP-4.A.2 AAP-2.B.2 AAP-4.A.4 AAP-2.B.6 AAP-4.A.5 AAP-2.B.7 AAP-4.A.6
Sequencing, Selection, Iteration
Clarity and Readability
Using Existing Algorithms Optimization and Efficiency
Example Activities and Big Idea/Computational Thinking Practice
TheTwoTowers: In this program, students have Karel build two towers of tennis balls. Each tower should be 3 tennis balls high. In the end, Karel should end up on top of the second tower, facing East. Students need to write at least 3 functions in order to solve this problem. This activity requires students to design and create functions for repeated processes within their program. Students need to consider top-down design and decomposition through the following questions:
How can you break this problem down into smaller problems?
What is a subtask that Karel needs to do more than once in this problem?
[Big Idea AAP][Computational Thinking Practice 1]