As each school year comes to an end it is important to reflect and ensure you focus on improving the learning environment in September.
The ACSE 2019 Conference was another excellent event with our keynote by Michelle Craig and the Mistakes Novices Make Tales from the CS1 Trenches by Jacqueline Smith.
I decided to take a crack at the common mistakes or misconceptions I observed in my classroom this year.
Misconceptions
- statement execution order is not important
- understanding control flow – selection (if statements), loops, function/method invocation
- Correction – typically top to bottom or event driven, control flow is managed by the language elements (loops, stacks – function/method calls) or OO infrastructure
- understanding control flow – selection (if statements), loops, function/method invocation
- variables – data type and mutation is not important
- store as many items or any data type in a single variable
- Correction – data types are important to ensure proper semantics, complex data structures must be well designed and managed within algorithms
- store as many items or any data type in a single variable
- modularity – well defined interfaces are not important
- print is the same as return
- Correction – print is for display purposes and return defines the goal of the function/method
- availability of data structures and algorithms is not important
- Correction – data structures and algorithms have a well defined scope to improve code quality and improve reusability
- print is the same as return
- syntax vs semantics
- all of the elements of a statement are equivalent
- Correction – parts of a statement are reserved (part of the language) and some are user-defined
- all of the elements of a statement are equivalent