← All Journeys

WA Computer Science ATAR Year 11 — Modular Programming

Structuring programs into reusable parts.

Modules (73)

1 Decomposing a problem into sub-problems 2 Structure diagram 3 Drawing a structure diagram from a scenario 4 Why decomposition helps: team work and reuse 5 Changing code in one place 6 Subroutines make programs easier to test and read 7 Procedures versus functions 8 define: defining a function 9 Function header in Software Development pseudocode 10 Calling a function 11 return keyword 12 Functions – Defining 13 Functions calling other functions 14 Program structure with a main() function 15 Functions – Parameters 16 Parameters versus arguments 17 Functions – Default Arguments 18 Functions – Return Values 19 Common function mistakes: print instead of return 20 Tuples – Practical Use 21 Functions that return True or False (Python) 22 Passing a list into a function 23 Functions that change a list or return a new one 24 Side effects and pure functions 25 Functions – Scope 26 Why local variables are preferred 27 Changing a global variable with the global keyword 28 Constants 29 NameError: using a name Python does not know 30 Imports 31 Creating Modules (.py files to import) 32 What a library is: standard vs third-party 33 The math module 34 Refactoring code to improve it 35 Purposes of naming conventions 36 Camel casing 37 Snake casing 38 Hungarian notation for variables 39 Applying a naming convention to code structures 40 Comments 41 Purposes of internal documentation: code maintenance 42 Comments that explain and justify data and code structures 43 Docstrings for functions and classes 44 Header comments for code maintenance 45 Stubs: placeholder code and comments for future development 46 Readability improvements in code 47 Maintainability improvements in code 48 Choosing a range of test data 49 Working out the expected output before you run the code 50 Testing one module in isolation 51 Test table layout 52 Recording actual results and a pass or fail verdict 53 Testing a Python program with test cases 54 Testing a function with assert 55 Storing test cases as a list of tuples 56 Looping through test cases and printing PASS or FAIL 57 Testing that invalid input is rejected 58 Writing test cases before the code 59 Test coverage of branches and loops 60 Runtime errors in Python 61 Reading an error message and traceback 62 Runtime error: index out of range 63 Logic errors in Python 64 Debugging a program with print() and trace tables 65 Setting a breakpoint 66 Stepping through code and watching variables 67 Retesting everything after a fix 68 Modifying an existing program 69 Writing an IPO chart for a program 70 Writing pseudocode from an IPO chart 71 Data dictionary 72 Internal versus external program documentation 73 Writing a test report conclusion

Smaller journeys, one per content description

The same modules, split up so a class can take just the content description it's working on.

6
Year 11 Computer Science ATAR: Decomposition and modular design Students learn to break a problem into sub-problems, show them in a structure diagram, and see why modular programs are easier to share, change, test and read.
8
Year 11 Computer Science ATAR: Procedures and functions Students learn the difference between procedures and functions, how to define and call them in pseudocode and Python, and how to build programs from helper functions and a main().
10
Year 11 Computer Science ATAR: Parameters and return values Students learn how parameters, arguments and return values move data into and out of functions, including lists, multiple return values, and side effects versus pure functions.
10
Year 11 Computer Science ATAR: Scope, constants and reusable modules Students learn how local and global scope and constants work, and how to reuse code through imports, their own modules, libraries and refactoring.
13
Year 11 Computer Science ATAR: Good coding practice and internal documentation Students learn naming conventions, comments, docstrings, header comments and stubs, and how these make code more readable and maintainable.
12
Year 11 Computer Science ATAR: Testing modules Students learn to choose test data, work out expected results, build test tables and automated tests, and check that their tests cover the code.
9
Year 11 Computer Science ATAR: Debugging and modifying programs Students learn to read error messages and tracebacks, tell runtime errors from logic errors, use print statements, trace tables, breakpoints and stepping to find bugs, and retest after fixes.
5
Year 11 Computer Science ATAR: Documenting a program Students learn to document a program with IPO charts, pseudocode, data dictionaries, internal and external documentation, and a test report.

Printables for this journey

Every module above has its own free printable worksheet with an answer key. These crosswords and word searches cover the same terms:

