Skip to main content
Ctrl+K

Software Engineering

  • 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
    • 1. OOP Introduction
      • 1.1. Motivation
      • 1.2. Objects
      • 1.3. Object-Oriented Programming
      • 1.4. Creating Objects
      • 1.5. Attributes
      • 1.6. General Methods
      • 1.7. Class Attributes and Methods
    • 2. OOP Continued
      • 2.1. Motivation
      • 2.2. Inheritance
      • 2.3. Inheritance Example
      • 2.4. Super
      • 2.5. Hierarchical Inheritance
      • 2.6. Multilevel Inheritance
      • 2.7. Multiple Inheritance
      • 2.8. Multiple Inheritance Example
      • 2.9. Checking Instances
      • 2.10. Polymorphism and Duck Typing
    • 3. Special Methods
      • 3.1. Introduction
      • 3.2. Unary Special Methods
      • 3.3. Binary Special Methods
      • 3.4. Extension: Container Methods
    • 4. Data Structures Part 2
      • 4.1. Efficiency
      • 4.2. Big-O Notation
      • 4.3. Big-O and Data Structures
      • 4.4. Nodes
      • 4.5. Linked List
      • 4.6. Stack
      • 4.7. Binary Search Tree
      • 4.8. Hash Table
      • 4.9. 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
      • 1.10. Exercise: Applications
      • 1.11. Exercise: Extension
    • 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
      • 3.15. Extension: CNC Plotter
    • 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
      • 4.7. Exercise: Electrical Requirements
      • 4.8. Exercise: Wiring Diagrams
    • 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. Exercise: Sensors
      • 5.8. Signals
      • 5.9. Analog Sensors
      • 5.10. Buses
      • 5.11. I2C
      • 5.12. Exercise: I2C
      • 5.13. Processing Sensor Data
      • 5.14. Case Study: HC-SR04 Ultrasonic Sensor
      • 5.15. Exercise: HC-SR04
    • 6. Actuators
      • 6.1. Overview
      • 6.2. Electric, Hydraulic and Pneumatic Actuators
      • 6.3. Rotary Actuators
      • 6.4. Linear Actuators
      • 6.5. Exercise: Actuators
      • 6.6. Motion
      • 6.7. Exercise: Motion
      • 6.8. Communication and Control of Actuators
      • 6.9. Exercise: Wiring
    • 7. Controls
      • 7.1. Overview
      • 7.2. Open-Loop Control
      • 7.3. Exercise: Open Loop
      • 7.4. Closed Loop Control
      • 7.5. Bang-Bang Control
      • 7.6. Exercise: Bang-Bang Control
      • 7.7. PID Control
      • 7.8. PID Gains and Tuning
      • 7.9. Exercise: PID
      • 7.10. Exercise: micro:Maqueen PID
    • 8. UI/UX
      • 8.1. UI/UX in Mechatronics
      • 8.2. Exercise: Accessibility
      • 8.3. Exercise: UI Design
  • Web Part 1
    • 1. Hypertext
      • 1.1. Overview
      • 1.2. HTML
      • 1.3. Elements and Tags
      • 1.4. Body Elements
      • 1.5. Websites
    • 2. Styling
      • 2.1. Cascading Style Sheets
      • 2.2. Declarations
      • 2.3. CSS Units
      • 2.4. Box Model
      • 2.5. Changing display type
      • 2.6. Inspecting Elements
      • 2.7. Selectors
      • 2.8. Using IDs
      • 2.9. Using Classes
      • 2.10. 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 Using SQLAlchemy
      • 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.9. Arithmetic
      • 1.10. 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
    • 6. Rest APIs
      • 6.1. APIs
      • 6.2. JSON and Flask
      • 6.3. REST APIs
      • 6.4. Testing APIs with cURL
      • 6.5. Flask-RESTful
  • 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.5. Asymmetric-key Cryptography
      • 2.6. Hashing
      • 2.7. 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. Safe APIs
      • 5.6. Cross-Site Scripting (XSS)
      • 5.7. XSS and Flask Templates
      • 5.8. Cross-Site Request Forgery (CSRF)
      • 5.9. Flask-WTF
      • 5.10. User Action Control Vulnerabilities
      • 5.11. File and Side-Channel Attacks
    • 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.13. Unsupervised Learning: Clustering
      • 4.14. Extension: The K-means Clustering Algorithm
      • 4.15. Extension: Building a K-means Clustering Model
      • 4.16. 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
  • Syllabus Map
    • Year 11
      • 1. Programming Fundamentals
      • 2. The Object-Oriented Paradigm
      • 3. Programming Mechatronics
    • Year 12
      • 1. Programming for the Web
      • 2. Secure Software Architecture
      • 3. Software Automation
  • Glossary
  • Exercise Index
  • Print Edition
  • Teacher Edition
  • Changelog
  • About Us

Styling

2. Styling#

Syllabus Points Covered
Programming for the web
Designing web applications
  • Model elements that form a web development system

    • client-side (front-end) web programming

  • Investigate cascading style sheets (CSS) and its impact on the design of a web application

    • consistency of appearance

So far, we have focused on the content of our web pages. In this chapter, we will learn about styling our web pages using Cascading Style Sheets (CSS).

  • 2.1. Cascading Style Sheets
    • 2.1.1. Glossary
  • 2.2. Declarations
    • 2.2.1. Syntax
    • 2.2.2. Properties
    • 2.2.3. Inline Styling
    • 2.2.4. Cascading
    • 2.2.5. Glossary
  • 2.3. CSS Units
    • 2.3.1. Absolute Units
    • 2.3.2. Relative Units
    • 2.3.3. Glossary
  • 2.4. Box Model
    • 2.4.1. display Property
    • 2.4.2. Block Elements
    • 2.4.3. Div
    • 2.4.4. Box Model
    • 2.4.5. Inline Elements
    • 2.4.6. Glossary
  • 2.5. Changing display type
    • 2.5.1. Example: Make a Block Element
    • 2.5.2. Example: Make an Inline Element
  • 2.6. Inspecting Elements
  • 2.7. Selectors
    • 2.7.1. General Syntax
    • 2.7.2. Element Selectors
    • 2.7.3. Internal CSS
    • 2.7.4. External CSS
    • 2.7.5. Glossary
  • 2.8. Using IDs
    • 2.8.1. Element IDs
    • 2.8.2. ID Selectors
  • 2.9. Using Classes
    • 2.9.1. Element Classes
    • 2.9.2. Class Selectors
  • 2.10. Advanced Selectors
    • 2.10.1. Grouping Selector
    • 2.10.2. Descendant Selector
    • 2.10.3. Child Selector

previous

1.5. Websites

next

2.1. Cascading Style Sheets

By Stephen Tierney, Alison Wong

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