Callysto.ca Banner

Module 2 Unit 5 - What is Programming?#

Unit Learning Objectives#

By the end of this unit, you will be able to

  • Learn what a programming language is and what it allows you to do

  • Learn about text-based programming languages

  • Articulate why you would want to learn Python

laptop

What is Programming and Why Would I Want to Learn it?#

A programming language is a series of computer interpretable instructions that are written in a language that a computer can understand and execute once it is compiled to native machine code, which is a limited set of instructions that allows a computer to carry out instructions on physical hardware (e.g. circuits). Low-level languages are thought of as closer to native machine code and are not easily read or interpreted by humans (E.g. MIPS Assembly, x86, and ARM). Higher level languages are more human readable and closer to natural languages and provide more efficient methods of expressing the instructions (E.g. Java, C++, JavaScript, and Python). Programming languages, especially high-level languages, allow us (humans/programmers) to interface with the computer more easily than working with native machine code.

Looking back at our Computational Thinking module, an example of a program can be the recipe to bake a cake. When the computer follows the instructions in a program, it is said to execute the program. As you can imagine, although computational thinking does not necessarily involve computer programming to solve problems, the logic-driven, algorithmic approach to CT is inspired by computer programming language syntax and elements.

Why (in the world) Would I Want to Learn a Higher Level Programming Language like Python?#

Before diving into the world of the Python programming language, most teachers we’ve spoken to are familiar with variants of block-based visual programming languages (or block coding) such as Scratch, that can perform many of the same basic functions as text-based programming languages (like Python) but using a highly visual drag-and-drop user interface. A key thing to know about block-based visual programming languages is that they are for teaching only and are not used in industry. Let’s take a quick look at some popular block based visual programming languages to help understand where teachers are coming from.

Scratch#

Scratch

Scratch is a popular block-based programming language that is used primarily as a learning language to introduce its target audience to programming basics and game design. The Scratch project was first proposed in 2003 by the MIT Media Lab and UCLA under the direction of principal investigators Mitchel Resnick, Yasmin Kafai, and John Maeda. Since then Scratch has remained a popular programming language among educators and children.

Blocky#

Blocky

Similar to Scratch, Blockly is a block-based visual programming language. Introduced to the public in 2012, Blockly has a similar target audience as Scratch and is also a learning language to help users understand the basics of programming.

As mentioned, many educators are familiar with Scratch or Blockly but one common refrain we’ve heard is “What comes next after block coding?” In particular, by grades 5-7 some students have tried and become bored with these block-based visual programming languages. At Callysto, we’ve found that students as young as Grade 4 or 5 can begin to become comfortable with text-based programming languages like Python. Callysto and Jupyter Notebooks open the door for younger students to begin exploring and challenging themselves earlier with text-based programming languages.

Ok, now back to our original question, “Why Python?”#

Python is becoming the most popular overall programming language in the world. So having your students start exploring with Python at a younger age will develop a skill set that is highly sought after in the current labour market. Some of the reasons that Python has become so popular are that the Python programming language is

-human readable, -has a simple syntax and -is flexible. To elaborate

Python is relatively simple with respect to syntax, where syntax refers to the style rules that govern the programming language so that the commands can be executed. The Python syntax is more user-friendly to read, interpret and understand than other high-level programming languages.

Small Group

Python’s flexibility stems from the large, active, open-source development user community that has created large repositories of computing libraries that allow you to accomplish many things using Python, such as math (NumPy), scientific and technical computing (SciPy) and data visualization (Matplotlib, Plotly, and more).

As well, Python is not only used by data scientists and machine learning engineers, it is used by many others in the technology industry including web and desktop developers and system administrators.

Activity#

For this activity you will be using Blockly on an external website. It may be helpful to have these instructions on the screen beside the Blockly site or on another device.

Callysto.ca License