TK Study

Software Engineering › Learn step by step

Learn it step by step

One ordered sequence of everything you need to know, 426 items, one per screen. Each item gives the definition, where you will use it in the test, how to use it in an answer, and a quick self-check. Start with the exam format and command words, then follow the syllabus: Year 11, then Year 12, then diagrams and code.

Start learning

Use the big Previous and Next buttons, or the left and right arrow keys. Press K for “Know it” and R for “Review later”. Your place and marks are saved in this browser only; no account is needed. Every item is also a normal page that works without JavaScript.

Review later

  • Items you mark “Review later” are listed here (this list needs JavaScript and is kept in this browser).

Topics

1. Exam format, question types and command words

46 items ·

Start here

All 46 items in this topic
  1. Multiple choice (MC)
  2. Multi-select
  3. Drag-and-drop ordering
  4. Fill in the blanks and dropdowns
  5. Matching and tables
  6. Drawing questions (online tool)
  7. Pseudocode questions
  8. Python questions
  9. SQL questions
  10. Short-answer questions
  11. Extended response (5 to 6 marks)
  12. Identify
  13. Outline
  14. Describe
  15. Distinguish
  16. Compare
  17. Contrast
  18. Explain
  19. Discuss
  20. Analyse
  21. Assess
  22. Evaluate
  23. Justify
  24. Define
  25. Construct
  26. Apply
  27. Calculate
  28. Clarify
  29. Classify
  30. Deduce
  31. Demonstrate
  32. Examine
  33. Extract
  34. Extrapolate
  35. Interpret
  36. Investigate
  37. Predict
  38. Propose
  39. Recall
  40. Recommend
  41. Recount
  42. Summarise
  43. Synthesise
  44. Account for
  45. Critically analyse or evaluate
  46. Reading time

2. Year 11: Programming Fundamentals

69 items ·

Start this topic

All 69 items in this topic
  1. Software development steps (the order)
  2. Requirements definition
  3. Determining specifications
  4. Design
  5. Development
  6. Integration
  7. Testing and debugging
  8. Installation
  9. Maintenance
  10. Online code collaboration tools
  11. Computational thinking
  12. Algorithm
  13. Sequence
  14. Selection
  15. Iteration (repetition)
  16. Divide and conquer
  17. Backtracking
  18. Top-down design
  19. Bottom-up design
  20. Abstraction
  21. Refinement
  22. Pseudocode
  23. Flowchart
  24. Subroutine (module, subprogram, procedure)
  25. Function v procedure
  26. Parameter and argument
  27. Mainline
  28. Desk checking
  29. Peer checking
  30. Inputs, outputs and purpose of an algorithm
  31. IPO chart (Input, Process, Output)
  32. Linear search
  33. Binary search
  34. Recursion
  35. Imperative paradigm
  36. Logic paradigm
  37. Functional paradigm
  38. Binary (base 2)
  39. Decimal (base 10)
  40. Hexadecimal (base 16)
  41. Two's complement
  42. Character representation (ASCII, Unicode)
  43. Data types
  44. Integer
  45. Real (floating point)
  46. Boolean
  47. Character and string
  48. Date and time
  49. Array
  50. Multi-dimensional array
  51. Record
  52. List
  53. Tree
  54. Stack
  55. Hash table
  56. Sequential file
  57. Quality criteria for evaluating code
  58. Syntax error
  59. Logic error
  60. Runtime error
  61. Debugging tools
  62. Breakpoint
  63. Single line stepping
  64. Watch window (variable watch)
  65. Debugging output statements
  66. Boundary values
  67. Path coverage
  68. Faulty and abnormal data
  69. Code optimisation

3. Year 11: The Object-Oriented Paradigm

33 items ·

Start this topic

All 33 items in this topic
  1. Object-oriented programming (OOP)
  2. Class
  3. Object
  4. Attribute
  5. Method
  6. Constructor (__init__)
  7. Encapsulation
  8. Inheritance
  9. Generalisation
  10. Superclass and subclass
  11. Polymorphism
  12. Method overriding
  13. Message passing
  14. Procedural programming v OOP
  15. Task definition
  16. Facade pattern
  17. Agility
  18. Consistency (collaboration)
  19. Code commenting
  20. Version control
  21. Feedback
  22. Clear and uncluttered mainline
  23. One logical task per subroutine
  24. Stub
  25. Ease of maintenance
  26. Regular backup
  27. Unit testing
  28. Subsystem testing
  29. System testing
  30. Black box testing
  31. White box testing
  32. Grey box testing
  33. Quality assurance

4. Year 11: Programming Mechatronics

29 items ·

Start this topic

All 29 items in this topic
  1. Mechatronic system
  2. Microcontroller
  3. CPU (central processing unit)
  4. Instruction set
  5. Opcode
  6. Address register
  7. Data register
  8. Sensor
  9. Motion sensor
  10. Light level sensor
  11. Actuator
  12. Hydraulic actuator
  13. End effector (manipulator)
  14. Robotic gripper
  15. Diagnostic data
  16. Optimisation data
  17. Degrees of freedom
  18. Motion constraints
  19. Subsystem (combination of sensors, actuators and effectors)
  20. Power, battery and material requirements
  21. Wiring diagram
  22. Specialist requirements for people with disability
  23. Open-loop control
  24. Closed-loop control
  25. Autonomous control
  26. Control algorithm pattern (line follower)
  27. Simulation and prototype
  28. Unit tests for control algorithms
  29. User interface for a mechatronic system

5. Year 12: Secure Software Architecture

57 items ·

Start this topic

All 57 items in this topic
  1. Secure software
  2. Data protection
  3. Cyber attack
  4. Vulnerability
  5. Capabilities and experience of end users
  6. Confidentiality
  7. Integrity
  8. Availability
  9. Authentication
  10. Authorisation
  11. Accountability
  12. Privacy
  13. Regulatory compliance
  14. Security by design
  15. Cryptography
  16. Sandboxing
  17. Privacy by design
  18. Proactive not reactive
  19. Embed privacy into design
  20. Respect for user privacy
  21. Determining vulnerabilities
  22. Hardening systems
  23. Handling breaches
  24. Business continuity
  25. Disaster recovery
  26. Code review
  27. Static application security testing (SAST)
  28. Dynamic application security testing (DAST)
  29. Vulnerability assessment
  30. Penetration testing
  31. Defensive data input handling
  32. Input validation
  33. Sanitisation
  34. Error handling
  35. Application programming interface (API)
  36. Excessive data exposure
  37. Memory management
  38. Session management
  39. Exception management
  40. Broken authentication and session management
  41. Cross-site scripting (XSS)
  42. Cross-site request forgery (CSRF)
  43. Invalid forwarding and redirecting
  44. Race condition
  45. File attacks
  46. Side channel attack
  47. Benefits of collaboration (secure development)
  48. Benefits to an enterprise of secure development
  49. Social, ethical and legal issues
  50. Employment (impact)
  51. Copyright
  52. Intellectual property
  53. Digital disruption
  54. Programmed backup
  55. Software development steps for secure code (order)
  56. SQL injection
  57. General Data Protection Regulation (GDPR)

6. Year 12: Programming for the Web

59 items ·

Start this topic

All 59 items in this topic
  1. Interactive website
  2. E-commerce
  3. Progressive web app (PWA)
  4. Data packet
  5. IP address and IPv4
  6. Domain name system (DNS)
  7. HTTP and HTTPS
  8. TCP/IP
  9. FTP and SFTP
  10. SSL/TLS certificate
  11. IMAP, POP3 and SMTP
  12. Port
  13. Encryption algorithm
  14. Encryption key
  15. Plain text and cipher text
  16. Symmetric encryption
  17. Asymmetric encryption
  18. Hash value
  19. Digital signature
  20. Authentication and authorisation (web)
  21. Big data
  22. Data mining
  23. Metadata
  24. Streaming service management
  25. W3C and WAI
  26. Client-side (front-end) programming
  27. Server-side (back-end) programming
  28. SQL and non-SQL databases
  29. Web browser and developer (dev) tools
  30. Cascading style sheets (CSS)
  31. CSS selectors (id v class)
  32. CSS maintenance tools
  33. Code libraries and frameworks (front end)
  34. Open-source software
  35. Load times
  36. Minification
  37. Lazy loading
  38. Caching
  39. Content delivery network (CDN)
  40. Web content management system (CMS)
  41. Contribution of back-end development
  42. Back-end process for a web request
  43. Web server software
  44. Web framework
  45. Collaboration of front-end and back-end developers
  46. Shell commands (mkdir, cd, touch, cp, rm, cat, grep)
  47. SQL SELECT
  48. SQL WHERE
  49. SQL ORDER BY
  50. SQL GROUP BY
  51. SQL aggregate functions (COUNT, SUM, AVG)
  52. SQL JOIN
  53. SQL alias (AS)
  54. SQL constraints
  55. Primary key and foreign key
  56. Object-relational mapping (ORM)
  57. Service worker
  58. Web app manifest
  59. CRUD

7. Year 12: Software Automation

35 items ·

Start this topic

All 35 items in this topic
  1. Machine learning (ML)
  2. Artificial intelligence (AI)
  3. Distinguishing AI and ML
  4. DevOps
  5. Robotic process automation (RPA)
  6. Business process automation (BPA)
  7. Supervised learning
  8. Unsupervised learning
  9. Semi-supervised learning
  10. Reinforcement learning
  11. Training data and test data
  12. Data analysis and forecasting
  13. Virtual personal assistant
  14. Image recognition
  15. Decision tree
  16. Neural network
  17. Linear regression
  18. Polynomial regression
  19. Logistic regression
  20. K-nearest neighbour (KNN)
  21. OOP for ML programming
  22. Neural network code (predict)
  23. Impact of automation
  24. Safety of workers
  25. People with disability
  26. Nature and skills of employment
  27. Production efficiency, waste and the environment
  28. Economy and distribution of wealth
  29. Patterns in human behaviour
  30. Bias (human and dataset)
  31. MLOps
  32. MLOps design stage
  33. MLOps model development stage
  34. MLOps operations stage
  35. Neural network training and execution cycle

8. Year 12: The Software Engineering Project

47 items ·

Start this topic

All 47 items in this topic
  1. Requirements
  2. Need or opportunity
  3. Feasibility
  4. Functionality and performance requirements
  5. Boundaries
  6. Data structures and data types (defining)
  7. Brainstorming, mind-mapping and storyboards
  8. Data dictionary
  9. Code generation
  10. Direct implementation
  11. Phased implementation
  12. Parallel implementation
  13. Pilot implementation
  14. Waterfall approach
  15. Agile approach
  16. WAgile
  17. Iteration workflow
  18. Project management
  19. Gantt chart
  20. Collaboration tools
  21. Social and ethical issues in project work
  22. Communication issues
  23. Modelling tools
  24. Back-end engineering contribution
  25. Resource allocation
  26. Presenting a solution
  27. Strategies for difficulties
  28. Prototype
  29. User interface (UI) design
  30. Testing methodologies
  31. Language-dependent code optimisation
  32. Test plan
  33. Path and boundary testing
  34. Actual v expected output
  35. Feedback report
  36. Evaluating effectiveness
  37. Functional testing
  38. Acceptance testing
  39. Live data
  40. Simulated data
  41. Beta testing
  42. Volume testing
  43. Corrective maintenance
  44. Adaptive maintenance
  45. Perfective maintenance
  46. Functional requirement
  47. Driver (test driver)

9. Diagrams and modelling tools

18 items ·

Start this topic

All 18 items in this topic
  1. Data flow diagram (DFD)
  2. DFD process (circle)
  3. DFD data store
  4. DFD external entity
  5. DFD data flow (labelled arrow)
  6. Level 0 DFD (context diagram)
  7. Level 1 DFD
  8. Structure chart
  9. Structure chart data couple (empty circle)
  10. Structure chart flag (filled circle)
  11. Structure chart decision (diamond)
  12. Structure chart repetition (curved arrow)
  13. Class diagram
  14. Class diagram inheritance and multiplicity
  15. Entity relationship diagram (ERD)
  16. Storyboard
  17. Process diary (log book)
  18. Mainline and subroutines (algorithms)

10. Python, SQL, pseudocode and CSS patterns

33 items ·

Start this topic

All 33 items in this topic
  1. Pseudocode keywords
  2. Binary selection (IF THEN ELSE)
  3. Multi-way selection (CASEWHERE)
  4. Nested IF
  5. WHILE loop (pre-test)
  6. REPEAT UNTIL loop (post-test)
  7. FOR / NEXT loop (counted)
  8. Subroutine and function (pseudocode)
  9. Array sum pattern
  10. Linear search pattern
  11. Python input and output
  12. Python selection (if elif else)
  13. Python for loop and range
  14. Python while loop
  15. Python strings and slicing
  16. Python lists
  17. Python 2D list (grid)
  18. Python random numbers
  19. Python functions
  20. Global and local variables
  21. Python file handling
  22. Python modules and libraries
  23. Python classes and objects
  24. Python validation function pattern
  25. Python try / except
  26. Python sqlite3 parameterised query
  27. Python file and ML code reading (scikit-learn)
  28. SQL statement structure
  29. SQL relational and logical operators
  30. SQL calculated aggregate with GROUP BY
  31. CSS rule syntax
  32. XSS JavaScript fragment reading
  33. Shell script pattern

The sequence is the de-duplicated union of the key terms bank, the flashcards, the command words and the code and diagram patterns. A term that appears in several places is shown once, with every meaning on the same page. See also all key terms A to Z or by category and flashcards.