# Syllabus

https://senior-secondary.scsa.wa.edu.au/syllabus-and-support-materials/technologies/computer-science

## Unit 1 Content
This unit includes the knowledge, understandings and skills described below. This is the examinable content.
The unit content includes theoretical aspects (Knowledge) and practical aspects (Skills), and these are organised into two content areas:
•	Programming
•	Network communications.
### Programming
Programming skills and concepts
Knowledge
•	characters represented as numbers in binary, decimal and hexadecimal
•	program control structures
    * sequence
    * selection
    *	iteration
•	modular coding using functions, parameters and arguments
	scope of variables (Global, Local)
•	data types used in solutions, including:
	integer
	float
	string
	Boolean
•	types of operators
	arithmetic operators (+, -, *, /, % or MOD)
	relational operators (==,!=, >, <, >=, <=)
	logical operators (AND, OR, NOT)
•	identify the characteristics of the following data structures:
	one-dimensional array
Skills
•	apply, using pseudocode and a programming language, the following program control structures
	sequence
	selection
	iteration
•	use modular coding using functions, parameters and arguments
	scope of variables (Global, Local)
•	apply, using pseudocode and a programming language, data types used in solutions, including:
	integer
	float
	string
	Boolean
•	use different types of operators
	arithmetic operators (+, -, *, /, %)
	relational operators (==, !=, >, <, >=, <=)
	logical operators (AND, OR, NOT)
•	read and write complex logical expressions including Boolean operators
	AND, OR, NOT
	logical order of precedence
•	apply, using pseudocode and a programming language the following data structures:
	one-dimensional array
Good programming practice
Knowledge
•	Framework for development
	investigate
o	problem description
o	define requirements
o	development schedule
	design
o	design data structures
o	design and test algorithm
	develop
o	develop and debug code
o	unit testing and use of live data
	evaluate
o	user acceptance testing
o	developer retrospective
•	good programming practice, including:
	validate input before processing
	use of meaningful variable names
	use constants for readability and maintenance
	use of comments to explain code
	appropriate use of standard control structures
	use of appropriate indentation and white space
	one logical task per module
	meaningful names for modules
	exception handling
Skills
•	apply the framework for development
•	apply good programming practice, including:
	validate input before processing
	use of meaningful variable names
	use of constants for readability and maintenance
	use of comments to explain code
	appropriate use of standard control structures
	use of appropriate indentation and white space
	one logical task per module
	meaningful names for modules
	exception handling
Structured algorithms
Knowledge
•	benefits of using structured algorithms
	ease of development
	ease of understanding
	ease of modification
•	using pseudocode as a method for representing algorithms
•	efficient algorithm design
	use of a modular approach
	structure charts as a design tool
	use of stubs to represent incomplete modules
Skills
•	using pseudocode to represent algorithms
•	design efficient algorithms
	use of a modular approach
	structure charts as a design tool
	use of stubs to represent incomplete modules
•	use of standard algorithms
	processing of arrays, including:
o	load an array and print its contents
o	add the contents of an array of numbers
o	identify position of minimum or maximum value
	processing of sequential text files, including:
o	open for read, write and append
o	read and process data
o	write and append content
o	close
Testing
Knowledge
•	appropriate test data, including:
	data that test all the pathways through the algorithm
	data that test boundary conditions ‘at’, ‘above’ and ‘below’ values upon which decisions are based
	data where the required answer is known
	type and range checking
Skills
•	identify and select appropriate data to test an algorithm, including:
	data that test all the pathways through the algorithm
	data that test boundary conditions ‘at’, ‘above’ and ‘below’ values upon which decisions are based
	data where the required answer is known
	type and range checking
•	testing both algorithms and coded solutions with test data, such as:
	desk checking an algorithm (trace table)
	stepping through a coded solution
Error detection and debugging code
Knowledge
•	type of coding errors, including:
	syntax error
	runtime errors
	logic errors
Skills
•	debugging output statements
	additional print statements in the code for use in the debugging process
o	used to identify which sections of the code have been executed
o	used to interrogate variable contents at a particular point in the execution of a program
External modules
Knowledge
•	API (application programming interface)
	purpose of an API
	use of an API when developing software
Ethical and legal implications of software development
Knowledge
•	concepts associated with piracy and copyright, including:
	intellectual property
o	plagiarism in relation to the acknowledgement of code
o	Australian copyright laws
	software licensing

### Network Communications
Models of networking
Knowledge
•	purpose of Department of Defense Transmission Control Protocol/Internet Protocol (DoD TCP/IP model)
•	layers of DoD TCP/IP model
	application
	transport
	internet
	network
•	role of layers within the model
•	key protocols associated with layers
•	role of IP addresses
•	role of subnet masks
•	key differences between IPv4 vs IPv6
Network components
Knowledge
•	the function of networking components at different layers of TCP/IP model
	transmission media (UTP, fibre optics, wireless)
	router
	switch
	wireless access point
	firewall
Network security
•
Network performance
Knowledge
•	factors that affect network performance:
	bandwidth
	network design
	data collisions
	excess broadcast traffic
Skills
•	create network diagrams using the CISCO network diagrammatic conventions to represent network topologies for LAN, WLAN and WAN

## Unit 2 Content
This unit builds on the content covered in Unit 1.
This unit includes the knowledge, understandings and skills described below. This is the examinable content.
The unit content includes theoretical aspects (Knowledge) and practical aspects (Skills), and these are organised into two content areas:
•	Cyber security
•	Data management.
### Cyber security
Ethics and Law
Knowledge
•	role of ethical hacking in network security
	purpose (improving security)
	penetration testing
	comparison with unethical hacking
•	role of the Privacy Act 1988
•	the concept of the Australian privacy principles
•	Australian Privacy Principles in relation to keeping data secure
Network security
Knowledge
•	authentication
	characteristics of strong passwords
	organisational approach to password policies
	password policies impact on data security
	two-factor authentication
	biometrics
•	encryption
	purpose of encryption
	public vs private key encryption
Network threats
Knowledge
•	distinguish between the different methods used to compromise the security of a system:
	social engineering (phishing)
	denial of service
	back door
	IP spoofing
	SQL injection
	man-in-the-middle
	cross-site scripting
	types of malware
	physical security threats
	zero day vulnerabilities
Cryptography
Knowledge
•	purpose of cryptography
•	plain text vs cipher text
•	common ciphers
	substitution
o	rotation cipher
o	random substitution
o	polyalphabetic cipher (e.g. Vigenère)
	methods for cracking substitution ciphers
o	brute force
o	frequency analysis
Skills
•	use common ciphers

## Data management
Database management system (DBMS)
Knowledge
•	relationship between data and information
•	flat file vs relational database
•	relational database management system (RDBMS)
	role of a RDBMS in handling access to data
	independence of data from RDBMS
Core database concepts
Knowledge
•	organisation of a relational database
	entities
	attributes
	relationships:
o	one-to-one
o	one-to-many
o	many-to-many
	tables as the implementation of entities, consisting of fields and records
	hierarchical structure of data
o	field/attribute
o	record
o	table/entity
	datatypes
o	integer
o	float
o	Boolean
o	text
o	date
•	primary and foreign keys to link tables
•	composite key
•	data anomalies
	insert
	update
	delete
Data modelling
Knowledge
•	purpose of database documentation for the developers
	data dictionary
	entity relationship (ER) diagrams using crow’s foot notation
Skills
•	analyse ER diagrams written in crow’s foot notation (3 to 6 tables)
•	create accurate ER diagrams (3 to 4 tables) using crow’s foot notation
•	create a data dictionary
•	resolve many to many (M:N) relationship
Data integrity
Knowledge
•	factors influencing integrity of data, including:
	currency
	authenticity
	relevance
	accuracy
	outliers (cleaning)
•	relationship between validity and accuracy of data
Normalisation
Knowledge
•	purpose of normalising data to third normal form (3NF)
•	know the process to normalise data to 3NF
Skills
•	apply the process to normalise data to 3NF (three to four tables)
	normalise data to 1NF
	normalise data to 2NF
	normalise data to 3NF
Database creation and manipulation
Skills
•	use a RDBMS to create and manipulate a relational database with a minimum of three tables
•	use SQL to manipulate a database including:
	SELECT
	INSERT
	DELETE
	UPDATE
	ORDER BY
	inner join across two tables
	aggregate functions (COUNT, SUM, AVG, MAX, MIN)
Development issues
Knowledge
•	Ethical issues
	collecting data about individuals
	privacy concerns
	appropriate use of data
	Australian Privacy Principles applicable to the use of personally identifiable and sensitive data
•	Security issues
	keeping personal data private
	backups of organisational data
	restricting access to data
•	Legal issues
	implications of the Privacy Act 1988 for developers
