Use visual depictions of programmatic concepts, such as recursion, to improve students’ understanding of the concept and reinforce students’ intuition about the concept. Share Use visual depictions of programmatic concepts, such as recursion, to improve students’ understanding of the concept and reinforce students’ intuition about the concept. with FacebookShare Use visual depictions of programmatic concepts, such as recursion, to improve students’ understanding of the concept and reinforce students’ intuition about the concept. with Twitter
Use Python’s map function to introduce students to loops early on, because the map function is an provides an easy transition to loops. Share Use Python’s map function to introduce students to loops early on, because the map function is an provides an easy transition to loops. with FacebookShare Use Python’s map function to introduce students to loops early on, because the map function is an provides an easy transition to loops. with Twitter
Ask students “What is the simplest input to this problem?” when teaching recursion to help students learn to identify appropriate base cases for each argument of their function. Share Ask students “What is the simplest input to this problem?” when teaching recursion to help students learn to identify appropriate base cases for each argument of their function. with FacebookShare Ask students “What is the simplest input to this problem?” when teaching recursion to help students learn to identify appropriate base cases for each argument of their function. with Twitter
Misconception: students think that when you assign a = b, there is no longer anything assigned to b because b empties its contents into a. Share Misconception: students think that when you assign a = b, there is no longer anything assigned to b because b empties its contents into a. with FacebookShare Misconception: students think that when you assign a = b, there is no longer anything assigned to b because b empties its contents into a. with Twitter
Define programming language terms independently of computer terminology to make concepts more accessible to students. Share Define programming language terms independently of computer terminology to make concepts more accessible to students. with FacebookShare Define programming language terms independently of computer terminology to make concepts more accessible to students. with Twitter
Misconception: Students confuse conditionals and events in event-based languages such as Blockly. Share Misconception: Students confuse conditionals and events in event-based languages such as Blockly. with FacebookShare Misconception: Students confuse conditionals and events in event-based languages such as Blockly. with Twitter
Trace through nested conditionals with students because nesting makes it difficult for them to track which lines of code get executed when. Share Trace through nested conditionals with students because nesting makes it difficult for them to track which lines of code get executed when. with FacebookShare Trace through nested conditionals with students because nesting makes it difficult for them to track which lines of code get executed when. with Twitter
Use the Code.org unplugged lesson “Conditionals with Cards” to help students build an intuitive sense for how conditionals and nested conditionals work. Share Use the Code.org unplugged lesson “Conditionals with Cards” to help students build an intuitive sense for how conditionals and nested conditionals work. with FacebookShare Use the Code.org unplugged lesson “Conditionals with Cards” to help students build an intuitive sense for how conditionals and nested conditionals work. with Twitter
Emphasize to students that nitty-gritty details are not important for understanding fundamental principles of computer science to motivate students to focus on their big picture understanding. Share Emphasize to students that nitty-gritty details are not important for understanding fundamental principles of computer science to motivate students to focus on their big picture understanding. with FacebookShare Emphasize to students that nitty-gritty details are not important for understanding fundamental principles of computer science to motivate students to focus on their big picture understanding. with Twitter
Have students implement a simple GeoLocation class in Java that finds the distance between two locations using the Google Maps API to give students an interesting introduction to object-oriented programming. Share Have students implement a simple GeoLocation class in Java that finds the distance between two locations using the Google Maps API to give students an interesting introduction to object-oriented programming. with FacebookShare Have students implement a simple GeoLocation class in Java that finds the distance between two locations using the Google Maps API to give students an interesting introduction to object-oriented programming. with Twitter
Have students develop a Java program that plots pictures in a 2D grid to practice 2D array processing with a focus on nested loops. Share Have students develop a Java program that plots pictures in a 2D grid to practice 2D array processing with a focus on nested loops. with FacebookShare Have students develop a Java program that plots pictures in a 2D grid to practice 2D array processing with a focus on nested loops. with Twitter
Have students implement a seam carving program in Java to give them experience with dynamic programming, and with manipulating 2D and 3D arrays. Share Have students implement a seam carving program in Java to give them experience with dynamic programming, and with manipulating 2D and 3D arrays. with FacebookShare Have students implement a seam carving program in Java to give them experience with dynamic programming, and with manipulating 2D and 3D arrays. with Twitter
Teach the concept of a variable’s scope in Scratch by explaining the difference between “For this sprite only” and “For all sprites.” Share Teach the concept of a variable’s scope in Scratch by explaining the difference between “For this sprite only” and “For all sprites.” with FacebookShare Teach the concept of a variable’s scope in Scratch by explaining the difference between “For this sprite only” and “For all sprites.” with Twitter
Have students design an anagram solver in Prolog or Java to introduce recursive backtracking. Share Have students design an anagram solver in Prolog or Java to introduce recursive backtracking. with FacebookShare Have students design an anagram solver in Prolog or Java to introduce recursive backtracking. with Twitter
Have students design a game of Breakout in Java to practice using conditionals and nested for loops. Share Have students design a game of Breakout in Java to practice using conditionals and nested for loops. with FacebookShare Have students design a game of Breakout in Java to practice using conditionals and nested for loops. with Twitter
Have students design a simple game using classes in Python so they realize that even beginners are capable of writing interesting programs. Share Have students design a simple game using classes in Python so they realize that even beginners are capable of writing interesting programs. with FacebookShare Have students design a simple game using classes in Python so they realize that even beginners are capable of writing interesting programs. with Twitter
Have students design a game of Asteroid in Java to introduce developing an object and class hierarchy. Share Have students design a game of Asteroid in Java to introduce developing an object and class hierarchy. with FacebookShare Have students design a game of Asteroid in Java to introduce developing an object and class hierarchy. with Twitter
Emphasize the importance of developing a consistent naming schema, especially for booleans, as a part of good style. Share Emphasize the importance of developing a consistent naming schema, especially for booleans, as a part of good style. with FacebookShare Emphasize the importance of developing a consistent naming schema, especially for booleans, as a part of good style. with Twitter
Introduce recursion using the example of opening a present wrapped in several layers of wrapping paper. Share Introduce recursion using the example of opening a present wrapped in several layers of wrapping paper. with FacebookShare Introduce recursion using the example of opening a present wrapped in several layers of wrapping paper. with Twitter
Have students use a recursive algorithm to solve the problem of only eating the squares of a chocolate bar that contain nuts to introduce recursive algorithms for arrays. Share Have students use a recursive algorithm to solve the problem of only eating the squares of a chocolate bar that contain nuts to introduce recursive algorithms for arrays. with FacebookShare Have students use a recursive algorithm to solve the problem of only eating the squares of a chocolate bar that contain nuts to introduce recursive algorithms for arrays. with Twitter