Skip to main content
Ctrl+K

Software Engineering

  • Syllabus Map
    • 1. Programming Fundamentals
    • 2. The Object-Oriented Paradigm
    • 3. Programming Mechatronics
    • 1. Programming For The Web
    • 2. Secure Software Architecture
    • 3. Software Automation
  • Python Fundamentals
    • 1. Python Basics
      • 1.1. Python
      • 1.2. Printing
      • 1.3. Variables
      • 1.4. Types of Variables
      • 1.5. Python as a calculator
      • 1.6. Naming Variables
      • 1.7. Don’t Mix and Match Variables Types
      • 1.8. Type Conversions
      • 1.9. Input
      • 1.10. String Formatting
      • 1.11. Error Messages
      • 1.12. Comments
      • 1.13. Test Your Understanding
      • 1.14. Additional Challenges
    • 2. Conditionals
      • 2.1. Booleans
      • 2.2. Comparisons
      • 2.3. And/Or
      • 2.4. If Statements
      • 2.5. If-Else Statements
      • 2.6. If-Elif-Else Statements
      • 2.7. More Complicated if-elif-else Statements
      • 2.8. Pseudocode
      • 2.9. Code Testing
      • 2.10. Test Your Understanding
      • 2.11. Additional Challenges
    • 3. Lists and Loops
      • 3.1. Lists
      • 3.2. Indexing
      • 3.3. List Operations
      • 3.4. List Joins
      • 3.5. Converting To Lists
      • 3.6. Loops
      • 3.7. While Loops
      • 3.8. Common While Loop Errors
      • 3.9. While Loops With Lists
      • 3.10. While Loops With Input
      • 3.11. While Loops With Conditionals
      • 3.12. For Loops
      • 3.13. Range
      • 3.14. For Loops With Conditionals
      • 3.15. Equivalent Loops
      • 3.16. Nested Loops
      • 3.17. Pseudocode
      • 3.18. Additional Challenges
    • 4. Modules and Functions
      • 4.1. Modules
      • 4.2. The Math Module
      • 4.3. Random Integers
      • 4.4. Random Floats and Using Probabilities
      • 4.5. Pseudorandomness
      • 4.6. Time
      • 4.7. datetime
      • 4.8. Functions
      • 4.9. Function Scope
      • 4.10. Optional Parameters (Keyword Arguments)
      • 4.11. Function Returns
      • 4.12. Custom Modules
      • 4.13. Representing Numbers in Binary
      • 4.14. Two’s Complement
      • 4.15. The Hexadecimal System
      • 4.16. ASCII
      • 4.17. Pseudocode and Flowcharts
    • 5. Data Structures
      • 5.1. Introduction to Arrays
      • 5.2. Multi-Dimensional Arrays
      • 5.3. Records
      • 5.4. Data Dictionaries
      • 5.5. Sequential Files
      • 5.6. Stacks
      • 5.7. Dictionaries
    • 6. Algorithms and Code Design
      • 6.1. Algorithms
      • 6.2. Draw a Box: Algorithm
      • 6.3. Desk Checking
      • 6.4. Draw a Box: Desk Check
      • 6.5. Draw a Box: Code
      • 6.6. Backtracking Algorithms: Maze Example
      • 6.7. Backtracking Algorithms: 8 Queens
      • 6.8. Representing and Storing Data: 8 Queens
      • 6.9. Divide and Conquer: Merge Sort
      • 6.10. Applying Divide and Conquer Algorithms
      • 6.11. Understanding Algorithms
      • 6.12. Peer Review: Tic Tac Toe (Naughts and Crosses)
      • 6.13. Developing Software: Tic Tac Toe Example
      • 6.14. Top-down and Bottom-up Design
      • 6.15. Structure Charts
      • 6.16. Online Code and Collaboration Tools
      • 6.17. Waterfall vs Agile Project Management
  • The Object-Oriented Paradigm
    • OOP Introduction
      • Motivation
      • Objects
      • Object-Oriented Programming
      • Creating Objects
      • Attributes
      • General Methods
      • Class Attributes and Methods
    • OOP Continued
      • Motivation
      • Inheritance
      • Inheritance Example
      • Super
      • Hierarchical Inheritance
      • Multilevel Inheritance
      • Multiple Inheritance
      • Multiple Inheritance Example
      • Checking Instances
      • Polymorphism and Duck Typing
    • Special Methods
      • Introduction
      • Unary Special Methods
      • Binary Special Methods
      • Extension: Container Methods
    • Data Structures Part 2
      • Efficiency
      • Big-O Notation
      • Big-O and Data Structures
      • Nodes
      • Linked List
      • Stack
      • Binary Search Tree
      • Hash Table
      • Extensions
  • Mechatronics
    • 1. Introduction
      • 1.1. Mechatronics
      • 1.2. Embedded Systems
      • 1.3. Microcontrollers
      • 1.4. History of Microcontrollers
      • 1.5. Bootloader and Firmware
      • 1.6. Interacting with the Real World
      • 1.7. Sensors
      • 1.8. Actuators
      • 1.9. Control Systems
    • 2. micro:bit
      • 2.1. Overview
      • 2.2. MicroPython
      • 2.3. MicroPython Editor
      • 2.4. Flashing
      • 2.5. LED Display - Pixels
      • 2.6. LED Display - Images
      • 2.7. Buttons
      • 2.8. Sound - Bleeps and Bloops
      • 2.9. Sound - Music
      • 2.10. Sound - Text to Speech
      • 2.11. Exercise: Light and Sound
      • 2.12. Accelerometer
      • 2.13. Magnetometer
      • 2.14. Exercise: Theremin
      • 2.15. Radio Communications
      • 2.16. Exercise: SOS
    • 3. micro:Maqueen Introduction
      • 3.1. Overview and Features
      • 3.2. Assembly Instructions
      • 3.3. Power
      • 3.4. Driving Lights
      • 3.5. RGB LEDs
      • 3.6. Exercise: Light Show
      • 3.7. Motors
      • 3.8. Sonar Distance Sensor
      • 3.9. Exercise: Rodeo
      • 3.10. Line Sensors
      • 3.11. Exercise: Line
      • 3.12. Gripper
      • 3.13. Gripper Assembly
      • 3.14. Exercise: Rescue
    • 4. Electronics
      • 4.1. Overview
      • 4.2. Electricity
      • 4.3. Power and Energy
      • 4.4. Cells and Batteries
      • 4.5. Microcontrollers and Sensors
      • 4.6. Motors
    • 5. Sensors
      • 5.1. Overview
      • 5.2. Motion and Position
      • 5.3. Light and Colour
      • 5.4. Environmental
      • 5.5. Touch and Proximity
      • 5.6. Force and Fluid Pressure
      • 5.7. Signals
      • 5.8. Analog Sensors
      • 5.9. Buses
      • 5.10. I2C
      • 5.11. Processing Sensor Data
    • 6. Actuators
      • 6.1. Overview
      • 6.2. Electric, Hydraulic and Pneumatic Actuators
      • 6.3. Rotary Actuators
      • 6.4. Linear Actuators
      • 6.5. Motion
      • 6.6. Communication and Control of Actuators
    • 7. Controls
      • 7.1. Overview
      • 7.2. Open-Loop Control
      • 7.3. Closed Loop Control
      • 7.4. Bang-Bang Control
      • 7.5. PID Control
      • 7.6. PID Gains and Tuning
      • 7.7. PID Exercises
  • Web Part 1
    • 1. Hypertext
      • 1.1. Overview
      • 1.2. HTML
      • 1.3. Elements and Tags
      • 1.4. Body Elements
    • 2. Styling
      • 2.1. Cascading Style Sheets
      • 2.2. Declarations
      • 2.3. Box Model
      • 2.4. Selectors
      • 2.5. Using IDs and Classes
      • 2.6. Advanced Selectors
    • 3. Networking
      • 3.1. Overview
      • 3.2. Internet Layer
      • 3.3. Transport Layer
      • 3.4. Application Layer
    • 4. Backend Introduction
      • 4.1. Overview
      • 4.2. HTTP
      • 4.3. Server Side Scripting
      • 4.4. Flask Intro
      • 4.5. Handling Requests
      • 4.6. Serving Static Files
    • 5. Databases and SQL
      • 5.1. Overview
      • 5.2. Select
      • 5.3. Where
      • 5.4. Order By
      • 5.5. Limit
      • 5.6. Readability
      • 5.7. Insert
      • 5.8. Update
      • 5.9. Delete
      • 5.10. Joins
      • 5.11. More Joins
      • 5.12. Group By
    • 6. Dynamic Backends
      • 6.1. Case Study: Movie Reviews
      • 6.2. Databases and Python
      • 6.3. Databases with Flask
      • 6.4. Templating
      • 6.5. Variables in URLs
      • 6.6. Forms - Part 1
      • 6.7. Forms - Part 2
      • 6.8. Extension Exercises
  • JavaScript
    • 1. Basics
      • 1.1. Overview
      • 1.2. Printing
      • 1.3. Comments
      • 1.4. Programs, Statements and Expressions
      • 1.7. Variables
      • 1.8. Arithmetic
      • 1.9. Strings
    • 2. Control Structures and Arrays
      • 2.1. Conditionals
      • 2.2. Arrays
      • 2.3. Loops
    • 3. Functions and Objects
      • 3.1. Functions
      • 3.2. Objects
  • Web Part 2
    • 1. Interactivity
      • 1.1. JavaScript
      • 1.2. JavaScript in HTML
      • 1.3. Document Object Model
      • 1.4. Window, Document and Elements
      • 1.5. Finding Elements
      • 1.6. Editing the Page and Elements
      • 1.7. Events
    • 2. User Interface and User Experience (UI/UX)
      • 2.1. Overview
      • 2.2. Responsive Web Design
      • 2.3. Front End Frameworks
      • 2.4. CSS Preprocessors
      • 2.5. Performance
    • 3. Object-Relational Mapping
      • 3.1. Overview
      • 3.2. SQLAlchemy
      • 3.3. Tutorial: ORMs in Flask
    • 4. Standards and History
      • 4.1. Standards
      • 4.2. Tools
      • 4.3. Web Browsers: Evolution and Influence
      • 4.4. Open-Source Software and the Web
      • 4.5. Content Management Systems (CMS)
      • 4.6. Front-end and Back-end Collaboration
      • 4.7. Big Data’s Impact on the Web
    • 5. Progressive Web Apps
      • 5.1. Progressive Web Apps
      • 5.2. Web App Manifest
      • 5.3. Service Workers
      • 5.4. PWA Tutorial
  • Secure Software Architecture
    • 1. Software Vulnerabilities
      • 1.1. Introduction
      • 1.2. Security Principles
      • 1.3. Benefits of Secure Software
      • 1.4. Commercial Benefits of Secure Software
      • 1.5. Impact on Society
    • 2. Cryptography
      • 2.1. Cryptography
      • 2.2. Ciphers
      • 2.3. Substitution Ciphers
      • 2.4. Symmetric-key Cryptography
      • 2.6. Asymmetric-key Cryptography
      • 2.7. Hashing
      • 2.8. Cryptographic Hash Functions
    • 3. Secure Communications
      • 3.1. Authenticity
      • 3.2. Digital Signatures
      • 3.3. Digital Certificates
      • 3.4. Certificate Authorities
      • 3.5. Secure Communication and TLS
      • 3.6. Extension: Secure Random Number Generation
    • 4. Authentication and Authorisation on the Web
      • 4.1. Introduction
      • 4.2. Password Authentication
      • 4.3. Passwords
      • 4.4. Salting Passwords
      • 4.5. Cookies
      • 4.6. Cookies in Flask
      • 4.7. Server-Side Sessions
      • 4.8. Client-Side Sessions
      • 4.9. Sessions in Flask
      • 4.10. User and role access controls
      • 4.11. Flask-Security Tutorial
    • 5. Securing the Web
      • 5.1. HTTPS
      • 5.2. HTTPS and Flask
      • 5.3. SQL Injection
      • 5.4. Parameterised Queries
      • 5.5. Cross-Site Scripting (XSS)
      • 5.6. XSS and Flask Templates
      • 5.7. Cross-Site Request Forgery (CSRF)
      • 5.8. Flask-WTF
      • 5.9. Race Conditions
    • 6. Secure Software Design
      • 6.1. Security and Privacy by Design
      • 6.2. Secure Software Stages
      • 6.3. FlixReviews
      • 6.4. Requirements
      • 6.5. Specifications
      • 6.6. Design
      • 6.7. Integration and Testing
      • 6.8. Installation and Maintenance
  • Software Automation
    • 1. Linear Regression
      • 1.1. Artificial Intelligence and Machine Learning
      • 1.2. Supervised vs Unsupervised Learning
      • 1.3. Linear Regression
      • 1.4. Measuring Error
      • 1.5. Reading in Data With Pandas
      • 1.6. Scatter Plots
      • 1.7. Visualising Data
      • 1.8. Fitting a Linear Regression Model
      • 1.9. Line Plots
      • 1.10. Plotting Functions and Visualising Models
      • 1.11. Making Predictions
      • 1.12. Measuring Error Using the MSE
      • 1.13. Extension: Fitting The Model
      • 1.14. Multiple Linear Regression
    • 2. Polynomial and Logistic Regression
      • 2.1. Polynomial and Logistic Regression
      • 2.2. Polynomial Regression
      • 2.3. The Relationship Between Linear Regression and Polynomial Regression
      • 2.4. Building a Polynomial Regression Model
      • 2.5. Extension: Selecting The Polynomial Degree
      • 2.6. Logistic Regression
      • 2.7. Measuring Error
      • 2.8. Building a Logistic Regression Model
      • 2.9. Predicting With A Logistic Regression Model
      • 2.10. Extension: Further Classification Metrics
      • 2.11. Extension: Multiple Logistic Regression
    • 3. Decision Trees
      • 3.1. Decision Trees
      • 3.2. Building a Classification Tree
      • 3.3. Classifying With a Classification Tree
      • 3.4. Node Impurity and Tree Height
      • 3.5. A Semi-Supervised Model
      • 3.6. Random Forests
      • 3.7. Extension: Building a Classification Tree
      • 3.8. Extension: Interpreting The Output Graph
      • 3.9. Extension: Predicting With a Classification Tree
      • 3.10. Building a Regression Tree
      • 3.11. Predicting With a Regression Tree
      • 3.12. Extension: Building and Predicting With A Regression Tree
      • 3.13. Semi-Supervised Learning and Random Forests
      • 3.14. Interpreting Decision Trees
    • 4. K-Nearest Neighbours and K-Means Clustering
      • 4.1. K-Nearest Neighbours and K-Means Clustering
      • 4.2. Distance and Similarity
      • 4.3. Extension: The Problem With Distance Similarity
      • 4.4. KNN Regression 1D
      • 4.5. Visualising KNN Regression 1D (k = 1)
      • 4.6. Extension: Visualising KNN Regression 1D (k = 2)
      • 4.7. KNN Regression 2D
      • 4.8. Extension: Building a KNN Regression Model
      • 4.9. Extension: Selecting The Value of k
      • 4.10. KNN Classification
      • 4.11. Extension: Image Data
      • 4.12. Extension: Building a KNN Classification Model
      • 4.14. Unsupervised Learning: Clustering
      • 4.15. Extension: The K-means Clustering Algorithm
      • 4.16. Extension: Building a K-means Clustering Model
      • 4.17. Extension: Text Data
    • 5. Neural Networks
      • 5.1. Deep Learning
      • 5.2. Neural Networks
      • 5.3. RGB to Hue and Saturation
      • 5.4. Information Flow: Making a Prediction
      • 5.5. Calculating Errors
      • 5.6. Training a Neural Network
      • 5.7. Building a Neural Network for Regression
      • 5.8. Problem and Model Analysis
      • 5.9. Neural Networks for Classification
      • 5.10. Building a Neural Network For Classification
      • 5.11. More Advanced Neural Networks
    • 6. Reinforcement Learning
      • 6.1. Reinforcement Learning
    • 7. Design, Applications and Impact
      • 7.1. Types Of Machine Learning Summary
      • 7.2. Exercise: Applications of Machine Learning Algorithms
      • 7.3. ML in DevOPS, RPA and BPA
      • 7.4. MLOps
      • 7.5. Bias in AI
      • 7.6. How Cultural Protocols and Belief Systems Impact AI
      • 7.7. How Patterns in Human Behaviour Influence ML and AI Software Development
      • 7.8. The Impacts of Automation on the Individual, Society and the Environment
  • About Us
  • Teacher Edition
  • Changelog

