Reinforce that certain types in Python such as lists are mutable while others (e.g. strings, tuples) are not. Students have difficulty tracing code that uses mutable types because they often forget this. Share Reinforce that certain types in Python such as lists are mutable while others (e.g. strings, tuples) are not. Students have difficulty tracing code that uses mutable types because they often forget this. with FacebookShare Reinforce that certain types in Python such as lists are mutable while others (e.g. strings, tuples) are not. Students have difficulty tracing code that uses mutable types because they often forget this. with Twitter
Foreshadow arrays right after teaching for loops by showing students how to create a 1x6 grid using the rectangle object in the Java objectdraw library because visualizations built off of recently introduced material provide a useful transition. Share Foreshadow arrays right after teaching for loops by showing students how to create a 1x6 grid using the rectangle object in the Java objectdraw library because visualizations built off of recently introduced material provide a useful transition. with FacebookShare Foreshadow arrays right after teaching for loops by showing students how to create a 1x6 grid using the rectangle object in the Java objectdraw library because visualizations built off of recently introduced material provide a useful transition. with Twitter
Require students to refactor their code while keeping the output of their program exactly the same in order to challenge them to solve problems using a variety of strategies. Share Require students to refactor their code while keeping the output of their program exactly the same in order to challenge them to solve problems using a variety of strategies. with FacebookShare Require students to refactor their code while keeping the output of their program exactly the same in order to challenge them to solve problems using a variety of strategies. with Twitter
Have students code boundary condition test to handle removing adjacent duplicates to help them better understand data structures and become familiar with common bugs through practice. Share Have students code boundary condition test to handle removing adjacent duplicates to help them better understand data structures and become familiar with common bugs through practice. with FacebookShare Have students code boundary condition test to handle removing adjacent duplicates to help them better understand data structures and become familiar with common bugs through practice. with Twitter
Give students a fully functional program on Day 1 that they will incrementally add features to as you cover content throughout the semester to engage them by satisfying their desire for creating working code. Share Give students a fully functional program on Day 1 that they will incrementally add features to as you cover content throughout the semester to engage them by satisfying their desire for creating working code. with FacebookShare Give students a fully functional program on Day 1 that they will incrementally add features to as you cover content throughout the semester to engage them by satisfying their desire for creating working code. with Twitter
Use group discussion to help students figure out boundary cases for removing duplicate adjacent elements on their own so that they get to discuss a variety of test cases in depth before focusing on the code. Share Use group discussion to help students figure out boundary cases for removing duplicate adjacent elements on their own so that they get to discuss a variety of test cases in depth before focusing on the code. with FacebookShare Use group discussion to help students figure out boundary cases for removing duplicate adjacent elements on their own so that they get to discuss a variety of test cases in depth before focusing on the code. with Twitter
Misconception: Students may think that assigning one array to point to another array makes a copy of that array, failing to make a distinction between shallow and deep copies. Share Misconception: Students may think that assigning one array to point to another array makes a copy of that array, failing to make a distinction between shallow and deep copies. with FacebookShare Misconception: Students may think that assigning one array to point to another array makes a copy of that array, failing to make a distinction between shallow and deep copies. with Twitter
Misconception: Students have difficulty working with temporary variables in arrays. Share Misconception: Students have difficulty working with temporary variables in arrays. with FacebookShare Misconception: Students have difficulty working with temporary variables in arrays. with Twitter
Use Car as an example of an interface because students agree on the general behaviors of a car but can only come up with specific instantiations of cars, which provides students with a strong mental model for interface relationships. Share Use Car as an example of an interface because students agree on the general behaviors of a car but can only come up with specific instantiations of cars, which provides students with a strong mental model for interface relationships. with FacebookShare Use Car as an example of an interface because students agree on the general behaviors of a car but can only come up with specific instantiations of cars, which provides students with a strong mental model for interface relationships. with Twitter
Use Clock as an example of an abstract class because ALL clocks have the same mechanism for keeping time, a necessary property for an Abstract Class, to provide students with a strong real-world mental model for abstract classes. Share Use Clock as an example of an abstract class because ALL clocks have the same mechanism for keeping time, a necessary property for an Abstract Class, to provide students with a strong real-world mental model for abstract classes. with FacebookShare Use Clock as an example of an abstract class because ALL clocks have the same mechanism for keeping time, a necessary property for an Abstract Class, to provide students with a strong real-world mental model for abstract classes. with Twitter
Explain that Strings in Java are a weird-hybrid between a primitive and an Object and as a result they can’t be modified. Share Explain that Strings in Java are a weird-hybrid between a primitive and an Object and as a result they can’t be modified. with FacebookShare Explain that Strings in Java are a weird-hybrid between a primitive and an Object and as a result they can’t be modified. with Twitter
Have students act out diagrams they create of the stack and heap to extend this common drawing exercise and help them strengthen their mental models. Share Have students act out diagrams they create of the stack and heap to extend this common drawing exercise and help them strengthen their mental models. with FacebookShare Have students act out diagrams they create of the stack and heap to extend this common drawing exercise and help them strengthen their mental models. with Twitter
Force students to explore inheritance and the Java APIs for ArrayList by writing code that HAS-A ArrayList or IS-A ArrayList. Share Force students to explore inheritance and the Java APIs for ArrayList by writing code that HAS-A ArrayList or IS-A ArrayList. with FacebookShare Force students to explore inheritance and the Java APIs for ArrayList by writing code that HAS-A ArrayList or IS-A ArrayList. with Twitter
Misconception: In Java, students don’t realize that methods are inherited, but constructors are not. Share Misconception: In Java, students don’t realize that methods are inherited, but constructors are not. with FacebookShare Misconception: In Java, students don’t realize that methods are inherited, but constructors are not. with Twitter
Use 7-day 4-doses-a-day pill-organizers to introduce students to 2D arrays because these create an interactive, 7-by-4 two-dimensional array that helps students visualize this abstract concept. Share Use 7-day 4-doses-a-day pill-organizers to introduce students to 2D arrays because these create an interactive, 7-by-4 two-dimensional array that helps students visualize this abstract concept. with FacebookShare Use 7-day 4-doses-a-day pill-organizers to introduce students to 2D arrays because these create an interactive, 7-by-4 two-dimensional array that helps students visualize this abstract concept. with Twitter
Use a toddler’s shape sorter as a way of introducing Class Creation and Inheritance. Share Use a toddler’s shape sorter as a way of introducing Class Creation and Inheritance. with FacebookShare Use a toddler’s shape sorter as a way of introducing Class Creation and Inheritance. with Twitter
Get students paying attention to types in Python; although type declarations aren’t explicitly required in Python, they still exist and are crucial to understanding how Python manages data. Share Get students paying attention to types in Python; although type declarations aren’t explicitly required in Python, they still exist and are crucial to understanding how Python manages data. with FacebookShare Get students paying attention to types in Python; although type declarations aren’t explicitly required in Python, they still exist and are crucial to understanding how Python manages data. with Twitter
Have students make a multiplication table to practice working with 2D arrays, nested loops, and abstraction using a data construct they’re already familiar with. Share Have students make a multiplication table to practice working with 2D arrays, nested loops, and abstraction using a data construct they’re already familiar with. with FacebookShare Have students make a multiplication table to practice working with 2D arrays, nested loops, and abstraction using a data construct they’re already familiar with. with Twitter
Show students what code looks like with and without new programming constructs (e.g., methods, Objects, inheritance, loops, switch statements) to motivate the reasons for using new concepts. Share Show students what code looks like with and without new programming constructs (e.g., methods, Objects, inheritance, loops, switch statements) to motivate the reasons for using new concepts. with FacebookShare Show students what code looks like with and without new programming constructs (e.g., methods, Objects, inheritance, loops, switch statements) to motivate the reasons for using new concepts. with Twitter
Have students sort specific topics in computer science into broader categories in an activity that uses index cards to give them a big-picture understanding of concepts they are learning. Share Have students sort specific topics in computer science into broader categories in an activity that uses index cards to give them a big-picture understanding of concepts they are learning. with FacebookShare Have students sort specific topics in computer science into broader categories in an activity that uses index cards to give them a big-picture understanding of concepts they are learning. with Twitter