Digital Solutions 2025 Godot Textbook
This is an attempt to create a digital textbook based on the QCAA Digital Solutions 2025 Syllabus.
It will mainly focus on using Godot to explore the Interactive Media context.
- Introduction
- Unit 1: Creating With Code
- Topic 1: Understanding Digital Problems
- Topic 2: User Experiences and Interfaces
- Topic 3: Algorithms and Programming Techniques
- Topic 4: Programmed Solutions
- Formative Internal Assessment 1: Technical Proposal (25%)
- Formative Internal Assessment 2: Digital Solution (25%)
- Unit 2: Application and Data Solutions
- Topic 1: Data-driven problems and solution requirements
- Topic 2: Data and Programming Techniques
- Topic 3: Prototype Data Solutions
- Formative Internal Assessment 3: Digital Solution (25%)
- Unit 3: Digital Innovation
- Topic 1: Interactions Between Users, Data and Digital Systems
- Topic 2: Real-world Problems and Solution Requirements
- Topic 3: Innovative Digital Solutions
- Unit 4: Digital Impacts
- Topic 1: Digital methods for exchanging data
- Topic 2: Complex Digital Data Exchange Problems and Solution Requirements
- Topic 3: Prototype Digital Data Exchanges
- Assessment Guide
- Internal Assessments Compared
- Password DB Example Task
- Stimulus
- Explore Mind Maps
- Constraints and Limitations
- Success Criteria
- Introduction (Problem Description & Solution)
- Existing Solution(s) Analysis
- Data Source Analysis
- Data Solution
- User Interface Design
- User Interface + Data & SQL
- Security
- Usability Principles
- Pseudocode
- Code
- Final Product
- Prototype (Low Fidelity)
- Testing, Feedback & Evaluation
- Bibliography
- Password DB Example (Combined)
- Resources
Introduction
These are the main resources that will be used for this course:
Software List:
- Godot: https://godotengine.org/download/windows/
- Godot SQLite: https://github.com/2shady4u/godot-sqlite
- Draw.io: https://github.com/jgraph/drawio-desktop/releases
- SQLiteStudio: https://sqlitestudio.pl/
- Flowgarithm: http://www.flowgorithm.org/
- Learn GDScript: https://github.com/GDQuest/learn-gdscript/releases
Unit 1: Creating With Code
Unit Objectives
- Recognise and describe programming features and useability principles.
- Symbolise and explain information, ideas and interrelationships related to digital problems.
- Analyse problems and information related to a selected technology context.
- Determine user experience and programming requirements, and success criteria of a digital problem.
- Synthesise information and ideas to develop possible prototype digital solutions.
- Generate user interface and programmed components of the prototype digital solution.
- Evaluate components and solutions against criteria to make refinements and justified recommendations, and evaluate impacts.
- Make decisions about and use mode-appropriate features, language and conventions for particular purposes and contexts.
Topic 1: Understanding Digital Problems
- Understand methods of breaking down problems into parts using computational thinking and thinking tools, e.g. mind maps.
Decomposition Example
Mind Map Example
Videos
Software
- Mindmap Maker: https://app.mindmapmaker.org/
- Draw.io: https://github.com/jgraph/drawio-desktop/releases
Resources
- Understand and describe personal, social and economic impacts.
- Analyse problems to identify
- the human need, want or opportunity that requires a new or re-imagined digital solution
- essential elements, components and features of problems in Digital Solutions
- where and how digital technologies are used to solve problems to meet personal, societal and organisational needs, e.g. through search engines, robotics, mobile phone applications, automobile control systems, wearable devices, and the use of smart objects in the Internet of Things.
Videos
Resources
- https://www.futurelearn.com/info/courses/measuring-entrepreneurial-impact/0/steps/55997
- Fast Track Impact Planning Template: https://www.fasttrackimpact.com/post/2019/03/18/research-impact-planning
Impact goal | Relevant parties | Activities | Impact indicators | Impact risks | Risk mitigation |
Organisational comments
|
Describe the benefit that will be delivered | Name of organisation(s), group(s) or individual(s) who will benefit from these impacts, who may be able to help us to deliver impacts or who are interested in these impacts for other reasons (see your 3i analysis) | Identify activities that could enable these parties to get the benefits described in the impact goal, or enable them to deliver these benefits for others | What would success look like, and how would you capture this for communication to others? Identify indicators that you could measure (either qualitatively or quantitatively) to demonstrate that your impact goal(s) have been achieved | Identify risks that could prevent impacts from being achieved and/or that could lead to negative unintentional consequences | Explain how the identified risks can be mitigated | Who will be responsible for delivering the impact goal? Identify any other organisational needs e.g. funding, training or other resources that may needed, and proposed initial actions and timings |
Articulate your goal as specifically as possible. This can include goals of other organisations whose impacts we want to help achieve | Write the name(s) here | Write the activities here | List relevant indicators and means of measurement here | List risks, explaining the nature and magnitude of each risk | Provide risk mitigation narrative here | List anything else necessary to achieve the impact here |
- Explore existing solutions to similar problems, e.g. existing applications, games or websites.
Videos
Resources
- Explore emerging technologies in relation to problems, e.g. machine learning, deep learning, neural networks, natural language processing.
Videos
- Analyse a given problem to identify
- the scope of the problem
- constraints and limitations of the environment
- the requirements of the solution
- the user perspective and user-experience requirements
- technical issues of the problem that influence the user-interface requirements
- missing, required or unnecessary facts or information
- success criteria to evaluate the personal, social and economic impacts of the solution.
Videos
Resources
- https://www.zaycev.studio/example-ux-review
- https://bootcamp.uxdesign.cc/improving-ux-on-an-existing-website-6d90723a5bd
- https://www.geeksforgeeks.org/system-design-tutorial/
- https://www.geeksforgeeks.org/how-to-set-product-goals-initiatives-a-complete-guide-for-product-managers/
- Evaluate information and ideas.
Collect evidence from testing for objective criteria and user surveys for subjective criteria. The criteria should be stated at the start of the project.
Use this evidence to justify how well you have met the criteria then recommend how they could be improved.
Videos
Resources
- Communicate using
- digital technologies–specific language
- language conventions, textual features, such as annotations, paragraphs and sentences, and referencing conventions to convey information to particular audiences about digital solutions
- sketches or diagrams to present information and ideas about the problem and programmed digital solutions
- the modes of visual, written and spoken communication to present data and information about digital solutions.
Language Conventions
- Annotations
- Paragraphs
- Referencing (Generally APA)
- Sketches or Diagrams
- Correct way to present information.
Checklist
- General Components Reviewed
- Title
- Headings
- Capital Letters
- Spelling
- Punctuation
- Images have captions
- Citations/References and Bibliography
- Specific Areas
- Existing Solution
- UI Design
- Psueocode (Algorithms)
- Requirements
- Criteria
- Evaluation
Topic 2: User Experiences and Interfaces
- Recognise and describe
- the meaning and importance of user experience
- useability principles including accessibility, effectiveness, safety, utility and learnability.
Videos
See resource: Useability & Visual Communication
- Explore existing user interfaces to
- identify pitfalls and useful solutions
- determine how user characteristics influence the user-interface requirements and user experience for problems and solutions in relation to the useability principles.
Resources
- Explore and use the elements and principles of visual communication
- elements are limited to space, line, colour, shape, texture, tone, form, proportion and scale
- principles are limited to balance, contrast, proximity, harmony, alignment, repetition and hierarchy.
See resource: Useability & Visual Communication
Resources
- https://uxplanet.org/ux-ui-case-study-redesigning-a-public-transportation-app-for-a-large-touristic-city-932a2157fa21
- http://uipatterns.io/
- https://ui-patterns.com/
- Symbolise ideas for a user interface using sketches, diagrams, schematic diagrams or mock-ups.
- Generate user interfaces by investigating and applying useability principles.
Videos
Software
- Evaluate and make recommendations about user interfaces based on useability principles
Resources
Topic 3: Algorithms and Programming Techniques
- Recognise and describe programming syntax and rules.
- Understand that simple algorithms consist of input, process and output at various stages.
- Understand that each programming language has a unique set of features and constructs that make it suitable for different types of tasks.
- Understand and use the basic algorithm constructs including
- assignment: used to store the value of an expression into a variable
- sequence: a number of instructions processed one after the other
- selection: the next instruction to be executed depends on a ‘condition’
- condition: a logical expression that evaluates to true or false
- iteration: a number of instructions are repeated
- modularisation: used for reducing the complexity of a system by deconstructing into more or less independent units or modules. - Recognise, describe and use the five basic features of programming:
- variables
- control structures
- data structures
- syntax
- libraries and classes. - Recognise, describe and use good programming practices, including
- dependability
- efficiency
- testing and debugging
- error correction
- coding conventions including:
• commenting
• consistent naming conventions
• code simplicity
• portability. - Identify and describe
- the purpose of code syntax and rules
- the scope and use of local and global variables
- code object/event triggers and their effect on user interfaces. - Explore
- programming development tools to understand how to use them effectively
- the use of a text-based language for
• writing and modifying code and using existing code blocks or statements
• interpreting programming language rules and syntax
• analysing and critiquing the end result of code statements using input or output evidence, i.e. runtime evidence
- functions and procedures with efficient and maintainable code that
• includes reuseable coded components
• responds to keyboard and mouse events
• uses variables, selection structures, counted loops, while loops and single, multi-branch and nested conditional logic/statements
• uses operators, including arithmetic (+, –, *, /, integer, modulus, exponent), comparison (<, >, <=, >=, equal, not equal) and logical (AND, OR, NOT)
- the purpose of code statements by writing code and using existing code blocks or statements
- object/event triggers and explain their effect/s on user interfaces.
Videos:
Resources:
- https://groklearning.com/course/python-for-beginners/
- https://groklearning.com/gym/gym-1a/
- https://codingbat.com/python
- https://gdquest.github.io/learn-gdscript/
- Develop algorithms using pseudocode by
- identifying and describing the steps and their behaviour in the algorithm
- identifying and explaining the algorithmic steps required for a programmed solution. - Symbolise interrelationships with sketches and diagrams.
- Communicate and clarify knowledge and understanding about the purpose of code statements using code comments.
Videos:
Resources:
- https://graded-cs-resources.github.io/CodingBatPseudo/
- https://www.geeksforgeeks.org/coding-challenge-for-beginners/
- https://www.geeksforgeeks.org/how-to-write-a-pseudo-code/
- https://www.geeksforgeeks.org/what-is-pseudocode-a-complete-tutorial/
- https://pythonbooks.org/free-books/
- Computer Science Concepts(Java): https://www.youtube.com/playlist?list=PLzdnOPI1iJNdqZjWQImgh9LINLZG5vicc
- http://flowgorithm.org/
Topic 4: Programmed Solutions
- Use a text-based language to
- apply the use of operators, including
• arithmetic: +, –, *, /, integer, modulus, exponent
• comparison: <, >, <=, >=, equal, not equal
• logical: AND, OR, NOT
- output information to the screen in text-based or visual formats
- generate
• components of a solution by using existing code or writing new code statements
• modified code in response to new or existing information
• functions/procedures with efficient and maintainable code that includes reuseable code blocks or statements and responses to keyboard and mouse events
• selection structures, counted loops, while loops, and single, multi-branch and nested conditional logic statements
• local and global variables
• a prototype digital solution in response to a problem
- Use a text-based language to
- test inputs, outputs and processes
- evaluate and make recommendations about
• the use of programming language rules and syntax for a given problem
• algorithmic steps using debugging / testing processes, e.g. desk checks
• the effectiveness of algorithms
• the end result of code statements using input or output evidence
• the user interface based on useability principles including accessibility, effectiveness, safety, utility and learnability
• the solution and its components by testing to identify errors using computational thinking processes, e.g. debugging techniques
• the personal, social and economic impacts of the solution
• the implemented solution against success criteria, maintainability and useability principles.
Resources:
- https://groklearning.com/course/python-for-beginners/
- https://groklearning.com/gym/gym-1a/
- https://gdquest.github.io/learn-gdscript/
- https://graded-cs-resources.github.io/CodingBatPseudo/
- https://www.codestepbystep.com/
- https://www.geeksforgeeks.org/coding-challenge-for-beginners/
- https://www.geeksforgeeks.org/how-to-write-a-pseudo-code/
- https://www.geeksforgeeks.org/what-is-pseudocode-a-complete-tutorial/
Example Activities
- Create a Calculator.
- Output Grade based on Mark.
- Cookie Clicker Game.
- Form with Validation.
Formative Internal Assessment 1: Technical Proposal (25%)
Students generate non-coded low-fidelity prototypes that use an external data source in response to a real-world problem in the selected Unit 1 technology context. They communicate the technical feasibility of the solution through a multimodal presentation.
Assessment Objectives
1. Recognise and describe |
2. Symbolise user interfaces and explain ideas |
3. Analyse the problem and information related to the selected technology context. |
4. Determine |
5. Synthesise information and ideas to develop the possible solutions for |
6. Generate a low-fidelity non-coded prototype digital solution. |
8. Make decisions about and use mode-appropriate features, language and conventions for written and spoken communication for a technical audience. |
Instrument-specific Marking Guide
- modified IA1
Additional Information
- Schools can decide what they want to do but are encouraged to let students experience assessments similar to IA1, IA2 & IA3 when completing the formative tasks. This assumes that FIA1, FIA2 and FIA3 will map as much as possible to the corresponding IAs but exclude information that hasn't been taught yet.
Example Tasks
- Improve Website
- Improve Game
- Improve App
Formative Internal Assessment 2: Digital Solution (25%)
Students generate an innovative digital solution to a real-world problem in the selected Unit 1 technology context. Students document the application of the problem-solving process in response to a stimulus document supplied by the teacher.
Assessment Objectives
4. Determine success criteria for the identified real-world problem. |
5. Synthesise information and ideas to develop the possible solutions for |
6. Generate user interfaces and programmed components of the digital solution. |
7. Evaluate components and the digital solution against success criteria to make refinements and justified recommendations and evaluate impacts. |
8. Make decisions about and use mode-appropriate features, written language and conventions for a technical audience. |
Instrument-specific Marking Guide
- modified IA2
Additional Information
- Schools can decide what they want to do but are encouraged to let students experience assessments similar to IA1, IA2 & IA3 when completing the formative tasks. This assumes that FIA1, FIA2 and FIA3 will map as much as possible to the corresponding IAs but exclude information that hasn't been taught yet.
Example Tasks
- Simple Game
- Create FIA1
Unit 2: Application and Data Solutions
Unit Objectives
- Recognise and describe programming features, data and useability principles, and data management processes.
- Symbolise and explain information, ideas and data flow relationships within and between systems related to digital problems.
- Analyse problems and information related to the selected technology context.
- Determine solution requirements and success criteria of a digital problem.
- Synthesise information and ideas to develop possible digital solutions.
- Generate user interface and programmed components of the prototype digital solution.
- Evaluate components and solutions against criteria to make refinements and justified recommendations, and evaluate impacts.
- Make decisions about and use mode-appropriate features, language and conventions for particular purposes and contexts.
Topic 1: Data-driven problems and solution requirements
- Understand the nature of data-driven problems.
Videos
- Analyse problems associated with data insertion, including variations in data formats, data structures, validation rules and data requirements.
Videos
- Determine manageable aspects of a problem through decomposition, pattern recognition and analysis of
- user requirements
- programming options includings
• interactivity, e.g. user input and presentation of data
• data models, and storage and output requirements.
Decomposition Example
Mind Map Example
Videos
Resources
- https://www.joelonsoftware.com/2000/10/02/painless-functional-specifications-part-1-why-bother/
- https://www.bbc.co.uk/bitesize/guides/zqqfyrd/revision/1
- https://www.geeksforgeeks.org/what-is-decomposition-computational-thinking/
- Recognise data types, constraints, and primary and foreign keys.
TBD
- Recognise and describe useability principles including accessibility, effectiveness, safety, utility and learnability.
See resource: Useability & Visual Communication
- Symbolise the links between external entities, data sources, data flow, processes and data storage in annotated context diagrams or data flow diagrams.
Videos
- Develop algorithms using pseudocode.
Videos
- Explore and communicate the personal, social and economic impacts of storing data in a database for individuals, organisations and governments.
Videos
Resources
- Explore potential impacts of emerging technologies on data storage, e.g. machine learning, deep learning, neural networks, natural language processing.
Videos
Resources
- https://www.geeksforgeeks.org/machine-learning/
- https://www.geeksforgeeks.org/neural-networks-a-beginners-guide/
- https://www.geeksforgeeks.org/natural-language-processing-overview/
- Explore and use the elements and principles of visual communication
- elements are limited to space, line, colour, shape, texture, tone, form, proportion and scale
- principles are limited to balance, contrast, proximity, harmony, alignment, repetition and hierarchy.
See resource: Useability & Visual Communication
- Communicate using
- digital technologies–specific language
- language conventions, textual features such as annotations, paragraphs and sentences, and referencing conventions to convey information to particular audiences about digital solutions
- sketches or diagrams to present information and ideas about the problem and programmed digital solutions
- the modes of visual, written and spoken communication to present data and information about digital solutions.
Quizlet/Quizz/Booket - TBD
Language Conventions
- Annotations
- Paragraphs
- Referencing (Generally APA)
- Sketches or Diagrams
- Correct way to present information.
Checklist
- General Components
- Title
- Headings
- Capital Letters
- Spelling
- Punctuation
- Images have captions
- Citations/references and bibliography
- Specific Areas
- Existing Solution
- UI Design
- Pseudocode (Algorithms)
- Requirements
- Criteria
- Evaluation
Topic 2: Data and Programming Techniques
- Recognise the elements needed for a data-driven solution, including
- scope of given problems
- constraints and limitations
- programming requirements, e.g. SQL and algorithms
- system requirements, e.g. platforms, connections, hardware and data stores
- the data that is required from real-world data sources, e.g. files, peripheral devices, online sources and users
- the personal, social and economic impacts of storing data in databases for individuals, organisations and governments. - Understand
- the difference between data, information and wisdom
- that data-driven programming is typically applied to streams of structured data for filtering, transforming, aggregating (such as computing statistics), or calling other programs
- SQL syntax and use SQL statements to solve a problem
- that simple algorithms consist of input, process and output at various stages
- that data is organised in tabular form and the skills and knowledge used to normalise and link tables together
- the reasons and methods of database structure modification to third normal form (3NF).
Lots of this has already been covered in Unit 1 BUT now needs to be extended to include data as well which is covered in more detail below.
- Interpret the structure of a database represented by a relational schema (RS) to determine the relationship between data.
Videos
Software
- https://www.convertcsv.com/sqlite-online.htm
- Draw.io: https://github.com/jgraph/drawio-desktop/releases
- Explain data principles including
- acquisition
- organisation, i.e. using appropriate naming conventions, data formats and structures
- representation
- integrity
- anomalies
- redundancy
- security - Explain
- the difference between data validation and data verification
- referential integrity, normalisation and third normal form, relational database management system
- the difference between primary key and foreign key
- relations (tables) including rows; columns; primary, secondary and foreign keys; nulls; and views within a database management system.
Videos
Resources
- https://groklearning.com/course/intro-sql-1/
- https://www.w3schools.com/sql/
- https://www.w3schools.com/sql/sql_quiz.asp
- https://www.w3schools.com/sql/sql_exercises.asp
- https://sqlzoo.net/wiki/SQL_Tutorial
- https://www.sqlitetutorial.net/
Software
- Symbolise
- ideas for user interface and interconnecting systems using sketches, diagrams or mock-ups
- data flow through a system using data flow diagrams.
Examples
Level 0 DFD
Basically the same as a Context Diagram
Level 1 DFD
Videos
Software
Resources
- Analyse and structure data and data stores to reduce redundancy and ensure completeness, consistency and integrity for use and storage.
- Apply data management processes, e.g. encryption, consistency, searching, pattern recognition and de-identification.
Videos
- Understand and use the basic constructs of an algorithm including assignment, sequence, selection, condition, iteration and modularisation.
- Develop well-ordered and unambiguous algorithms using pseudocode for
- a program that processes data for insertion into a database or manipulates or displays retrieved data
- user interaction, data validation and data presentation. - Communicate and clarify knowledge and understanding about the purpose of code statements using code comments.
Videos
Resources
- https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/gdscript_styleguide.html
- https://gdquest.gitbook.io/gdquests-guidelines/godot-gdscript-guidelines
- https://godot.community/topic/78/gdscript-cheatsheet/2?_=1727226115569
- https://godot.community/topic/27/gdscript-coding-conventions-best-practices-for-readable-and-maintainable-code
- https://godot.community/topic/41/gdscript-best-practices-for-organized-code
Topic 3: Prototype Data Solutions
- Identify the success criteria to plan the user interface and programmed components of proposed solutions.
- Determine appropriate data types, constraints, and primary and foreign keys.
- Evaluate and modify a database structure to third normal form (3NF).
- Use SQL statements including
- SELECT, WHERE, GROUP BY, HAVING, ORDER BY, COUNT, MIN, MAX, AVG, IN, inner-joins and sub-queries to retrieve appropriate data from existing databases
- CREATE, INSERT, UPDATE and DELETE to create database tables and views, and modify stored data. - Generate a prototype digital solution to access, manipulate and display data that
- enables data to be inserted, updated, retrieved and deleted from single and multiple tables
- validates the data to be entered for reliability to ensure that the data is valid for use and storage
- includes user interfaces that will enable the insertion, updating and selection of data from/to an SQL database. - Test the SQL and programmed components of the prototype digital solution for reliability, maintainability and efficiency.
- Test the user interfaces against useability principles.
- Evaluate
- algorithmic steps using debugging / testing processes, e.g. desk checks
- data quality using the success criteria of accuracy and completeness
- the prototype digital solution against success criteria
The theory for this unit has been covered in previous units. This unit mainly consolidates and combines previous concepts. Lots of practical activities but no new theory.
Formative Internal Assessment 3: Digital Solution (25%)
Students generate an innovative digital solution to a real-world problem with a focus on data security and impacts in any of the four technology contexts: web application, mobile application, interactive media or intelligent systems. Students document the application of the problem-solving process in response to a stimulus supplied by the teacher.
Assessment Objectives
4. Determine success criteria for the identified real-world problem. |
5. Synthesise information and ideas to develop the possible solutions for data, user interface and programmed components for a secure digital solution. |
6. Generate user interfaces and programmed components of the digital solution. |
7. Evaluate components and the digital solution against success criteria to make refinements and justified recommendations and evaluate impacts. |
8. Make decisions about and use mode-appropriate features, written language and conventions for a technical audience. |
Instrument-specific Marking Guide
- modified IA2 - expectations for security are lower.
Additional Information
- Schools can decide what they want to do but are encouraged to let students experience assessments similar to IA1, IA2 & IA3 when completing the formative tasks. This assumes that FIA1, FIA2 and FIA3 will map as much as possible to the corresponding IAs but exclude information that hasn't been taught yet.
Example Tasks
- High Score System
- Login System
- Login & Search
- eSports/Sports Tournament System
Unit 3: Digital Innovation
Unit Objectives
- Recognise and describe programming features, digital system, interface components, and useability principles.
- Symbolise and explain programming information, ideas and interrelationships between data structures and user experiences.
- Analyse problems and information related to the selected technology context.
- Determine solution requirements, and success criteria of a digital problem.
- Synthesise information and ideas to develop possible solutions for data, user interface and programmed components.
- Generate user interfaces and programmed components of the prototype digital solution.
- Evaluate components and a solution against criteria to make refinements and justified recommendations, and evaluate impacts.
- Make decisions about and use mode-appropriate features, language and conventions for particular purposes and contexts.
Topic 1: Interactions Between Users, Data and Digital Systems
- Explore and analyse the meaning and importance of innovation and the personal, business and social opportunities presented by innovation.
- Explore the impact of emerging technologies on innovation, e.g. machine learning, deep learning, neural networks, natural language processing.
- Recognise and describe components of a digital solution appropriate to the technology context selected.
These are extensions of concepts covered previously.
- User-interface components such as user hardware and peripheral devices used for input and output
Videos
- Program components such as objects, event handlers and multimedia assets external data stores such as file structures or object libraries internal data
- Structures such as arrays, lists and dictionaries
Resources
- Analyse a problem to identify and explain the
- components of a system, e.g. hardware, software, data, network, processes, users, interfaces, protocols and standards
- observable interactions, e.g. human-human interactions through communication channels such as social media platforms, email, instant messaging, video conferencing
- inputs and outputs
- control mechanism
- processes and interactions using logical diagrams and consistent symbols. - Symbolise and explain
- useability principles, including accessibility, effectiveness, safety, utility and learnability
- a variety of interfaces
- data flow through a system using data flow diagrams. - Symbolise, explain and use advanced data processes, including table joins, referential integrity, redundancy reduction and anomaly updating.
Covered in Unit 2, Topic 2. Expand & consolidate.
- Explore
- flexible development methods to support a variety of user profiles
- methods of synthesising user interface, processing and data components to generate a prototype digital solution. - Explore and use the elements and principles of visual communication
- elements are limited to space, line, colour, shape, texture, tone, form, proportion and scale
- principles are limited to balance, contrast, proximity, harmony, alignment, repetition and hierarchy. - Determine possible personal, social and economic impacts.
- Appraise user interfaces against useability principles
Covered previously. Expand & consolidate.
Topic 2: Real-world Problems and Solution Requirements
- Explore programming development tools to understand how to use them effectively.
Resources
- Warning! Godot 3: https://www.youtube.com/playlist?list=PLQsiR7DILTczMLsN8qmMym7pYfJXynzK0
- Godot Basics: https://www.youtube.com/playlist?list=PLJ690cxlZTgIsmdEhFufnB7O6KWoMS8M6
- GDScript Fundamentals: https://www.youtube.com/playlist?list=PLJ690cxlZTgL4i3sjTPRQTyrJ5TTkYJ2_
- Explore project management tools and processes to understand how to use them effectively,
e.g. tasks, milestones, dependencies, stakeholders, resources.
Videos
- Analyse problems and information to determine
- manageable aspects of the problem
- a specific aspect of the problem to develop
- scope of the problem
- constraints and limitations of the environment
- requirements of the solution
- success criteria. - Describe interactions in terms of inputs, processes and outputs, e.g. machine–human interactions such as smartphone applications and chatbots, human-machine interactions such as touchscreens, voice commands and gestures.
Videos
- Explore data sources to understand relational and flat file data structures.
Videos
- Evaluate ideas using innovation and collaboration.
TBD
- Recognise and compare different file formats and data structures appropriate to the context.
- Determine file formats and data structures appropriate to the technology context.
Videos
- Analyse modularity and readability of program modules.
Videos
- Recognise and use
- the basic constructs of an algorithm including assignment, sequence, selection, condition, iteration and modularisation
- pseudocode to communicate algorithmic steps. - Understand that simple algorithms consist of input, process and output.
Covered previously. Expand and consolidate.
- Describe well-ordered and unambiguous algorithms using pseudocode for
- code that processes data for insertion into a database or manipulates or displays retrieved data
- user interaction, data validation and data presentation. - Explain code steps using comment syntax appropriate to the programming language.
- Apply
- computational thinking processes, e.g. creating, debugging, persevering and collaborating to identify possible algorithmic approaches
- data algorithms for cleaning and merging data sources and iterating through data records. - Use generic pseudocode suitable for a variety of programming languages to communicate requirements for programmed components.
- Observe different styles of presenting a technical proposal for a digital solution.
- Communicate a technical proposal for a digital solution through a presentation.
- Communicate using
- digital technologies–specific language
- language conventions, textual features such as annotations, paragraphs and sentences, and referencing conventions to convey information to particular audiences about digital solutions
- sketches or diagrams to present information and ideas about the problem and programmed digital solutions
- the modes of visual, written and spoken communication to present data and information about digital solutions.
Topic 3: Innovative Digital Solutions
- Refine ideas for components of a prototype digital solution.
- Demonstrate a prototype of a digital solution.
- Use SQL statements to
- INSERT, UPDATE and DELETE rows in a database
- CREATE, DROP and ALTER statements
- SELECT, WHERE, GROUP BY, HAVING, ORDER BY, sub-selection and inner-joins clauses.
Resources:
- https://groklearning.com/course/intro-sql-1/
- https://www.w3schools.com/sql/default.asp
- https://www.w3schools.com/sql/sql_quiz.asp
- https://www.w3schools.com/sql/exercise.asp
- Develop a conceptual model of a possible solution by applying systems thinking that identifies
- system boundaries
- properties
- inputs and outputs
- user interface
- system controls. - Generate
- low-fidelity user-interface prototypes appropriate to the digital context by using the elements and principles of visual communication such as sketches, mood boards, storyboards, sitemaps, wireframes and mock-ups
- simple programs by using programming development tools
- code that creates, reads, writes, opens and closes a file.
Videos
Resources
- Generate program modules that
- interact with users
- interact with 2D data sources
- validate data inputs
- control the interactions in a digital solution. - Communicate and clarify knowledge and understanding about the purpose of code statements using code comments.
- Synthesise user interface, processing and data components to generate a prototype digital solution.
- Justify selection of relevant data from existing data sources.
- Evaluate
- the reliability, maintainability, efficiency, effectiveness and useability of algorithms to draw conclusions and make recommendations
- algorithmic steps using debugging / testing processes, e.g. desk checks
- user interfaces from existing solutions using heuristic reviews for the useability principles
- by testing program modules for reliability, maintainability and efficiency using computational thinking processes such as debugging to refine a prototype digital solution.
Videos
- Evaluate and refine user interfaces by
- testing the useability principles, including accessibility, effectiveness, safety, utility and learnability
- observing and recording user interactions from user experience testing. - Evaluate against success criteria the
- user interface and programmed solutions
- prototype digital solution.
Unit 4: Digital Impacts
Unit Objectives
- Recognise and describe programming features, components of data exchange systems, privacy principles and data exchange processes.
- Symbolise and explain data structures and specifications, methods for exchanging data, and data-flow relationships within and between systems.
- Analyse problems and information related to digital systems.
- Determine solution requirements and success criteria.
- Synthesise information and ideas to develop possible components of digital solutions.
- Generate components of the digital solution.
- Evaluate components and solutions against success criteria to make refinements and justified recommendations, and evaluate impacts.
- Make decisions about and use mode-appropriate features, language and conventions for particular purposes and contexts.
Topic 1: Digital methods for exchanging data
- Recognise and describe
- encryption and authentication strategies appropriate for securing data transmissions and their differences, e.g. two-factor or multi-factor authentication (2FA/MFA) using verification codes vs. biometrics
- features of symmetric (Data Encryption Standard — DES, Triple DES, AES — Advanced Encryption Standard, Blowfish and Twofish) and asymmetric (RSA) encryption algorithms
- how data compression, encryption and hashing are used in the storage and transfer of data
- how simple algorithms consist of input, process and output at various stages
- basic concepts and definitions of emerging technologies, e.g. machine learning, deep learning, neural networks, natural language processing
- how particular algorithms process data differently, e.g. machine learning, deep learning, natural language processing and reinforcement learning algorithms
- how useability principles are used to inform solution development
- how the elements and principles of visual communication inform user interface development. - Explain
- Australian Privacy Principles (2014) and ethics applicable to the use of personally identifiable or sensitive data from a digital systems perspective
- network performance metrics of latency, jitter, and the guarantee and timeliness of delivery
- network transmission principles, including, protocol standards e.g. TCP/IP, HTTP, FTP and VPN, packet switching, error detection and correction, routing and forwarding, flow and congestion control, quality of service (QoS), security e.g. confidentiality, integrity and availability of data
- methods for data exchange used to transfer data across networked systems, including REST, JSON and XML, with the assistance of APIs that facilitate data exchange between different systems and applications. - Analyse and evaluate Caesar, Polyalphabetic (e.g. Vigenere and Gronsfeld), and one-time pad encryption algorithms.
- Describe data using appropriate naming conventions, data formats and structures.
- Symbolise and explain
- how application sub-systems, e.g. front end, back end, work together to constitute a solution
- secure data transmission techniques and processes, including the use of encryption, decryption, authentication, hashing and checksums. - Symbolise
- representations of a digital solution
- data flow through a system using data flow diagrams. - Develop algorithms with pseudocode using the basic constructs including assignment, sequence, selection, condition, iteration and modularisation.
Topic 2: Complex Digital Data Exchange Problems and Solution Requirements
- Identify, describe and determine the scope and usage of local and global variables.
- Analyse problems and information to determine
- scope of given problems
- constraints and limitations
- requirements of the solution components
- necessary coded modularity and features
- factors and risks that affect data security, including confidentiality, integrity and availability, and privacy
- existing code within inbuilt libraries
- success criteria to appraise the implementation, e.g. protection, security and interactions
- the potential role of emerging technologies in data exchange solutions, e.g. machine learning. - Analyse, evaluate and make refinements to data to ensure completeness, consistency and integrity.
- Analyse and explain a system’s data process by developing data flow diagrams that link external entities, data sources, processes and data storage.
- Determine manageable aspects of a problem through a decomposition and analysis of
- constraints
- risks
- available tools, code libraries and frameworks
- data storage and output requirements
- data interface. - Determine data sources required to generate data components.
- Develop algorithmic steps with pseudocode.
- Explain the purpose of code and/or algorithm statements using code comments and annotations.
- Communicate using
- digital technologies–specific language
- language conventions; textual features such as annotations, paragraphs and sentences; and referencing conventions to convey information to particular audiences about digital solutions
- sketches or diagrams to present information and ideas about the problem and programmed digital solutions
- the modes of visual, written and spoken communication to present data and information about digital solutions.
Topic 3: Prototype Digital Data Exchanges
- Synthesise information and ideas to develop prototype components of data exchange solutions.
- Understand and use the basic algorithm constructs including
- assignment: used to store the value of an expression into a variable
- sequence: a number of instructions processed one after the other
- selection: the next instruction to be executed depends on a ‘condition’
- condition: a logical expression that evaluates to true or false
- iteration: a number of instructions are repeated
- modularisation: used for reducing the complexity of a system by deconstructing into more or less independent units or modules. - Understand and use the five basic features of programming
- variables
- control structures
- data structures
- syntax
- libraries and classes. - Recognise, describe and use good programming practices, including dependability, efficiency, testing, debugging, error correction, coding conventions including commenting, consistent naming conventions, code simplicity and portability.
- Use pseudocode to develop
- simple Caesar, Polyalphabetic (e.g. Vignere and Gronsfeld), and one-time pad encryption algorithms
- a well-ordered and unambiguous algorithm to solve defined problems. - Use a suitable programming environment to
- implement algorithms using modularisation
- receive data from an external source, and process and display the data in an appropriate format
- incorporate existing code libraries (where applicable). - Generate a prototype digital solution that uses appropriate data formats, e.g. JSON or XML, to exchange data.
- Manipulate data from an external source.
- Use SQL statements including
- CREATE, DROP and ALTER
- INSERT and UPDATE
- SELECT, WHERE, GROUP BY, HAVING, ORDER BY, sub-selection and inner-joins clauses. - Use programmed methods including
- sequence
- selection, i.e. use of single and nested, simple or compound conditions
- iterations, including nesting or simple or compound conditions
- code-specific arithmetic comparison and logical operators, including real division, integer division, modulus
- data types, error-checking functions and conversions
- structures, including one-dimensional collections, e.g. arrays and lists. - Evaluate algorithmic steps using desk checks to predict the output for a given input, identify and fix errors (debug) and validate algorithms.
- Evaluate
- the personal, social and economic impacts of the exchange, storage, accuracy and ownership of data
- the personal, social and economic impacts of emerging technologies, e.g. artificial intelligence
- solutions against success criteria
- solutions by testing to refine their accuracy, reliability, maintainability, efficiency, effectiveness and useability
- and make justified recommendations related to the security impacts of digital solutions, taking into consideration changes in interactivity and ways information and data are created, used and shared.
Assessment Guide
This is a guide to working through various assessments with examples.
Internal Assessments Compared
2025 Syllabus
Component | Size | IA1 | IA2 | IA3 |
Format | Video (10 min) | PDF(10 A4)+Video(2 min) | PDF (10 A4)+Video(2 min) | |
1. Stimulus | Task |
Task, Functional Requirements, Additional Requirements, Personas, Data |
Task, Functional Requirements, Additional Requirements, Personas, Data |
|
2. Mindmap | 1 A4 | X | (encouraged) | (encouraged) |
3. Constraints & Limitations | 0.25 A4 | X | ||
4. Success Criteria | 0.5 A4 | X | X | X |
5. Introduction | 0.25 A4 | X | X | X |
6. Existing Solution (Annotated) | 1 A4 | X | ||
7. Data Source Analysis |
0.25 A4 |
X | (encouraged) | (encouraged) |
8. Data Solution (ER Diagram, Data Dictionary, Sample) |
2 A4 |
X | X | X |
9. User Interface (Annotated) |
N/A |
X | (encouraged) | (encouraged) |
10. Inter Interface (Data + SQL) |
2 A4 |
X | (encouraged) | (encouraged) |
11. Security |
0.5 A4 |
X | ||
12. Usability Principles |
N/A |
X | X | X |
13. Pseudocode |
1 A4 |
X | ||
14. Code |
2 A4 |
X | X | |
15. Final Product (Video) |
N/A |
X | X | |
16. Prototype (Video) |
N/A |
X | X | X |
17. Testing, Feedback & Evaluation |
3 A4 |
X | X | |
18. Bibliography |
N/A |
X | X | X |
Total Length: |
|
11? / 10 | 11.5? / 10 |
Old 2019 Syllabus
Component | IA1 | IA2 | IA3 |
Format | Video (10 min) | PDF (8-10 A3) + Video (2-4 min) + Code (4-6 A4) |
PDF (8-10 A3) + Video (1-2 min) + Code (2-4 A4) |
1. Stimulus | Task |
Task, Interactions, Component Specifications |
Task, Interactions, Component Specifications |
2. Mind Map | X | X | X |
3. Constraints & Limitations | X | ||
4. Success Criteria | X | X | X |
5. Introduction | X | X | X |
6. Existing Solution (Annotated) | X | ||
7. Data Source Analysis |
X | X | X |
8. Data Solution (ER Diagram, Data Dictionary, Sample) |
X | X | X |
9. User Interface (Annotated) |
X | X | X |
10. Inter Interface (Data + SQL) |
X | X | X |
11. Security |
X | ||
12. Usability Principles |
X | X | X |
13. Pseudocode |
X | ||
14. Code |
X | X | |
15. Final Product |
X | X | |
16. Prototype (Video) |
X | X | X |
17. Testing, Feedback & Evaluation |
X | X | X |
18. Bibliography |
X | X | X |
Password DB Example Task
(Reasonable task for IA1 & IA2. Not great for IA3)
For this task, you have been asked to create an application that stores passwords for various applications and websites in 6 weeks.
The initial version does not require data to be encrypted but some security concepts should be incorporated in the design or added in the future.
The application should be cross-platform and implement the following features:
- Require a master password to access the application at all.
- Create new entries that provide a name that will be unique, username, password, URL and comments.
- Update information for existing entries.
- Archive but not delete old entries.
- View a list of active entries which will show the name and username.
- Click on an entry to show all the information about it.
- See a list of archived entries.
- If you click on an archived entry, then it will be restored.
- If there is a link to a website, then get the "favourite icon" from the site and show it next to the name.
Stimulus
All assignments will have a stimulus so that you know what to do.
The minimum will be a task sheet.
IA2 & IA3 will also provide the following:
- Functional & non-functional requirements - This is similar to what you identify in the mindmap and analysis of existing solutions.
- Personas - This is similar to the information about your target audience in the mind map.
- Data - This will be data that needs to be used in the application.
Password DB Example - Mindmap (Draw.io)
Functional & non-functional requirements
Not provided for this example.
Personas
Person A | Person B | Person C |
A teenager with a few passwords. He mainly wants to be able to store the passwords on his phone.
He doesn't want to forget the sites that he has accounts on. |
A mother who has multiple accounts on sites for herself and her children. She has multiple usernames on the same site and often needs to store extra information about them as well.
She only ever looks up the information on her computer. |
A retired person. They always forget their passwords and want anything to be as simple as possible. They want it to work offline.
They don't have many passwords. |
Sample Data
The data will be provided in a CSV file.
Name | Username | Password | URL | Comments |
Gmail | apple@gmail.com | 123abc | https://www.gmail.com/ | |
Hotmail | bannanahotmail.com | Password1 | Hot Mail | |
NetFlix | apple@gmail.com | 123abc | https://nextfix.com/ |
Explore Mind Maps
IA1, IA2, IA3:
Key areas to look into:
- Solution Ideas
- User Interface
- Data
- Programming
- Task Sheet
- Constraints
- Requirements
- Target Audience
Password DB Example - Mindmap (Draw.io)
Constraints and Limitations
Here are the common constraints that projects might have:
- Time - How long do you have to complete the project?
- Data - What data do you have to use for the project?
- Legal
- Copyright - Are there any copyright issues to be aware of?
- Privacy Laws - Are there any privacy laws to be aware of?
- Budget - Do you have a budget?
- Security - Are there any security issues to be aware of?
There may also be other constraints or limitations stated in the task sheet. These are often related to which technology will be used as well as things to reduce the scope of the project.
Password DB Example - Constraints and Limitations
- Time: This project needs to be finished in 6 weeks.
- Data: This project needs to download and use fav icons from websites.
- Copyright: Apart from fav icons which are fair use all other images need to be original, licensed or in the public domain.
- Budget: $0 budget for assets and resources. The application cannot require royalty payments.
- Security: Not required for the prototype.
Success Criteria
IA2 & IA3:
Prescribed Criteria
- Derived from the task.
Self-Determined Criteria
- 1 or 2 linked to the task sheet but not stated directly.
- 1 or 2 about Functionality/Experiences
- 1 or 2 about Usability Principles/Visual Communication
- 1 or 2 about Security or Privacy
These are now combined and don't need to be separated like they were in old examples you may have seen online.
It can be in a list but is often better in a table looking at the impact of the criteria.
Here is how the task links to the criteria:
- Require a master password to access the application at all.
- Create new entries that provide a name that will be unique, username, password, URL and comments.
- Update information for existing entries.
- Archive but not delete old entries.
- View a list of active entries which will show the name and username.
- Click on an entry to show all the information about it.
- See a list of archived entries.
- If you click on an archived entry, then it will be restored.
- If there is a link to a website then get the "favourite icon" from the site and show it next to the name.
Password DB Example - Success Criteria
Criteria | Description | Impact (Personal, Social, Economic) |
SC1 | A master password to access the application | Personal: There is a chance the person might forget it but it is better than other people accessing all the stored passwords. |
SC2 | Ability to add new entries. | This will need to use a database for storage. |
SC3 | Ability to update entries | This will need to use a database for storage. |
SC4 | Ability to list active entries. | This will get information from a database. Make sure that the data is sorted in a way that makes sense. |
SC5 | Ability to list archived entries. | This will get information from a database. Make sure that the data is sorted in a way that makes sense. |
SC6 | Ability to view a single entry. | The same page could be used to view information as well as edit/update information. |
SC7 | Automatically download and update favourite icons. | Social: This will require internet access. If there is an icon then don't look for one again. If there isn't one then check but don't crash the application if internet isn't working. |
SC8 | Ability to generate/recommend a good password. | It would be nice if we could generate a password that people could use based on a set of rules. |
SC9 | Ability to update the master password. | Personal/Social: It will be more secure if we can update the password if someone finds it out. |
SC10 | Passwords should be hidden but have a show button to see them or a button to copy it without seeing it. | Personal/Social: Other people might look at the computer. It would be good if it could be used in a public area. |
SC11 | Make sure that the application is learnable and has safety | Social: The application should be easy to learn and use without crashing. |
SC11 | Make sure that the application has good alignment, hierarchy, contrast and proximity. | Social: The application should look professional. |
Introduction (Problem Description & Solution)
Take the task that has been set and reword it to introduce what this document is about.
It can also be used to talk about any concepts that you want to talk about to meet specific criteria from the task sheet. A good way to do this is to:
- Look at the problem.
- Look at the user.
- Look at the solution you have decided to create.
Here is the example task:
- For this task, you have been asked to create an application that stores passwords for various applications and websites in 6 weeks.
Password DB Example - Introduction
The problem is that people constantly forget their passwords or write them on paper or a text file on the desktop so that they don't forget them. This can become a problem as people have more passwords for different sites and sometimes different usernames for the same site.
The key users of this system being designed to solve this problem are retired people that want a simple system that works offline.
For the initial proof of concept, a database is going to be created with a simple user interface. To make the solution work on multiple platforms Godot has been chosen to create the user interface since it can be used rapidly create cross platform user interfaces and supports multiple SQL databases. This document will explore one way to create a "Password Database" application. It will look one way to design the user interface taking usability principles into consideration as well as exploring the algorithms and security concerns. It will evaluate how well the resulting application was compared to the initial criteria. |
Existing Solution(s) Analysis
When looking at existing solutions you are looking for a few different things:
- Usability principles
- Elements of Visual Communication
- Principles of Visual Communication
- Success Criteria
- Elements that you should implement in your own solution.
Password DB Example - Existing Solution
Data Source Analysis
IA1:
For IA2 & IA3 data or a data source should have been provided.
File Format
When looking at the data you should try to understand the file format being used. It will probably be either CSV, JSON or XML. The data inside it will generally consist of text and numbers at least.
Do you need all the data or only part of it? Are there issues with the data that need to be resolved?
You should look at the provided file format and explain how you will use it and any issues that could be a problem.
Source/Reliability
You should evaluate the source of the data and how reliable it is. Do you trust it? Is it likely to be biased? Is it limited or incomplete?
Sample Data
Provide some sample data.
Password DB Example - Data Source Analysis
File Format
The file is a CSV file which means that the headings need to be ignored when being imported. Also, all the fields are text.
Source/Reliability
The data provided looks unreliable with one of the URLs not being formatted correctly. Validation should be used and it should be rejected as a URL. One of the usernames looks like it should be an email address but apart from providing a warning, it is possible to know what the format should be.
The passwords provided are also bad. It might be good to provide a generate or some kind of rating to encourage better passwords.
The dataset is also very small. If more data was collected then other people may want additional information that isn't shown in this data set.
Since the passwords are stored and we need to get them back we cannot use hashing. In the future it would be better to encrypt the entire database to make it more secure. SQLite does support encrypted database which might be a solution when encryption is added.
Sample Data
Name | Username | Password | URL | Comments |
Gmail | apple@gmail.com | 123abc | https://www.gmail.com/ | |
Hotmail | bannanahotmail.com | Password1 | Hot Mail | |
NetFlix | apple@gmail.com | 123abc | https://nextfix.com/ |
Data Solution
Data Flow Diagram
Conventions
When students develop data flow diagrams, they should:
- choose meaningful names for processes, flows and data stores, including
- nouns for entities, data flows and data stores
- verbs or verb-object names for processes that describes what the process does, e.g. check
credentials
- number processes and data stores
- identify data stores as
- D — data on disk (retained even if the system is turned off)
- M — manual data (physical files, paper records or manually processed digital data)
- T — temporary (not retained long-term) or transient (rapidly changing, e.g. RAM, cache).
Information comes from and goes to entities and data stores via processes, therefore entities
may not:
- send data directly to other entities
- send data directly to data stores (data must be processed first)
- get data directly from data stores (data must be processed first).
ER Diagram
There are two types of Entity Relationship Diagrams:
- Chen notation style
- Crow’s Foot/Martin/Information Engineering style
There are three tools that are useful for creating the ERD:
- https://erdplus.com/ only does Chen Notation.
- Draw.io Can do both types.
- https://www.convertcsv.com/sqlite-online.htm is useful if you created the database first. It only does Crow’s Foot notation.
Data Dictionary
A data dictionary shows what data will be stored in a table. What goes into a table varies depending on the individual but the required data is:
- Field Name
- Field Type
Other common information is:
- Length
- Primary Key
- Not Null
- Description
- Validation
- Example
Sample Data
This is a table that shows what kind of data will be stored in the table. It is really useful when talking about the data. The data itself does not need to be real but similar to what might be in the system.
Example SQL
For more complex systems it might be a good idea to list the common queries that will be used by the system so you can talk about them.
- SELECT
- INSERT
- UPDATE
- CREATE TABLE
Password DB Example - Data Solution
Data Flow Diagram
ER Diagram
The database only needs a single table. At the moment the name of the site is considered to be unique and the primary key. If the user wants to have 2 different accounts at the same site they can use a slightly different name (gmail1, gmail2). Active is a hidden field that the user will never be able to see and will only interact with indirectly (1 for active and 0 for archive).
Data Dictionary
Passwords:
Field Name | Type | Length | Primary Key | Required | Validation Rules |
Name | Text | 3-20 | Yes | Yes | |
Username | Text | 5-20 | Yes | ||
Password | Text | 3-50 | Yes | ||
URL | Text | 0-200 | Must be HTTP[s]:// | ||
Comment | Text | 500 | |||
Icon | Blob | ||||
Active | bool | Yes |
Sample Data
Passwords
Name | Username | Password | URL | Comment | Icon | Active |
Gmail | apple@gmail.com | 123abc | https://www.gmail.com/ | True | ||
Hotmail | bannana@hotmail.com | Password1 | https://hotmail.com/ | True | ||
NetFlix | apple@gmail.com | 123abc | https://nextfix.com/ | False |
Example SQL
- UPDATE Passwords set password = ? WHERE username = ?
- INSERT INTO Passwords(Name, Username, Password, URL, Comment, Active) VALUES (?, ?, ?, ?, ?, 1)
- UPDATE Passwords Set Active = 1 WHERE Username = ?
- UPDATE Passwords Set Active = 0 WHERE Username = ?
There is a problem with the database created. Have a look at the evaluation for the mistake.
User Interface Design
Site Map / Overview
If the project is large then it is a good idea to provide a basic overview. This isn't needed for smaller projects.
WireFrame / Mockup
Generally, it is a good idea to provide an initial design of the project. This should be very limited since it is just meant to get ideas across. Don't spend a lot of time making it look good. Spend that time talking about your ideas.
Unless you invest time to learn a specific program it will be faster to use paper.
There are lots of different options but the ones below are made in Draw.io using the Mockups shapes under the Software Tab with the Sketch option checked.
Annotation
The most important thing is to explain why you are doing things with the User Interface. This will generally be linked to one of the following:
- Success Criteria
- Usability Principle
- Elements of Visual Communication
- Principles of Visual Communication.
Review the Resource: Useability & Visual Communication
Password DB Example - User Interface Design
Notice that SC8 is missing from the UI Design. Labelling all the success criteria makes it easier to notice if something was missed. If it is missed from the design phase it will probably be missed from the final product as well.
User Interface + Data & SQL
IA3:
- SQL / explain where the data comes from/goes to / Explain user components being used
- Validation
Password DB Example - User Interface + Data & SQL
|
SQL LOGIN: FROM Passwords The Login button will check if the user exists in the system and then go to the Account List page. |
SQL
SELECT * FROM Passwords WHERE Active = 1 ORDER BY Name
SELECT * FROM Passwords WHERE Active = 0 ORDER BY Name
UPDATE Passwords SET Active = 1 WHERE Name = ?
You can change from Active to Archive. This will change the data in the table. Active has a button that will let you edit a single account on the edit page. Archive will let you restore the account. |
|
SQL
SELECT * FROM Passwords WHERE Name = ?
UPDATE Passwords SET Active = 0 WHERE Name = ?
INSERT INTO Password (Name, Username, Password, URL, Comment, Active) VALUES (?, ?, ?, ?, ?, 1)
Validation:
The Save button will save the account. Archive will edit the account. Cancel will go back to the List Page. |
Notice that SC8 is missing from the UI Design. Labelling all the success criteria makes it easier to notice if something was missed. If it is missed from the design phase it will probably be missed from the final product as well.
Security
Some ways to do this are:
- Analyse data privacy and data integrity risks associated with transferring data between applications.
- Encryption and authentication strategies appropriate for securing data transmissions and their differences.
- Factors and risks that affect data security, including confidentiality, integrity and availability, and privacy.
- Success criteria to appraise the implementation, e.g. protection, security and interactions.
Password DB Example - Security
Due to the nature of this project, it will not be possible to hash the passwords since they need to be displayed. This means that the only way to make the database secure would be to encrypt the entire database. Unfortunately, this is outside the scope of the current project which means that the data is not secure. Normally to improve the security passwords should be stored only after they have had salt added and then been hashed using an algorithm like MD5. The salt stops rainbow tables from working (Hill, 2021) and the MD5 algorithm is a one-way algorithm which means that hackers can only brute force the password.
That being said other security can be implemented in the system. The password can be changed, and it hasn't been hard coded. this allows users to update the password if it has been compromised. The password is hidden by default which prevents other people nearby from seeing your password. The database has been normalised which should reduce data anomalies from corrupting the database.
Since limited information is stored and it is only stored on the user's device there are no privacy laws to be concerned with. The risks are that someone will open up the database in another program and can then access all the passwords stored in the system. |
Usability Principles
Talk about some Usability Principles used. See resource Useability & Visual Communication.
This will generally be done on the same page as the User Interface Design.
Password DB Example - Usability
See User Interface Design.
Pseudocode
Official guidance from the syllabus:
Pseudocode does not have a standard format and varies between programmers; however, algorithms must be able to be understood by anyone independent of a particular programming language. When students use pseudocode, they should:
- implement the basic control structures of assignment, sequence, selection, condition, iteration and modularisation using capitalised keywords associated with the constructs
- indent algorithmic steps where appropriate
- consider a case style that works best with the programming language they will be using in their project, e.g. Pascal Case or Camel Case.
The following pseudocode demonstrates examples of assignment (DECLARE), sequence, condition (IF), selection (THEN), iteration (WHILE), modularisation (FUNCTION, CALL), indentation and two variations of case (UserLogin, userName) for a user authentication
process:
Password DB Example - Pseudocode
Login
|
4-7: Keep asking the user for a password if it is wrong.
10: Create a function to make the code more modular.
12-15: Connect to the database and see if the password is in the database.
16: If a record is returned from the database, then it means that the correct password was entered so true is returned. |
List Password
|
4: This is a method that will clear all old passwords information from the UI.
6-8: Add new headings.
10: get the data from the database.
11-14: Add the information to the UI.
16: Function to make the core easier to maintain.
18-21: connect to the database and get the information from the database about users. |
Update Password
|
3-9: Make sure that the data has been validated.
13: Function to make the core easier to maintain.
15-18: connect to the database and update the data. |
Code
TBD
Password DB Example - Code
|
Final Product
Generally, this will be demonstrated using a 2-minute video of the product working.
If you want to watch me live code this project have a look at this video:
Password DB Example - Final Product
Notice that since SC8 was missing from the design I forgot to make it in the final product.
Prototype (Low Fidelity)
Generally, this will be demonstrated as part of the 10-minute video.
Password DB Example - Prototype (Low Fidelity)
TBD
Testing, Feedback & Evaluation
Testing
Every Criteria that can be tested, should be tested at least once. For some criteria, they should be tested even more.
At a minimum, every criterion should be tested for normal data. This is data that the program expects. For most buttons this is the only test possible.
In addition to this anything that involves data input should also try to test invalid data even if it isn't possible:
- Try to type a letter into a field that only accepts numbers.
- Try to type in a negative number when it doesn't make sense.
- Don't type in anything at all.
For a comprehensive test, you also want to test boundary data on both sides.
- If something changes at 18 then test 17 & 18 to make sure the boundary works as expected.
- If something changes at 0 then test 1, 0 & -1 to make sure the boundary works as expected.
It will be easier in the evaluation if you number the testing.
User Feedback
Some criteria cannot be tested. To prove that these criteria were successful you need to find the opinion of users. User feedback is a useful way to collect information that can be used in the evaluation.
Make sure you ask questions about each criterion that cannot be proven. Also ask question that will encourage feedback that you can use in the evaluation.
It will be easier in the evaluation if you number the feedback.
Evaluation
Copy the criteria table from the Criteria Section and add columns for Evaluation and Recommendations.
If you have selected good criteria that are comprehensive then this should be enough. If you have not selected good criteria then you will also want to evaluate:
- Impacts
All of the criteria should have been either tested or been part of user feedback. Each evaluation should reference the testing or user feedback.
Password DB Example - Testing, Feedback & Evaluation
Testing
Test# | Criteria | Action/Input | Expected Outcome | Actual Outcome | Errors/resolution |
1 | SC1 | Enter the correct master password | The scene should change to the list of accounts. | The scene changed to the list of accounts. | The first time the code was run the database was not connected correctly. The code had to be updated. |
2 | SC1 | Enter the wrong master password | The password should be cleared. | The password is not cleared. | The password should be cleared if the password is wrong. |
3 | SC2 | Type in valid information to add a new account and click save. | The data should be added to the database. | The data is added to the database. | |
4 | SC2 | Type in data that is not valid and click save to add a new account. | An error should be displayed, and nothing should be saved to the database. | An error is displayed. | Initially the error was poorly formatted. Added new lines and improved the formatting. |
5 | SC3 | Edit an existing account and click save. | The data should be updated in the database. |
The data is updated in the database.
There is an issue if the name field is changed. It creates a new record. |
The database needs to be changed so that the name field is not the primary key so that the name can be updated and it doesn't create a new entry. |
6 | SC4 | Login and go to the list of account and select active. | List the active accounts from the database. | List the active accounts from the database. | |
7 | SC5 | Login and go to the list of account and select Archive. | List the archived accounts from the database. | List the archived accounts from the database. | Initially dropdown box did not trigger changing the list of accounts. Fixed. |
8 | SC6 | Click on edit next to an active account in the list of active accounts. | The information about the account should be shown. | The information about the account is shown. | |
9 | SC7 | Enter a valid URL then click save on an account. | The fav icon should be automatically downloaded from the internet and displayed. | No icon is shown. | Godot does not support the icon file format. Find an online service that can convert from ico to png and used it to convert the file. |
10 | SC8 | Click generate on the account edit page. | A good password should be displayed in the password field. | No button created to click on. | The button needs to be created and then generate a random password. |
11 | SC9 | Click update master password then enter a new password and click save. | The password in the database should be updated. | The password in the database is updated. | Updated the login page so that it could be recused. |
12 | SC10 | Load the edit account page then click the show button. | The password should be hidden with * at first then revealed. | The password is hidden with * at first then revealed. | The button was not correctly linked so it did not work at first. |
User Feedback
Tester | Q1. What one thing did you like about the application the most? | Q2. What one thing did you find annoying about the application the most? | Q3. How easy was it to learn to use the application hard [1-5] easy? | Q4. Try to make the application crash. If you were able to break the application please list what you were able to break. | Q5. How would you rate the alignment and hierarchy of the application bad [1-5] good? | Q6. How would you rate the contrast and proximity of the application bad [1-5] good? |
Kat | The application was simple. | The application looked really boring. | 5 | I could not make it crash. | 5 | 3 |
Elly | The fact that I could not delete an account only archive it. | It didn't have icons. I thought you said it would have the icons of the site. | 4 | No crash. | 5 | 4 |
Sandra | Simple | I wanted to create 2 accounts for the same site but it saved over the existing account. This is a big problem. | 4 | All good | 5 | 3 |
Evaluation
Criteria | Evaluation | Recommendation |
SC1 | There is a master password and it can be updated. See test 1, 2 & 11. This criteria has been passed successfully. | The security on the database needs to be improved. It would be good if this password was used to enrypt the database in the future. |
SC2 | As you can see in tests 3 & 4 this criteria has been completed successfully. | It would be nice if more information could be stored and more validation for the fields. |
SC3 | As you can see in tests 5 this criteria has been partially completed. Unfortunately to fix the bug the entire database needs to be changed. When designing the database I made the name the primary key which was wrong since people may want to change the name. | Add a new primary key to the database that isn't the name. I would probably use an automatically incrementing integer that isn't visible to users. This would make it so that the name field could be easily updated. |
SC4 | As you can see in test 6 this criteria has been completed successfully. | Make is so that you can sort the data. |
SC5 | As you can see in test 7 this criteria has been completed successfully. | |
SC6 | As you can see in test 8 this criteria has been completed successfully. | |
SC7 | As you can see in test 9 this criteria failed. Godot can download the images but Godot cannot show icon files so this criteria was never possible. More research should have been done at the start of the project to avoid this mistake. | Use an online service to convert ico files to png. I am sure this is possible but it is beyond the scope of this current project. |
SC8 | As you can see in test 10 this criteria failed. I forgot to design this feature and build it. | A button should be added that will generate random password. |
SC9 | As you can see in test 11 this criteria has been completed successfully. | |
SC10 | As you can see in test 11 this criteria has been completed successfully. | |
SC11 | The application is easy to use and impossible to crash (see feedback, Q3 & Q4). The only major issue is when the name is updated for an existing record. See SC3. That being said at the moment while it works it would be nice if it looked better and was more reactive to the screen size changing. | Make the application look better so that it is more pleasing to the eye. |
SC11 | The application has done well meeting this criteria. (see feedback, Q5 & Q6) | Additional feedback should be collected to find out how to improve the contrast and proximity. |
Bibliography
Use APA which is built into Office & Google Docs.
TBD
Password DB Example - Bibliography
TBD
https://www.csoonline.com/article/570931/rainbow-tables-explained-how-they-work-and-why-theyre-mostly-obsolete.html |
Password DB Example (Combined)
Introduction
The problem is that people constantly forget their passwords or write them on paper or a text file on the desktop so that they don't forget them. This can become a problem as people have more passwords for different sites and sometimes different usernames for the same site.
The key users of this system being designed to solve this problem are retired people that want a simple system that works offline.
For the initial proof of concept, a database is going to be created with a simple user interface. To make the solution work on multiple platforms Godot has been chosen to create the user interface since it can be used rapidly create cross platform user interfaces and supports multiple SQL databases. This document will explore one way to create a "Password Database" application. It will look one way to design the user interface taking usability principles into consideration as well as exploring the algorithms and security concerns. It will evaluate how well the resulting application was compared to the initial criteria. |
Mind Map
Constraints and Limitations
- Time: This project needs to be finished in 6 weeks.
- Data: This project needs to download and use fav icons from websites.
- Copyright: Apart from fav icons which are fair use all other images need to be original, licensed or in the public domain.
- Budget: $0 budget for assets and resources. The application cannot require royalty payments.
- Security: Not required for the prototype.
Success Criteria
Criteria | Description | Impact (Personal, Social, Economic) |
SC1 | A master password to access the application | Personal: There is a chance the person might forget it but it is better than other people accessing all the stored passwords. |
SC2 | Ability to add new entries. | This will need to use a database for storage. |
SC3 | Ability to update entries | This will need to use a database for storage. |
SC4 | Ability to list active entries. | This will get information from a database. Make sure that the data is sorted in a way that makes sense. |
SC5 | Ability to list archived entries. | This will get information from a database. Make sure that the data is sorted in a way that makes sense. |
SC6 | Ability to view a single entry. | The same page could be used to view information as well as edit/update information. |
SC7 | Automatically download and update favourite icons. | Social: This will require internet access. If there is an icon then don't look for one again. If there isn't one then check but don't crash the application if internet isn't working. |
SC8 | Ability to generate/recommend a good password. | It would be nice if we could generate a password that people could use based on a set of rules. |
SC9 | Ability to update the master password. | Personal/Social: It will be more secure if we can update the password if someone finds it out. |
SC10 | Passwords should be hidden but have a show button to see them or a button to copy it without seeing it. | Personal/Social: Other people might look at the computer. It would be good if it could be used in a public area. |
SC11 | Make sure that the application is learnable and has safety | Social: The application should be easy to learn and use without crashing. |
SC11 | Make sure that the application has good alignment, hierarchy, contrast and proximity. | Social: The application should look professional. |
Existing Solution(s) Analysis
Data Source Analysis
File Format
The file is a CSV file which means that the headings need to be ignored when being imported. Also, all the fields are text.
Source/Reliability
The data provided looks unreliable with one of the URLs not being formatted correctly. Validation should be used and it should be rejected as a URL. One of the usernames looks like it should be an email address but apart from providing a warning, it is possible to know what the format should be.
The passwords provided are also bad. It might be good to provide a generate or some kind of rating to encourage better passwords.
The dataset is also very small. If more data was collected then other people may want additional information that isn't shown in this data set.
Since the passwords are stored and we need to get them back we cannot use hashing. In the future it would be better to encrypt the entire database to make it more secure. SQLite does support encrypted database which might be a solution when encryption is added.
Sample Data
Name | Username | Password | URL | Comments |
Gmail | apple@gmail.com | 123abc | https://www.gmail.com/ | |
Hotmail | bannanahotmail.com | Password1 | Hot Mail | |
NetFlix | apple@gmail.com | 123abc | https://nextfix.com/ |
Data Solution
Data Flow Diagram
ER Diagram
The database only needs a single table. At the moment the name of the site is considered to be unique and the primary key. If the user wants to have 2 different accounts at the same site they can use a slightly different name (gmail1, gmail2). Active is a hidden field that the user will never be able to see and will only interact with indirectly (1 for active and 0 for archive).
Data Dictionary
Passwords:
Field Name | Type | Length | Primary Key | Required | Validation Rules |
Name | Text | 3-20 | Yes | Yes | |
Username | Text | 5-20 | Yes | ||
Password | Text | 3-50 | Yes | ||
URL | Text | 0-200 | Must be HTTP[s]:// | ||
Comment | Text | 500 | |||
Icon | Blob | ||||
Active | bool | Yes |
Sample Data
Passwords
Name | Username | Password | URL | Comment | Icon | Active |
Gmail | apple@gmail.com | 123abc | https://www.gmail.com/ | True | ||
Hotmail | bannana@hotmail.com | Password1 | https://hotmail.com/ | True | ||
NetFlix | apple@gmail.com | 123abc | https://nextfix.com/ | False |
Example SQL
- UPDATE Passwords set password = ? WHERE username = ?
- INSERT INTO Passwords(Name, Username, Password, URL, Comment, Active) VALUES (?, ?, ?, ?, ?, 1)
- UPDATE Passwords Set Active = 1 WHERE Username = ?
- UPDATE Passwords Set Active = 0 WHERE Username = ?
There is a problem with the database created. Have a look at the evaluation for the mistake.
User Interface + Data & SQL
|
SQL LOGIN: FROM Passwords The Login button will check if the user exists in the system and then go to the Account List page. |
SQL
SELECT * FROM Passwords WHERE Active = 1 ORDER BY Name
SELECT * FROM Passwords WHERE Active = 0 ORDER BY Name
UPDATE Passwords SET Active = 1 WHERE Name = ?
You can change from Active to Archive. This will change the data in the table. Active has a button that will let you edit a single account on the edit page. Archive will let you restore the account. |
|
SQL
SELECT * FROM Passwords WHERE Name = ?
UPDATE Passwords SET Active = 0 WHERE Name = ?
INSERT INTO Password (Name, Username, Password, URL, Comment, Active) VALUES (?, ?, ?, ?, ?, 1)
Validation:
The Save button will save the account. Archive will edit the account. Cancel will go back to the List Page. |
Notice that SC8 is missing from the UI Design. Labelling all the success criteria makes it easier to notice if something was missed. If it is missed from the design phase it will probably be missed from the final product as well.
Pseudocode
Login
|
4-7: Keep asking the user for a password if it is wrong.
10: Create a function to make the code more modular.
12-15: Connect to the database and see if the password is in the database.
16: If a record is returned from the database, then it means that the correct password was entered so true is returned. |
List Password
|
4: This is a method that will clear all old passwords information from the UI.
6-8: Add new headings.
10: get the data from the database.
11-14: Add the information to the UI.
16: Function to make the core easier to maintain.
18-21: connect to the database and get the information from the database about users. |
Update Password
|
3-9: Make sure that the data has been validated.
13: Function to make the core easier to maintain.
15-18: connect to the database and update the data. |
Security
Due to the nature of this project, it will not be possible to hash the passwords since they need to be displayed. This means that the only way to make the database secure would be to encrypt the entire database. Unfortunately, this is outside the scope of the current project which means that the data is not secure. Normally to improve the security passwords should be stored only after they have had salt added and then been hashed using an algorithm like MD5. The salt stops rainbow tables from working (Hill, 2021) and the MD5 algorithm is a one-way algorithm which means that hackers can only brute force the password.
That being said other security can be implemented in the system. The password can be changed, and it hasn't been hard coded. this allows users to update the password if it has been compromised. The password is hidden by default which prevents other people nearby from seeing your password. The database has been normalised which should reduce data anomalies from corrupting the database.
Since limited information is stored and it is only stored on the user's device there are no privacy laws to be concerned with. The risks are that someone will open up the database in another program and can then access all the passwords stored in the system. |
Code
|
Final Product
Evaluation
Testing
Test# | Criteria | Action/Input | Expected Outcome | Actual Outcome | Errors/resolution |
1 | SC1 | Enter the correct master password | The scene should change to the list of accounts. | The scene changed to the list of accounts. | The first time the code was run the database was not connected correctly. The code had to be updated. |
2 | SC1 | Enter the wrong master password | The password should be cleared. | The password is not cleared. | The password should be cleared if the password is wrong. |
3 | SC2 | Type in valid information to add a new account and click save. | The data should be added to the database. | The data is added to the database. | |
4 | SC2 | Type in data that is not valid and click save to add a new account. | An error should be displayed, and nothing should be saved to the database. | An error is displayed. | Initially the error was poorly formatted. Added new lines and improved the formatting. |
5 | SC3 | Edit an existing account and click save. | The data should be updated in the database. |
The data is updated in the database.
There is an issue if the name field is changed. It creates a new record. |
The database needs to be changed so that the name field is not the primary key so that the name can be updated and it doesn't create a new entry. |
6 | SC4 | Login and go to the list of account and select active. | List the active accounts from the database. | List the active accounts from the database. | |
7 | SC5 | Login and go to the list of account and select Archive. | List the archived accounts from the database. | List the archived accounts from the database. | Initially dropdown box did not trigger changing the list of accounts. Fixed. |
8 | SC6 | Click on edit next to an active account in the list of active accounts. | The information about the account should be shown. | The information about the account is shown. | |
9 | SC7 | Enter a valid URL then click save on an account. | The fav icon should be automatically downloaded from the internet and displayed. | No icon is shown. | Godot does not support the icon file format. Find an online service that can convert from ico to png and used it to convert the file. |
10 | SC8 | Click generate on the account edit page. | A good password should be displayed in the password field. | No button created to click on. | The button needs to be created and then generate a random password. |
11 | SC9 | Click update master password then enter a new password and click save. | The password in the database should be updated. | The password in the database is updated. | Updated the login page so that it could be recused. |
12 | SC10 | Load the edit account page then click the show button. | The password should be hidden with * at first then revealed. | The password is hidden with * at first then revealed. | The button was not correctly linked so it did not work at first. |
User Feedback
Tester | Q1. What one thing did you like about the application the most? | Q2. What one thing did you find annoying about the application the most? | Q3. How easy was it to learn to use the application hard [1-5] easy? | Q4. Try to make the application crash. If you were able to break the application please list what you were able to break. | Q5. How would you rate the alignment and hierarchy of the application bad [1-5] good? | Q6. How would you rate the contrast and proximity of the application bad [1-5] good? |
Kat | The application was simple. | The application looked really boring. | 5 | I could not make it crash. | 5 | 3 |
Elly | The fact that I could not delete an account only archive it. | It didn't have icons. I thought you said it would have the icons of the site. | 4 | No crash. | 5 | 4 |
Sandra | Simple | I wanted to create 2 accounts for the same site but it saved over the existing account. This is a big problem. | 4 | All good | 5 | 3 |
Evaluation
Criteria | Evaluation | Recommendation |
SC1 | There is a master password and it can be updated. See test 1, 2 & 11. This criteria has been passed successfully. | The security on the database needs to be improved. It would be good if this password was used to enrypt the database in the future. |
SC2 | As you can see in tests 3 & 4 this criteria has been completed successfully. | It would be nice if more information could be stored and more validation for the fields. |
SC3 | As you can see in tests 5 this criteria has been partially completed. Unfortunately to fix the bug the entire database needs to be changed. When designing the database I made the name the primary key which was wrong since people may want to change the name. | Add a new primary key to the database that isn't the name. I would probably use an automatically incrementing integer that isn't visible to users. This would make it so that the name field could be easily updated. |
SC4 | As you can see in test 6 this criteria has been completed successfully. | Make is so that you can sort the data. |
SC5 | As you can see in test 7 this criteria has been completed successfully. | |
SC6 | As you can see in test 8 this criteria has been completed successfully. | |
SC7 | As you can see in test 9 this criteria failed. Godot can download the images but Godot cannot show icon files so this criteria was never possible. More research should have been done at the start of the project to avoid this mistake. | Use an online service to convert ico files to png. I am sure this is possible but it is beyond the scope of this current project. |
SC8 | As you can see in test 10 this criteria failed. I forgot to design this feature and build it. | A button should be added that will generate random password. |
SC9 | As you can see in test 11 this criteria has been completed successfully. | |
SC10 | As you can see in test 11 this criteria has been completed successfully. | |
SC11 | The application is easy to use and impossible to crash (see feedback, Q3 & Q4). The only major issue is when the name is updated for an existing record. See SC3. That being said at the moment while it works it would be nice if it looked better and was more reactive to the screen size changing. | Make the application look better so that it is more pleasing to the eye. |
SC11 | The application has done well meeting this criteria. (see feedback, Q5 & Q6) | Additional feedback should be collected to find out how to improve the contrast and proximity. |
Bibliography
TBD
https://www.csoonline.com/article/570931/rainbow-tables-explained-how-they-work-and-why-theyre-mostly-obsolete.html |
Resources
Useability & Visual Communication
Useability Principle
Useability Principle | Definition | What you could look for |
---|---|---|
accessibility | ability to be used by many different people, even people with disabilities |
|
learnability | how easy a system is to learn |
|
safety | ability for users to make errors and recover from the mistake - don't confuse safety with security |
|
utility | ability of the system to provide all the functionality that users need | CAN IT DO PRESCRIBED FUNCTIONALITY?
|
effectiveness | ability of users to use the system to do the work they need to do, includes reliability | HOW WELL CAN IT DO IT?
|
Elements of Visual Communication
Design Element | Definition |
---|---|
Space | Used to support meaning or zone groups of data (i.e. space between elements). Used consistently to develop predictability |
Point | Smallest element of visual communication, can be a dot but not necessarily circular |
Colour | Choice of colour matters. Be consistent throughout application, and make sure colours chosen are compatible with each other (perhaps use a colour wheel) |
Tone | Tone is light or dark variation of any colour |
Line | A line can be a starting place, a marker or trigger to change |
Shape | Shapes can use lines (straight or curved) to develop two-dimensional zoning and the implied boundary of an object. Shapes are good for conveying structure around data. The simplest form of shapes with data is a table. Shapes could also be a circular icon to centre a user to a record button on a phone |
Texture | Texture refers to the tactile or inferred visual features of an object |
Form | Can give depth |
Proportion and scale | Ratio and size. Look for the "Golden Ratio". In mathematics, two quantities are in the golden ratio if their ratio is the same as the ratio of their sum to the larger of the two quantities |
Principles of Visual Communication
Design Principle | Definition |
---|---|
Balance | Arrangement of components of a visual communication in relation to a real or implied central axis / equilibrium / symmetry |
Contrast | Contrast refers to opposing aesthetic qualities (i.e., what you see when you compare things that are different) and can be used for to create emphasis or focal point |
Proximity | Where elements are positioned or grouped in relation to each other, perhaps 'clumping' elements near each other that have a perceived relationship (or avoiding those that don't) |
Harmony | Interpreting the proximity to make sure components as a whole provide valuable meaning and are complementary across the interface. For example, sometimes it is better to split datasets across screens for example to avoid confusion |
Alignment | Elements should 'line up', commonly used in HTML sign up forms |
Repetition | Repeated elements (such as page constructs, sections or product layouts) which helps predictability |
Hierarchy | Hierarchy refers to the 'reading order' of a design |