micro:Maqueen Introduction

3. micro:Maqueen Introduction#

  • 3.1. Overview and Features
    • 3.1.1. Features
    • 3.1.2. Mechanic Expansion
  • 3.2. Assembly Instructions
    • 3.2.1. In the Box
    • 3.2.2. Unboxing and Assembly
    • 3.2.3. Summary
  • 3.3. Power
    • 3.3.1. Batteries
    • 3.3.2. Power Switch
  • 3.4. Driving Lights
    • 3.4.1. Digital Write
    • 3.4.2. Controlling LEDs
  • 3.5. RGB LEDs
    • 3.5.1. WS2812
    • 3.5.2. Initialisation
    • 3.5.3. Setting Colours
    • 3.5.4. Showing Colours
  • 3.6. Exercise: Light Show
  • 3.7. Motors
    • 3.7.1. Driving the Motors
  • 3.8. Sonar Distance Sensor
    • 3.8.1. Reading the Distance
  • 3.9. Exercise: Rodeo
  • 3.10. Line Sensors
    • 3.10.1. Digital Read
    • 3.10.2. Reading Sensors
    • 3.10.3. Line LEDs
    • 3.10.4. Sensor Calibration
  • 3.11. Exercise: Line
  • 3.12. Gripper
    • 3.12.1. Gripper Control
  • 3.13. Gripper Assembly
  • 3.14. Exercise: Rescue

previous

2.16. Exercise: SOS

next

3.1. Overview and Features

By Alison Wong, Stephen Tierney

Software Engineering - Stage 6 by Alison Wong and Stephen Tierney of Wattle Education is marked with CC0 1.0 Universal