✎
Python Crossword: Getting Started (Modules 1–10) 10 clues · print() function, input() function, Comments, Variables and more
✎
Python Crossword: Control Flow (Modules 11–20) 10 clues · Type Conversion, Comparison Operators, Boolean Logic, If Statements and more
✎
Python Crossword: Functions (Modules 21–30) 10 clues · range(), Error Handling – try/except basics, break and continue, Functions – Defining and more
✎
Python Crossword: Advanced (Modules 41–50) 10 clues · Sets – Operations, Nested Lists, Lists + Dictionaries, File Operations – Open and more
✎
Python Crossword: Advanced (Modules 51–63) 10 clues · OOP – Methods, OOP – String Representation (__str__), OOP – Practical Application, OOP – Class Variables vs Instance Variables and more
🔎
Python Word Search: Getting Started and Control Flow (Modules 1–20) 22 words to find · print() function, input() function, Comments, Variables and more
🔎
Python Word Search: Functions and Data Structures (Modules 21–40) 20 words to find · range(), Error Handling – try/except basics, break and continue, Functions – Defining and more
🔎
Python Word Search: Advanced (Modules 41–63) 20 words to find · Sets – Operations, Nested Lists, Lists + Dictionaries, File Operations – Open and more
✎
VCE Pseudocode Crossword: if-then-else block to Reading and tracing complex pseudocode (Modules 11–28) 10 clues · if-then-else block, else if: chained selection, for loop: for i from 1 to n, Nested for loops and more
🔎
VCE Pseudocode Word Search: What is Pseudocode to Reading and tracing complex pseudocode (Modules 1–28) 20 words to find · What is Pseudocode, Pseudocode Writing Conventions, Variable Assignment: x <- value, input keyword and more
✎
VCE Software Development U3O1 Crossword: Requirements and design tools to Naming conventions and internal documentation (Modules 10–47) 10 clues · Data dictionary, Writing a data dictionary entry, Designing classes with a class diagram, Object descriptions and more
✎
VCE Software Development U3O1 Crossword: Naming conventions and internal documentation and Pseudocode (Modules 48–71) 10 clues · Camel casing, Snake casing, Hungarian notation for variables, Hungarian notation for interface controls and more
✎
VCE Software Development U3O1 Crossword: Pseudocode to Data structures (Modules 72–96) 10 clues · Turning pseudocode into Python, Changing a global variable with the global keyword, Functions calling other functions, Program structure with a main() function and more
✎
VCE Software Development U3O1 Crossword: Searching and sorting algorithms and Errors and debugging (Modules 156–166) 10 clues · Comparing searching and sorting algorithms, Applying an algorithm to a task, Logic errors in Python, Runtime errors in Python and more
✎
VCE Software Development U3O1 Crossword: Errors and debugging and Testing modules (Modules 168–177) 10 clues · Debugging a program with print() and trace tables, Setting a breakpoint, Stepping through code and watching variables, Tracing nested loops and more
✎
VCE Software Development U3O1 Crossword: Testing modules and Artificial intelligence in programming (Modules 178–193) 10 clues · Testing one module in isolation, Modifying an existing program, Emerging trend: AI code generation tools, Writing a prompt to generate code and more
🔎
VCE Software Development U3O1 Word Search: Requirements and design tools to Pseudocode (Modules 10–71) 21 words to find · Data dictionary, Writing a data dictionary entry, Designing classes with a class diagram, Object descriptions and more
🔎
VCE Software Development U3O1 Word Search: Pseudocode to Data sources and files (Modules 72–113) 21 words to find · Turning pseudocode into Python, Changing a global variable with the global keyword, Functions calling other functions, Program structure with a main() function and more
🔎
VCE Software Development U3O1 Word Search: Object-oriented programming to Errors and debugging (Modules 142–166) 20 words to find · OOP principle: inheritance, Calling the parent __init__ with super(), Linear search in Python, Binary search in Python and more
🔎
VCE Software Development U3O1 Word Search: Errors and debugging to Artificial intelligence in programming (Modules 168–193) 20 words to find · Debugging a program with print() and trace tables, Setting a breakpoint, Stepping through code and watching variables, Tracing nested loops and more
✎
VCE Software Development U3O2 Crossword: Ideation and evaluating design ideas to User experience and software design (Modules 86–109) 10 clues · Mood boards, Design criteria for an interface, Comparing alternative designs with a decision matrix, Efficiency of a solution and more
🔎
VCE Software Development U3O2 Word Search: Ideation and evaluating design ideas to User interface design principles (Modules 86–119) 20 words to find · Mood boards, Design criteria for an interface, Comparing alternative designs with a decision matrix, Efficiency of a solution and more
✎
VCE Software Development U4O1 Crossword: Efficient and effective solutions and user-centred design to Classes, objects and access modifiers (Modules 3–79) 10 clues · User-centred design, Order of operations with brackets in Python, Choosing data types for input, storage and output, Procedures versus functions and more
✎
VCE Software Development U4O1 Crossword: Classes, objects and access modifiers to Code repositories, APIs, libraries and AI assistants (Modules 82–114) 10 clues · Choosing access modifiers for a class, Readability improvements in code, Built-in functions sum(), min() and max(), List comprehensions and more
✎
VCE Software Development U4O1 Crossword: Code repositories, APIs, libraries and AI assistants (Modules 115–124) 10 clues · Branches and merging, What a library is: standard vs third-party, Random numbers with import random, The math module and more
🔎
VCE Software Development U4O1 Word Search: Efficient and effective solutions and user-centred design to Code repositories, APIs, libraries and AI assistants (Modules 3–114) 20 words to find · User-centred design, Order of operations with brackets in Python, Choosing data types for input, storage and output, Procedures versus functions and more
🔎
VCE Software Development U4O1 Word Search: Code repositories, APIs, libraries and AI assistants to Beta testing (Modules 115–171) 22 words to find · Branches and merging, What a library is: standard vs third-party, Random numbers with import random, The math module and more
✎
Years 7–8 Creating Digital Solutions Crossword: Defining and decomposing problems and Designing and tracing algorithms (Modules 3–47) 10 clues · Interviewing a user, Decomposing a problem into sub-problems, Decomposition diagrams, Non-functional requirements and more
🔎
Years 7–8 Creating Digital Solutions Word Search: Defining and decomposing problems to Evaluating digital solutions (Modules 3–125) 21 words to find · Interviewing a user, Decomposing a problem into sub-problems, Decomposition diagrams, Non-functional requirements and more
✎
VCE Applied Computing U1O2 Crossword: Requirements and design tools to Naming conventions and internal documentation (Modules 8–88) 10 clues · Writing an IPO chart for a program, Accessing record fields by index, Abstraction in OOP, Encapsulation in OOP and more
🔎
VCE Applied Computing U1O2 Word Search: Requirements and design tools to Legal requirements and emerging trends (Modules 8–124) 21 words to find · Writing an IPO chart for a program, Accessing record fields by index, Abstraction in OOP, Encapsulation in OOP and more
✎
IGCSE Computer Science Paper 2 Crossword: 7b Decomposition and Sub-systems (Modules 94–106) 10 clues · Sub-system, Sub-systems made of further sub-systems, Component parts of a problem: inputs, Component parts of a problem: processes and more
✎
IGCSE Computer Science Paper 2 Crossword: 7b Decomposition and Sub-systems (Modules 107–118) 10 clues · Program development life cycle, The analysis stage: problem and requirements, Abstraction (7b), Deciding which details to keep and which to ignore and more
✎
IGCSE Computer Science Paper 2 Crossword: 8.1c Procedures and Functions (Modules 419–428) 10 clues · Common mistakes when calling procedures and functions, Choosing a procedure or a function for a task, Local variables, Global variables and more
✎
IGCSE Computer Science Paper 2 Crossword: 8.1c Procedures and Functions and 8.2 Arrays (Modules 439–448) 10 clues · Changing code in one place, Subroutines make programs easier to test and read, Explaining how subroutines make a program easier to maintain, Writing exam answers about procedures and functions and more
🔎
IGCSE Computer Science Paper 2 Word Search: 7b Decomposition and Sub-systems (Modules 94–118) 21 words to find · Sub-system, Sub-systems made of further sub-systems, Component parts of a problem: inputs, Component parts of a problem: processes and more
🔎
IGCSE Computer Science Paper 2 Word Search: 8.1c Procedures and Functions (Modules 419–438) 21 words to find · Common mistakes when calling procedures and functions, Choosing a procedure or a function for a task, Local variables, Global variables and more
🔎
IGCSE Computer Science Paper 2 Word Search: 8.1c Procedures and Functions and 8.2 Arrays (Modules 439–458) 20 words to find · Changing code in one place, Subroutines make programs easier to test and read, Explaining how subroutines make a program easier to maintain, Writing exam answers about procedures and functions and more
✎
ACARA Digital Technologies Years 7–8 Crossword: Tracing and Debugging Algorithms and Programming with Control Structures and Functions (Python) (Modules 482–519) 10 clues · Writing a bug report from a trace, Scratch scripts and typed Python side by side, Scratch say block as print(), Scratch variable blocks as Python assignment and more
🔎
ACARA Digital Technologies Years 7–8 Word Search: Algorithms, Flowcharts and Pseudocode to Programming with Control Structures and Functions (Python) (Modules 420–519) 20 words to find · Tracing a decision inside a loop with a trace table, Adding a condition column to a trace table, Tracing a decision inside a loop, Completing a flowchart prediction table and more
✎
ACARA Digital Technologies Years 9–10 Crossword: Algorithms with Logical Operators and Testing and Validating Programs (Modules 536–590) 10 clues · Choosing test data for compound conditions, What it means to validate an algorithm or program, Working out the expected output before you run the code, Edge cases with lists and strings and more
✎
ACARA Digital Technologies Years 9–10 Crossword: Testing and Validating Programs (Modules 591–622) 10 clues · Writing a test plan from requirements, Writing test cases before the code, Testing a program that uses input(), Storing test cases as a list of tuples and more
✎
ACARA Digital Technologies Years 9–10 Crossword: Modular and Object-Oriented Programming (Python) (Modules 629–680) 10 clues · Functions that return True or False (Python), Passing a list into a function, Functions that change a list or return a new one, Building and returning a list from a function and more
🔎
ACARA Digital Technologies Years 9–10 Word Search: Algorithms with Logical Operators and Testing and Validating Programs (Modules 536–622) 20 words to find · Choosing test data for compound conditions, What it means to validate an algorithm or program, Working out the expected output before you run the code, Edge cases with lists and strings and more
🔎
ACARA Digital Technologies Years 9–10 Word Search: Modular and Object-Oriented Programming (Python) and Modular and Object-Oriented Programming (JavaScript) (Modules 629–707) 21 words to find · Functions that return True or False (Python), Passing a list into a function, Functions that change a list or return a new one, Building and returning a list from a function and more
✎
QCE Digital Solutions Unit 1 Crossword: Algorithms and Programming Techniques and Programmed Solutions (Modules 158–380) 10 clues · input keyword, if-then-else block, Repeat-Until loop, define: defining a function and more
🔎
QCE Digital Solutions Unit 1 Word Search: User Experiences and Interfaces to Programmed Solutions (Modules 82–380) 20 words to find · Recording pitfalls and useful solutions in an existing interface, Known user, User characteristics, Age appropriateness of information and more
✎
Crossword: Pseudocode and Algorithm Design to Standard Algorithms (Modules 100–314) 10 clues · User and technical documentation, Length check with len(), Format check with string methods, List check with the in operator and more
🔎
Word Search: Pseudocode and Algorithm Design to Network Communications (Modules 100–470) 20 words to find · User and technical documentation, Length check with len(), Format check with string methods, List check with the in operator and more

