Unit 1: Introduction to Programming with Karel the Dog
Importance: This unit introduces students to the fundamental concepts of programming in a visual and interactive way, making it easier to grasp basic commands and control structures.
- Commands
- Defining vs. Calling Methods
- Designing Methods
- Program Entry Points
- Control Flow
- Looping
- Conditionals
- Commenting Code
- Preconditions and Postconditions
- Top Down Design
Assignments/Labs: 26 Karel programming exercises, including tasks like building structures and solving logical puzzles.
Unit 2: Karel Challenges
Importance: Reinforces the foundational concepts by solving more complex problems, ensuring students can apply what they've learned in varied contexts.
- Solving large and more complex problems using Karel
Assignments/Labs: 5 Karel challenges to synthesize and apply concepts.
Unit 3: JavaScript Basics
Importance: Introduces core JavaScript concepts essential for all future programming, such as variables and user input.
- Variables
- User Input
- Arithmetic Expressions
- Constants
- Collaborative Programming
- Random Numbers
- Functions
Assignments/Labs: 12 exercises, including tasks like prompting user input and performing calculations.
Unit 4: The Canvas and Graphics
Importance: Introduces graphical programming, making coding more engaging and teaching how to manipulate visual elements.
- JavaScript Canvas
- JavaScript Graphics
- Positioning Graphics Objects
Assignments/Labs: 7 exercises, including creating memes and other graphical projects.
Unit 5: Graphics Challenges
Importance: Enhances problem-solving skills by applying graphics concepts to more complex projects.
- Solving large and complex problems using graphics
Assignments/Labs: 3 challenges, such as drawing a ghost using constant values.
Unit 6: JavaScript Control Structures
Importance: Teaches advanced control structures that are crucial for creating dynamic and interactive programs.
- Booleans
- If/Else Statements
- Logical Operators
- Comparison Operators
- Conditionals
- While Loops
- Break Statements
- For Loops
- Nested Control Structures
Assignments/Labs: 31 exercises, including inventory management and digital jukebox simulations.
Unit 7: Control Structures Challenges
Importance: Consolidates knowledge of control structures by tackling more intricate problems.
- Solving complex problems using control structures
Assignments/Labs: 3 challenges, such as creating a guessing game.
Unit 8: Functions
Importance: Teaches the creation of reusable code, promoting efficient programming practices.
- Parameters
- Return Values
- Default Parameters
- Scope
Assignments/Labs: 12 exercises, including tasks like checking if numbers are even or odd.
Unit 9: Functions Challenges
Importance: Applies function concepts to solve sophisticated problems, reinforcing the importance of modular code.
- Solving complex problems using functions
Assignments/Labs: 3 challenges, such as creating dynamic graphical displays with balloons.