avatar
Billy Micah

Programming Instructor

  • Nov 15, 2021
  • 5 min read

Progression & Learning Paths

Computer programming helps student develop skills in logical reasoning (the ability to make structured arguments) and problem solving (the process of finding solutions to complex issues). If the statement was made in a more decomposed manner - developing students' skills in making structured arguments while finding solutions to complex issues - makes the urgency stands out more and thus the reason many parents endeavour to have their children learn these skills at an early age.

An inescapable truth about becoming a good programmer is that one has to have mastery of the language they program in. However, since syntactical languages can get complicated, also due to findings as ones pointed out in research papers, many educators have turned to Scratch and App Inventor for introductory courses. These tools allow students to develop the skills referenced earlier, away from all the complexities that come with having to program in Syntax base programming languages.

Introduction To Programming


Scratch (an online and block-based programming language) can be used in making short stories, games and animations which are teaching areas for skills like creative thinking and systematic reasoning. It is also notable that the Object-Oriented Programming (A technique that allows programmers an elevated view of their programs in terms of individual objects rather than simply execution control - in procedural programming) skills attainable from scratch, are transferrable to syntax-based languages like Java and Python. In Scratch or App Inventor students think of their programs in terms of individual Sprites characterized by the functions (code blocks) placed in them or attached to them. The simplicity of these block-based programming languages makes the learning process easier for students.

TinkerCAD (an online based 3D modelling tool that allows block based programming use) is a fundamental tool in helping students develop their 3D design skills. Using tinkercad it's been noted that students sharpen their computational skills (Computational thinking skill is a skill associated with a handful other skills amongst which are mental rotation, mathematical, engineering, design, critical, algorithmic, creative, and spatial reasoning.) It is a free to use tool that allows students to be able to both learn and realise objects from the real world or ones they enliven in their imagination.

The algorithmic skills learned from Scratch, App Inventor, and TinkerCad are transferable to Java Processing and Python Turtle which are courses that use algorithms and mathematical concepts in making animations in language syntax.

Game Development


For Gaming, we use the Roblox game engine to help the student develop both their game development skills and their ability to both read and write the Lua Programming Language. Lua programming is a really easy to grasp programming language with simple syntax and is therefore a good first language in game development. The student would've already made some games with Scratch and App Inventor, thus, at this point and so the aim is to utilise the skills earned from those courses (computational, structural, mathematical, and algorithmic reasoning skills) in making Roblox games with Lua Language. Roblox is free to use and provides a social platform which is good for peer learning.

Web Development


Web Development is a really wide topic and can become a very challenging cognitive task. To have students benefit form web development courses it's important to have them use skills they already have and applying them to programming. Computational, mathematical, structural, algorithmic reasoning skill are just among the listful skills required for web development. Students will learn how to structure and organise content on the webpage and manipulating the content depending upon user events. Later on they'd move on to making animations and writing algorithms usable in making games on a canvas (still on the web page), then finally they'll interact with different frameworks advanced see how these can be used to speed up development. They'll also learn how to best write and structure their programs to allow for easy scaling and prevent cases where one would actually be creating a problem by writing hard-to-maintain programs.

Software Development


In teaching Syntax based (involving written, structured statements that heed rules of the programming language) programming languages, there has to be a careful balance between teaching the advanced concepts, which are Software or Application Development and helping students understand the syntax of the language used. Web and Software development skills along with being able to write a well-structured program are co-dependent and equally important. Java Processing and Python Turtle courses are structured in a way that allows students to learn the syntax at a friendly pace, while exercising their mathematical, algorithmic and computational reasoning skills learned from the preceding courses namely, Scratch App Inventor and TinkerCAD.

After a good foundation on syntactical programming, they get to proceed to Python 1 and through to Python 3, where the courses gradually increase their focus on the software programming skills. We start off by using pre-made programs (which they get to make also) to help students see how programs get structured, then later on they'll perform their own rule checking to exercise their critical and structural reasoning skills (which require a good understanding of the syntax) after which they can freely exercise their knowledge on the syntax and structural rules and principles in writing their own programs.

Airtificial Intelligence


AI classes utilise advanced mathematical concepts to a great extent. Linear Algebraic topics comprise the list and those implemented are discussed during the lessons. It's therefore demands a good grasp of the language to enable the student to navigate the class material and on the occasion where the mathematical concepts might take sometime to sink in, it is beneficial if the student can understand the syntactical implementation then reverse relate these to the concepts taught.


Comments From Readers

Your Views Please!

Your email address will not be published. Required fields are marked *
*
*
*