Available courses

Welcome to the unit CITS1401!

Computational Thinking with Python aims to provide students with problem solving and programming skills in Python programming language. 

Welcome to the unit CITS2401

This unit, Computer Analysis and Visualisation, aims at building (1) programming skills and (2) transferable skills for analysing and visualising complex numerical data using Python.

Secure coding processes and techniques are critical to ensuring that software systems can protect the confidentiality, integrity and availability of stakeholders' data. This unit covers secure coding topics including memory safety, input validation, race conditions, and development best practices. Most of the unit content is available from the unit website at https://cits3007.github.io.


This unit reinforces key concepts from CITS2200 Data Structures and Algorithms, and extends them to consider algorithms in the context of autonomous programs, or agents. We introduce ideas such as decision making, goal-directed behaviour, heuristic search, action selection, performance (self-evaluation), expected return and learning. These concepts are explored in the context of artificial intelligence or 'intelligent agents'.

Welcome to the unit CITX1401

Computational Thinking with Python aims to provide students with problem solving and programming skills in Python programming language. 

Learn how to program using Python - Free to all UWA students!

Please note, this is NOT an official unit (i.e., not credited), but carefully curated learning materials to learn programming in Python. 

You will find materials related to basic programming concepts and skills, as well as more advanced programming content (as they become available).