This project is a work to help introduce middle school students or beginning high school students to coding or computer programming. The projects here are based on my experience of teaching computer programming for many years to middle school and high school students. The different sections or units included here are my attempt to break the big area of computer programming into many smaller more manageable concepts. Each sections starts with a program that guides the student through creating an app using the concept introduced and the lets the student enhance the app. The student can then apply what they have learned to create new related apps.
Not only are coding concepts to create apps introduced but also the creation of Web pages using HTML and CSS, the collection data, analysis of data, and publishing the data using a subset of SQL. The introduction to programming of hardware using the BBC's Micro:bit is also introduced. This can open up many areas of innovation for the student as the world becomes more automated and controlled by software and hardware devices. This whole project is a work in progress that will be added to and updated.
App Lab also has a "Design" mode in which objects can be placed on the "phone" screen. Properties of the objects can be changed such as: size, position, color, text, and the ID of the object. In the "Code" mode, the program can use "events" to interact with the objects.
App Lab also has the ability to create an online database that can used to store and access data stored there by the app.
One of the best features of App Lab is it's ability to "publish" the app for others to use. Once an app has been published it can run on any phone, tablet, or computer as an HTML5 app. As a teacher I learned a long time ago that when students can "publish" their work for others rather that just doing work for the teacher then it has real value.
The ability to program hardware through software is a skill that can lead to innovation as the world becomes more automated. Raspberry PI's and Arduino's have found a lot of popularity in this area but I think the BBC's Micro:bit makes entry in this area much easier because there are no drivers or software to download. It can be programmed and then the "*.hex" file can be downloaded and copied to the micro:bit that shows up as a USB drive.
The Micro:bit has an programmable 25 red LED screen to help a student quickly get started output information to. It also has the following sensors: a compass, a thermometer, a light sensor, an accelerometer, and Bluetooth communications. The Micro:bit also has 3 general purpose input output (GPIO) connections that allow for adding of other sensors or output devices like LED light, speakers, or motors, etc.
Coding activities will allow students to "develop the skills of a computer scientist though the development of Computational Thinking Practices". (Code.org's, K-5 Fundamentals Curriculum Guide, page 2.)
Through out the activities included here, students will be introduced to the 5 structures involved in all coding: