Β§-Software Engineering syllabus
NSW Β· NESAβ Software Engineering
Software Engineering syllabus, dot point by dot point
Every dot point in the NSW Software Engineering syllabus, with a focused answer for each. Click any dot point for a worked explainer, past exam questions and links to related points.
Module 2: Programming for the Web
Module overview βInquiry Question 2: How can data be better visualised using a web browser?
Design and consume RESTful APIs that exchange JSON, including resource modelling, request methods and status codes
Inquiry Question 1: How are secure web applications developed?
Describe the client-server architecture of the web, including the roles of the browser, web server, application server and database
Inquiry Question 1: How are secure web applications developed?
Identify and mitigate cross-site scripting (XSS), cross-site request forgery (CSRF) and SQL injection vulnerabilities
Inquiry Question 1: How are secure web applications developed?
Design a relational database schema and write SQL statements to create tables, insert data, query with joins, and update or delete rows
Inquiry Question 2: How can data be better visualised using a web browser?
Construct front-end pages using HTML for structure and CSS for presentation, including semantic markup and responsive design
Inquiry Question 1: How are secure web applications developed?
Explain the HTTP protocol, including request methods, status codes and headers, and the role of HTTPS in securing web traffic
Inquiry Question 2: How can data be better visualised using a web browser?
Use JavaScript in the browser to manipulate the DOM, handle events and make asynchronous requests
Inquiry Question 1: How are secure web applications developed?
Implement server-side programming, including routing, handling requests, generating responses and integrating with a database
Module 1: Secure Software Architecture
Module overview βInquiry Question 1: How are secure systems designed?
Explain the role of authentication and authorisation in restricting access to a system, and identify common implementation methods including multi-factor authentication and role-based access control
Inquiry Question 1: How are secure systems designed?
Describe how the confidentiality, integrity and availability (CIA) triad is applied to the design of secure software
Inquiry Question 1: How are secure systems designed?
Compare symmetric and asymmetric encryption, and describe their roles in securing data in transit and at rest
Inquiry Question 1: How are secure systems designed?
Describe how hashing and salting protect stored passwords, and identify weaknesses in storing passwords in plain text or with reversible encryption
Inquiry Question 2: How can the security of a developed solution be evaluated?
Apply input validation, sanitisation and output encoding to defend against injection attacks
Inquiry Question 2: How can the security of a developed solution be evaluated?
Identify the OWASP Top 10 web application security risks and describe mitigations for each
Inquiry Question 2: How can the security of a developed solution be evaluated?
Describe the secure development lifecycle, including threat modelling, secure coding practices, security testing and ongoing monitoring
Module 3: Software Automation
Module overview βInquiry Question 2: How are machine learning systems used to develop solutions?
Identify the ethical implications of automation and artificial intelligence, including accountability, transparency, employment effects and the use of personal data
Inquiry Question 1: How do machine learning systems work?
Distinguish machine learning from classical programming, and define the roles of model, features, training data and predictions
Inquiry Question 2: How are machine learning systems used to develop solutions?
Describe applications of machine learning in industry, including image recognition, natural language processing, recommendation systems and predictive maintenance
Inquiry Question 1: How do machine learning systems work?
Describe the basic structure of a neural network, including neurons, layers, weights, activation functions and training by backpropagation
Inquiry Question 1: How do machine learning systems work?
Compare supervised, unsupervised and reinforcement learning, and identify a typical application of each
Inquiry Question 2: How are machine learning systems used to develop solutions?
Explain how the quality and representativeness of training data affect a model, including the risks of bias and overfitting
Module 4: Software Engineering Project
Module overview βInquiry Question 1: How are large-scale software solutions developed and managed?
Apply code review and quality practices, including peer review, style guides, linters and static analysis
Inquiry Question 1: How are large-scale software solutions developed and managed?
Set up continuous integration and deployment pipelines that build, test and release software automatically
Inquiry Question 1: How are large-scale software solutions developed and managed?
Produce technical and user-facing documentation across the software engineering lifecycle, including README files, API documentation, design documents and user manuals
Inquiry Question 1: How are large-scale software solutions developed and managed?
Use project management tools to plan, track and communicate work across a software team, including issue trackers, Kanban boards and Gantt charts
Inquiry Question 1: How are large-scale software solutions developed and managed?
Compare software development methodologies, including waterfall, agile and scrum, and identify when each is appropriate
Inquiry Question 1: How are large-scale software solutions developed and managed?
Describe testing strategies, including unit testing, integration testing, system testing and user acceptance testing
Inquiry Question 1: How are large-scale software solutions developed and managed?
Use version control to manage source code, including commits, branches, merges, pull requests and remote repositories
