Mobile Programming with App Inventor
Prerequisites: Basics 4 R/G/B
The fifth course in the Basics roadmap represents a major leap for our Code Campers as they transition from the micro:bit and hardware sensors to mobile programming and more complex data types with App Inventor.
With the rapid proliferation of smartphones and growing dominance of mobile usage, mobile programming presents one of the most relatable and relevant domains in which our students will apply their programming knowledge and skills. In this course, Code Campers will learn to decompose a mobile application into its component parts - buttons, labels, images, functionality, etc.; design a user interface that conveys the look and feel of their imagination; and code the behaviour that will govern how the user interacts with the app and how the app responds.
It sounds simple enough but mobile programming, despite being the most engaging, is also the most demanding domain within the Basics roadmap because it requires higher degrees of abstraction using complex data types. Code Campers will need to understand components (a complex data type known as an object which bundles Properties together), properties (types of variables that are bundled in a component), procedures (named sequences of code that perform a specific task), event handlers (routines that deal with an event), lists (an ordered collection of items), for loops (iterations through a list), and scope (the extent of visibility of variables within a program). Each of these are integral concepts in mobile programming and App Inventor.
At the end of this course, Code Campers will be able to design a simple user interface and build apps such as a simple game, a texting app and a painting app.
“Coding” is synonymous with “programming”. It refers to the art of writing computer code, which are instructions that a computer can follow to solve problems. Practically every facet of technology that we encounter in our daily lives - from online banking systems to video games on our iPhone, from the GPS systems we rely on navigation to the security systems that protect our homes and offices, is created from code.
At Code Campus, we start with Scratch and AppInventor - drag-and-drop block-based languages developed at MIT over more than decade for the specific purpose of teaching kids how to code. Learning to code in Scratch is a little like learning how to ride a bike by first starting with a tricycle - a tricycle can get you to places but you are not likely to compete in triathlon on one. With Scratch, kids learn the basics of the thinking process behind using computers to solve problems but what they can build is largely limited to video games, music and electronic art boards that run off the Scratch platform. Regular programming languages we hear about like Python, Java and C++ have no such restrictions and can be used to build applications across any technical domain you can think of but comes at the cost of much greater complexity and are much more difficult to set up for the beginner. Scratch and AppInventor are educational tools that allow us to separate the thinking of computer science from the operational tedium of regular languages, allowing us to introduce kids to the subject at a much earlier age and increase their future aptitude for the discipline.