Advanced JavaScript

Programming for Middle Schoolers

The advanced middle school JavaScript course is designed to take students with a basic understanding of programming to the next level. The curriculum focuses on enhancing logical thinking and problem-solving skills through hands-on programming practice.
6:30 – 7:30 on Mondays
Sep 11, 24 to Jun 2, 25
Code Cadets
Grades: 7th to 8th

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.