General-purpose programming
What is it?
Programming is the process that makes it possible to create computer software, applications and websites. Currently, computers are unable to think for themselves, therefore they require users to give them sets of ordered instructions to know what to do. This is referred to as 'code'. Most of the resources you use on the computer and internet are made with code. Programming is a core element of the Digital Technologies curriculum because it helps students develop essential skills such as problem-solving, logic and critical thinking.
General-purpose programming, also known as text-based programming, is one of the coding languages prescribed in the Australian Curriculum: Digital Technologies for secondary schools. This type of language is used to create programs by typing letters, numbers and symbols and requires programmers to use formal syntax.
Object-oriented programming is the second coding language prescribed in the Australian Curriculum: Digital Technologies. In this type of language, users define not only the data type within a data structure, but also the types of operations that can be applied to the data structure.
Australian Curriculum definition
General-purpose programming languages
Programming languages in common use designed to solve a wide range of problems. They include procedural, functional and object-oriented programming languages, including scripting and/or dynamically typed languages. Examples of general-purpose programming languages include C#, C++, Java, JavaScript, Python, Ruby and Visual Basic. They do not include declarative programming languages such as Prolog or structured query language (SQL), or languages designed for solving domain-specific problems or for pedagogical reasons.
Object-oriented programming language (OOP)
A programming language that supports the object-oriented programming paradigm. In object-oriented programming, objects represent a combination of data (the attributes of an object) and actions that can be performed on or with those data (the methods of the object). An example might be a declaration of a 'car', which has attributes that describe its physical nature (such as the number of doors, its colour, the size of the engine) and the actions it can perform (such as accelerating, braking and turning).
The valid attributes and methods of an object are defined by its class, and these attributes and methods can be inherited from the definition of another class. Examples of OOP languages include C++, Eiffel, Java, Python and Scala.
CS Unplugged: Field guide: Programming languages
This is an online resource for teaching computer science to students. This section focuses on programming languages.
This section focuses on complexity and tractability.
CS Unplugged: Field guide: Coding – Introduction
This section is an introduction to coding.
CS Unplugged: Field guide: Coding – Error control
This section focuses on error control in coding.
CS Unplugged: Field guide: Coding – Encryption
This section focuses on encryption in coding.
CS Unplugged: Field guide: Coding – Compression
This section focuses on compression in coding.
This article is devoted to demystifying code. It explains what coding is, including programming and programming languages. It provides relevant examples.
This video helps learners and educators to understand the significance of computer programming literacy in a technological world.
Explore a wide range of resources, including videos, interactives, learning guides and lesson plans for secondary computing courses in the UK.
Grok provides online interactive programming courses for individuals in Python, HTML, CSS and Blockly at all levels.
Quickstart: A CPD toolkit for secondary teachers
Quickstart is a continuing professional development (CPD) resource that provides the essential tools to develop a course. It helps secondary teachers figure out how to teach a creative and innovative computing curriculum underpinned by computational thinking.
Why basic coding should be a mandatory class in junior high
This article argues that teaching basic coding in secondary schools is a must.
A-Z Handbook on Teaching Introductory Programming
This book viewable online using the 'look inside' feature or purchased in hard copy provides a comprehensive guide to programming for all levels.
The Queensland Department of Education partnered with Channel 10 to deliver coding@home TV for primary and secondary students. Episodes enable students to engage in real-world coding problems and solutions, and connect with industry partners.
Computer Science For Fun (CS4FN)
Read articles about computational thinking and computing science.
This lesson sequence offers approaches to teaching object-oriented principles using text-based programming. It attempts to address the problem that many programming languages are too complex and their environments too confusing for many students.
This lesson sequence intentionally uses a visual-based programming tool to introduce designing and validating algorithms. Those students who complete this task can move to code the result in any text-based language with which they are familiar.
This sequence provides a gentle introduction to the skill of decomposition by having students develop discrete modules that together serve a single need: a maths teacher asks for a program that can be used to demonstrate aspects of maths. This sequence can be used in conjunction with 'Comparing and selecting appropriate algorithms'.
In this lesson sequence students write a simple suite of programs that can be used to facilitate an SRC election though the collection and processing of data. It assumes that students have been introduced to Python programming language.
In this project, students program the fun and challenging game of Sudoku using Python programming language.
This is a collection of mathematical problems to solve using programmatic techniques.
In this project, students build a battleship-playing program using Python.
Python is a free programming language. This webpage includes resources for learning to program with Python.
Tynker is an online platform designed to teach students how to code using JavaScript or Python by creating games and stories.
This website provides tools and materials for teaching and learning computational thinking, problem-solving, and computer programming across secondary year levels.
Khan Academy: Computer programming
Learn how to program using JavaScript and Processing JS, SQL, or how to create webpages with HTML and CSS.
Code Monkey is a fun and educational game environment where students learn to code in a real programming language, no previous experience needed.
Python to support the Digital Technologies curriculum
This resource includes a link to download the Python programming software and another link to a free online course by Codecademy to learn how to program in Python.
Greenfoot uses a simple interface to teach object orientation using Java. Students create 'actors' that live in 'worlds' to build games, simulations and other graphical programs.
This site provides a range of exercises to practise coding and to build coding confidence in Java and Python.
Improve or advance skills with year-round Online Private Lessons, spring and summer Virtual Tech Camps and Academies, and autumn and winter semesters.
Swift Playgrounds is an app for iPad that helps students learn and explore coding in Swift, the same powerful language used to create professional apps.
Naracoorte High School: Programming interactive music
Teacher Tony Hill explains how he implemented programming interactive music in his Year 8 class.
Using a SPRK Sphero for programming, robotics, and maths for students.
Khan Academy: Khan Academy: Meet the professionals
Short case studies of professionals in computing science who explain how they use their computer science and programming skills in their work.
AISSA Humanoid Robot Research Project
Thomas and Pink are two humanoid robots that are making programming and robotics exciting and intellectually stimulating learning frontiers for students in Independent schools in South Australia.