Frequently Asked Questions

Are these worksheets free?

Yes — every worksheet and its answer key is free to view, download, and print, with no account required to access any individual module.

Do I need an account?

No account is needed to view or print a worksheet. A free teacher account adds extras like assigning modules to a class and tracking progress automatically — it takes under three minutes to set up and doesn't need a credit card.

What year level is this for?

This curriculum is aligned to the Australian Curriculum (ACARA) and Victorian Curriculum, spanning roughly Years 3 to 10 — from first sequencing and variables through to object-oriented programming and advanced data structures. Start wherever matches your class's current level; each module builds on the last.

Can I print them?

Yes — every module has a one-click Print Worksheet button that generates a printable page with the practice questions and a full answer key.

Is this aligned to a curriculum?

Yes — the module sequence is mapped to the Australian Curriculum (ACARA) and Victorian Curriculum, and a class's progress is reported back against those curriculum bands (e.g. ACARA Years 5–6 sequencing and iteration, Years 7–8 functions and data structures), not just a generic difficulty scale.

Can students use this without a teacher?

Yes — students can start any module and practice directly, no class or account required. Joining a teacher's class with a class code adds progress tracking, class badges, and live Sprints, but isn't needed to work through the worksheets or modules solo.

Do I need to know WA Computer Science ATAR Unit 1 myself to teach this?

No — every module comes with a full worked answer key, and Cloodit tracks who's stuck automatically, so you don't need to solve each exercise yourself before assigning it or be able to debug a student's work line by line.

Add to class →
For Teachers

Add this journey to your class and track every student in real time.

Create a free teacher account →

No credit card. No setup fee. Make a class and invite students in under three minutes.

For Students

Start this journey on Cloodit — track progress, earn badges, and play live sprints with your class.

Start Learning Free →

Have a class code?