This is a guest blog by MIT Master Trainer Carly Lam
CS One Academy offers programs to familiarise primary school children with computer science and programming. Technology and computers is already woven so deeply and intricately into our society, there is no doubt that its capabilities will only increase as we continue to proceed forward in time, becoming more and more irreplaceable in our everyday lives. App Inventor was part of our App and Minecraft Mod Maker program which was offered during our July Holiday Program. We used App Inventor as a tool to focus on familiarising our students with these computational concepts:
Pattern recognition: the ability to observe and record similarities in an effort to break down a problem into smaller pieces, or to make predictions for the future.
Decomposition: the process of fragmenting a problem into smaller sections so that it is made easier to approach and resolve.
Abstraction: to identify what information is important and exclude the unnecessary detail in order to simplify a complex task for easier management.
Algorithms: a set of rules that serves as the instructions the computer uses in order to complete an assigned task.
Here are some of the learning objectives for our students:
An Event Handler is a program that commands a response to an execution of an event. App Inventor consists mostly of this type of algorithmic logic: an event occurs, and the computer must act accordingly. The computer cannot act independently - it is nothing without our students planning at work. It is our students that must take the task to program the computer upon themselves so that it can comprehend the logic of this game: to make a choice between rock, paper, and scissors, to register the human players choice, to display a victory screen when a round is won, and such. Through pattern recognition, students were able to calculate these kind of responses, and translate the method behind the game logically so that a non sentient computer can understand and execute the actions the way a human would be able to.
Variables are one of the fundamental concepts of programming. Variables are what stores information in a computer program. In an abstract concept, you can certainly imagine a program to be composed of many of these building blocks of data. Programmers manipulate variables as storage for data, for the assignment of data, and retrieval of said data, etc. At CS Academy, we teach students to utilise these building blocks accordingly: students learn to understand the concept of data, separate, and recall these data structures. In observing the role variables play in programming, students learnt about abstraction and algorithms.
Impulsivity is a trait often associated with children and teenagers - they can act without consideration of the consequences of their actions. The understanding and practice of planning ahead for the rock, paper, scissors game allow the students to recognise and acknowledge the consequences of their actions, and like players in a game of chess, they must think ahead to be able to respond accordingly to future events. Cause and Effect allows the students to further develop their abilities in pattern recognition and their understanding of algorithms.
Once again, neither programming nor chess acts on improvisation. There is a procedure, a method to be followed. Just as chess players plan out their next moves, programmers need to decide upfront what they want their program to accomplish. Our students were taught to tackle the problem using decomposition: fragmenting it into smaller pieces so it is made easier to handle. During the planning process, they had to ask themselves a list of questions:
An event handler with the rock button
The teaching of strategic planning is to encourage students task management skills: being able to efficiently and successfully plan out their code. Should they delve further into the world of computing in their future, the skills of fragmentation and abstraction will, no doubt, be a valuable asset in their understanding.
By creating a pattern list of the opponents moves, player can memorise the A.Is moves in a pattern and are able to win after playing for a number of times. The students were taught to observe and follow the patterns of programming. Furthermore, by implementing a list and manipulating it in the code to instruct the A.I to navigate the choice sequence in the list, students learnt about iteration with a list.