Software Engineering
Please check the current students website (Find a unit of study) for uptodate information on units of study including availability.
For a standard enrolment plan for Software Engineering visit CUSP.
Unit outlines will be available through Find a unit outline.
Unit of study  Credit points  A: Assumed knowledge P: Prerequisites C: Corequisites N: Prohibition  Session 

Software Engineering Stream Combined Degrees 

To qualify for the Bachelor of Engineering Honours component in the combined degree, students must complete the following:  
(a) 42 credit points from the Engineering Core Table, consisting of:  
(i) 18 credit points of Engineering Foundation units  
(ii) 24 credit points of Project units  
(iii) The requirements of the Professional Engagement Program  
(b) 102 credit points from the Software Engineering Stream table, consisting of:  
(i) 96 credit points of Stream Core units  
(ii) 6 credit points of Stream Elective units  
Stream Core units 

ELEC1601 Introduction to Computer Systems 
6  A HSC Mathematics extension 1 or 2 
Semester 2 
INFO1113 ObjectOriented Programming 
6  P INFO1110 OR INFO1910 OR ENGG1810 N INFO1103 OR INFO1105 OR INFO1905 
Semester 1 Semester 2 
COMP2017 Systems Programming 
6  P INFO1113 OR INFO1105 OR INFO1905 OR INFO1103 C COMP2123 OR COMP2823 OR INFO1105 OR INFO1905 N COMP2129 OR COMP9017 OR COMP9129 
Semester 1 
COMP2123 Data Structures and Algorithms 
6  P INFO1110 OR INFO1910 OR INFO1113 OR DATA1002 OR DATA1902 OR INFO1103 OR INFO1903 N INFO1105 OR INFO1905 OR COMP2823 
Semester 1 
ISYS2110 Analysis and Design of Web Info Systems 
6  P INFO1113 OR INFO1103 OR INFO1105 OR INFO1905 N INFO2110 
Semester 1 
ISYS2120 Data and Information Management 
6  A Programming skills P INFO1113 OR INFO1103 OR INFO1105 OR INFO1905 OR INFO1003 OR INFO1903 OR DECO1012 N INFO2120 OR INFO2820 OR COMP5138 
Semester 2 
MATH2069 Discrete Mathematics and Graph Theory 
6  P 6 credit points of MATH1XXX except (MATH1XX5 or MATH1111) N MATH2011 or MATH2009 or MATH2969 
Semester 1 
SOFT2201 Software Construction and Design 1 
6  P INFO1113 OR INFO1103 OR INFO1105 OR INFO1905 N INFO3220 OR COMP9201 
Semester 2 
SOFT2412 Agile Software Development Practices 
6  P INFO1113 OR INFO1103 OR INFO1105 OR INFO1905 N COMP9412 
Semester 2 
ELEC3609 Internet Software Platforms 
6  P (INFO1103 OR INFO1110 OR INFO1910) AND (INFO2110 OR ISYS2110) AND (INFO2120 OR INFO2820 OR ISYS2120) N EBUS4001 
Semester 2 
INFO3616 Principles of Security and Security Eng 
6  A (INFO1110 OR INFO1910) AND INFO1112 AND INFO1113 AND MATH1064. Knowledge equivalent to the above units is assumed. This means good programming skills in Python or a Crelated language, basic networking knowledge, and skills from discrete mathematics. A technical orientation is absolutely required, especially capacity to become familiar with new technology without explicit supervision N ELEC5616 OR INFO2315 OR CSEC3616 
Semester 2 
SOFT3202 Software Construction and Design 2 
6  P SOFT2201 N INFO3220 
Semester 1 
SOFT3888 Software Development Project 
6  A SOFT3202 P [18CP 2000level or above units from SOFT or COMP or INFO] N SOFT3413 
Semester 2 
COMP5348 Enterprise Scale Software Architecture This unit of study is not available in 2022 
6  A Experience with software development as covered in SOFT2412 or COMP9103 and also COMP2123 OR COMP2823 OR INFO1105 OR INFO1905 (or equivalent UoS from different institutions). 
Semester 1 
ELEC5618 Software Quality Engineering 
6  A Writing programs with multiple functions or methods in multiple files; design of complex data structures and combination in non trivial algorithms; use of an integrated development environment; software version control systems 
Semester 1 
ELEC5619 Object Oriented Application Frameworks 
6  A Java programming, and some web development experience are essential. Databases strongly recommended 
Semester 2 
Stream Elective units 

COMP3027 Algorithm Design 
6  A MATH1004 OR MATH1904 OR MATH1064 P COMP2123 OR COMP2823 OR INFO1105 OR INFO1905 N COMP2007 OR COMP2907 OR COMP3927 
Semester 1 
COMP3109 Programming Languages and Paradigms 
6  P (COMP2017 or COMP2129) and (COMP2022 or COMP2922) 
Semester 2 
COMP3221 Distributed Systems 
6  P (INFO1105 OR INFO1905) OR ((INFO1103 OR INFO1113) AND (COMP2123 OR COMP2823)) N COMP2121 
Semester 1 
COMP3308 Introduction to Artificial Intelligence 
6  A Algorithms. Programming skills (e.g. Java, Python, C, C++, Matlab) N COMP3608 
Semester 1 
COMP3419 Graphics and Multimedia 
6  A Programming skills P COMP2123 OR COMP2823 OR INFO1105 OR INFO1905 
Semester 2 
COMP3520 Operating Systems Internals 
6  P (COMP2017 OR COMP2129) AND (COMP2123 OR COMP2823 OR INFO1105 OR INFO1905) 
Semester 2 
COMP3530 Discrete Optimization 
6  P COMP2123 OR COMP2823 OR COMP2007 OR COMP2907 
Semester 2 
COMP3608 Introduction to Artificial Intelligence (Adv) 
6  A Algorithms. Programming skills (e.g. Java, Python, C, C++, Matlab) P Distinctionlevel results in at least one 2000 level COMP or MATH or SOFT unit N COMP3308 COMP3308 and COMP3608 share the same lectures, but have different tutorials and assessment (the same type but more challenging). 
Semester 1 
COMP3927 Algorithm Design (Adv) 
6  A MATH1004 OR MATH1904 OR MATH1064 P Distinction level results in (COMP2123 OR COMP2823 OR INFO1105 OR INFO1905) N COMP2007 OR COMP2907 OR COMP3027 
Semester 1 
DATA3404 Scalable Data Management 
6  A This unit of study assumes that students have previous knowledge of database structures and of SQL. The prerequisite material is covered in DATA2001 or ISYS2120. Familiarity with a programming language (e.g. Java or C) is also expected P DATA2001 OR DATA2901 OR ISYS2120 OR INFO2120 OR INFO2820 N INFO3504 OR INFO3404 
Semester 1 
DATA3406 HumanintheLoop Data Analytics 
6  A Basic statistics, database management, and programming P (DATA2001 OR DATA2901) AND (DATA2002 OR DATA2902) 
Semester 2 
ELEC3104 Engineering Electromagnetics 
6  A Differential calculus, integral calculus, vector integral calculus; electrical circuit theory and analysis using lumped elements; fundamental electromagnetic laws and their use in the calculation of static fields 
Semester 1 
ELEC3203 Electricity Networks 
6  A This unit of study assumes a competence in 1000 level MATH (in particular, the ability to work with complex numbers), in elementary circuit theory and in basic electromagnetics 
Semester 1 
ELEC3204 Power Electronics and Applications 
6  A 1. Differential equations, linear algebra, complex variables, analysis of linear circuits. 2. Fourier theory applied to periodic and nonperiodic signals. 3. Software such as MATLAB to perform signal analysis and filter design. 4. Familiarity with the use of basic laboratory equipment such as oscilloscope, function generator, power supply, etc. 5. Basic electric circuit theory and analysis P ELEC2104 
Semester 1 
ELEC3206 Electrical Energy Conversion Systems 
6  A Following concepts are assumed knowledge for this unit of study: familiarity with circuit theory, electronic devices, ac power, capacitors and inductors, and electric circuits such as threephase circuits and circuits with switches, the use of basic laboratory equipment such as oscilloscope and power supply P ELEC3203 
Semester 2 
ELEC3304 Control 
6  A Specifically the following concepts are assumed knowledge for this unit: familiarity with basic Algebra, Differential and Integral Calculus, Physics; solution of linear differential equations, Matrix Theory, eigenvalues and eigenvectors; linear electrical circuits, ideal opamps; continuous linear timeinvariant systems and their time and frequency domain representations, Laplace transform, Fourier transform P ELEC2302 AND (MATH2061 OR MATH2067 OR MATH2021 OR MATH2961 OR AMME2000) N AMME3500 
Semester 2 
ELEC3305 Digital Signal Processing 
6  A Familiarity with basic Algebra, Differential and Integral Calculus, continuous linear timeinvariant systems and their time and frequency domain representations, Fourier transform, sampling of continuous time signals 
Semester 1 
ELEC3404 Electronic Circuit Design 
6  A A background in basic electronics and circuit theory is assumed 
Semester 1 
ELEC3405 Communications Electronics and Photonics 
6  A ELEC2104. A background in basic electronics and circuit theory is assumed 
Semester 2 
ELEC3505 Communications 
6  P ELEC2302. Fourier transform, fundamental in signals and systems theory, convolution, and similar techniques 
Semester 1 
ELEC3506 Data Communications and the Internet 
6  Semester 2 

ELEC3607 Embedded Systems 
6  A ELEC1601 AND ELEC2602. Logic operations, theorems and Boolean algebra, data representation, number operations (binary, hex, integers and floating point), combinational logic analysis and synthesis, sequential logic, registers, counters, bus systems, state machines, simple CAD tools for logic design, basic computer organisation, the CPU, peripheral devices, software organisation, machine language, assembly language, operating systems, data communications and computer networks P ELEC1601 AND ELEC2602 
Semester 1 
ELEC3608 Computer Architecture 
6  A ELEC3607. Knowledge of microprocessor systems (embedded systems architecture, design methodology, interfacing and programming) is required P ELEC2602 
Semester 2 
ELEC3610 EBusiness Analysis and Design 
6  N EBUS3003 
Semester 1 
ELEC3612 Pattern Recognition and Machine Intelligence 
6  A 1st year mathematics and 1st year Software Engineering/Electrical Engineering. Linear Algebra, Basic Programming skill P MATH1002 or MATH1005 
Semester 1 
ELEC3702 Management for Engineers 
6  N ENGG3005 or MECH3661 
Semester 2 
ELEC3802 Fundamentals of Biomedical Engineering This unit of study is not available in 2022 
6  A ELEC2004 or ELEC2104 A knowledge of basic electrical engineering is required: Ohm's law, Thevenin and Nortons' theorems, basic circuit theory involving linear resistors, capacitors and inductors, a basic knowledge of bipolar and field effect transistor theory, simplified theoretical mechanism of operation of transformers. 
Semester 1 
ELEC4505 Digital Communication Systems 
6  P ELEC3505 
Semester 1 
ELEC5101 Antennas and Propagation 
6  Semester 2 

ELEC5203 Topics in Power Engineering This unit of study is not available in 2022 
6  A Competence with linear algebra, differential calculus, numerical methods and Matlab; basic programming skills (Python or Matlab); familiarity with basic physics 
Semester 2 
ELEC5204 Power Systems Analysis and Protection 
6  A (ELEC3203 OR ELEC9203 OR ELEC5732) AND (ELEC3206 OR ELEC9206 OR ELEC5734). The unit assumes basic knowledge of circuits, familiarity with basic mathematics, competence with basic circuit theory and an understanding of three phase systems, transformers, transmission lines and associated modeling and operation of such equipment 
Semester 1 
ELEC5205 High Voltage Engineering This unit of study is not available in 2022 
6  A The following previous knowledge is assumed for this unit. Circuit analysis techniques, electricity networks, power system fundamentals. P (ELEC3203 OR ELEC9203 OR ELEC5732) AND (ELEC3206 OR ELEC9206 OR ELEC5734) 
Semester 2 
ELEC5206 Sustainable Energy Systems 
6  A A background in power electronics converters and control theory such as that covered in ELEC3204/9204 and ELEC3304/9304 is assumed 
Semester 2 
ELEC5207 Advanced Power Conversion Technologies 
6  A ELEC3204 
Semester 2 
ELEC5208 Intelligent Electricity Networks 
6  A Fundamentals of Electricity Networks, Control Systems and Telecommunications 
Semester 1 
ELEC5211 Power System Dynamics and Control 
6  A ELEC3203 OR ELEC9203 OR ELEC5732. The assumed knowledge for learning this UoS is a deep understanding on circuit analysis and its applications in power system steady state analysis 
Semester 1 
ELEC5212 Power System Planning and Markets 
6  A ELEC3203 OR ELEC9203 OR ELEC5732. The assumed knowledge for learning this UoS is power system steady state analysis 
Semester 2 
ELEC5213 Engineering Optimisation 
6  A Linear algebra, differential calculus, and numerical methods. Competency at programming in a highlevel language (such as Matlab or Python) 
Semester 1 
ELEC5304 Intelligent Visual Signal Understanding 
6  A Mathematics (e.g. probability and linear algebra) and programming skills (e.g. Matlab/Java/Python/C++) 
Semester 1 
ELEC5305 Acoustics, Speech and Signal Processing 
6  A (ELEC2302 OR ELEC9302) AND (ELEC3305 OR ELEC9305). Linear algebra, fundamental concepts of signals and systems as covered in ELEC2302/ELEC9302, fundamental concepts of digital signal processing as covered in ELEC3305/9305. It would be unwise to attempt this unit without the assumed knowledge if you are not sure, please contact the instructor 
Semester 2 
ELEC5306 Video Intelligence and Compression 
6  A Basic understanding of digital signal processing (filtering, DFT) and programming skills (e.g. Matlab/Java/Python/C++) 
Semester 1 
ELEC5307 Advanced Signal Processing with Deep Learning 
6  A Mathematics (e.g., probability and linear algebra) and programming skills (e.g. Matlab/Java/Python/C++) 
Semester 2 
ELEC5308 Intelligent Information Engineering Practice 
6  A Students must have a good understanding of Linear algebra and basic mathematics, Basic Programming skills in C, Python or Matlab 
Semester 2 
ELEC5507 Error Control Coding 
6  A Fundamental mathematics including probability theory and linear algebra. Basic knowledge on digital communications. Basic MATLAB programming skills is desired 
Semester 1 
ELEC5508 Wireless Engineering 
6  A Basic knowledge in probability and statistics, analog and digital communications, error probability calculation in communications channels, and telecommunications network 
Semester 2 
ELEC5509 Mobile Networks 
6  A ELEC3505 AND ELEC3506. Basically, students need to know the concepts of data communications and mobile communications, which could be gained in one the following units of study: ELEC3505 Communications, ELEC3506 Data Communications and the Internet, or similar units. If you are not sure, please contact the instructor 
Semester 1 
ELEC5510 Satellite Communication Systems 
6  A Knowledge of error probabilities, analog and digital modulation techniques and error performance evaluation studied in ELEC3505 Communications and ELEC4505 Digital Communication Systems, is assumed 
Semester 2 
ELEC5511 Optical Communication Systems 
6  A (ELEC3405 OR ELEC9405) AND (ELEC3505 OR ELEC9505). Basic knowledge of communications, electronics and photonics 
Semester 1 
ELEC5512 Optical Networks 
6  A Knowledge of digital communications, wave propagation, and fundamental optics 
Semester 2 
ELEC5514 IoT Wireless Sensing and Networking 
6  A ELEC3305 AND ELEC3506 AND ELEC3607 AND ELEC5508 
Semester 2 
ELEC5516 Electrical and Optical Sensor Design 
6  A Math Ext 1, fundamental concepts of signal and systems, fundamental electrical circuit theory and analysis 
Semester 1 
ELEC5517 Software Defined Networks 
6  A ELEC3506 OR ELEC9506 
Semester 2 
ELEC5518 IoT for Critical Infrastructures 
6  Semester 1 

ELEC5616 Computer and Network Security 
6  A A programming language, basic maths 
Semester 1 
ELEC5620 Model Based Software Engineering 
6  A A programming language, basic maths 
Semester 2 
ELEC5622 Signals, Software and Health 
6  A Mathematics (linear algebra and probabilities) and basic programming skills (python/matlab/C++/java) 
Semester 2 
INFO3315 HumanComputer Interaction 
6  P 6 credit points of 1000level programming units (INFO1110 or INFO1910 or INFO1113 or ENGG1810) and 12 credit points of 2000level units from BAdvComp Table A 
Semester 2 
INFO3333 Computing 3 Management 
6  P 12 credit points of 2000level units N INFO3402 
Semester 1 
INFO4444 Computing 4 Innovation 
6  A Students should have knowledge of several different aspects of computing at the 3000level P INFO3333 N INFO4990 
Semester 1 
ISYS3401 Information Technology Evaluation 
6  A MATH1005 OR MATH1905 P (INFO2110 OR ISYS2110) AND (INFO2120 OR ISYS2120) AND (ISYS2140 OR ISYS2160) 
Semester 1 
ISYS3888 Information Systems Project 
6  P (INFO2110 OR ISYS2110) AND (INFO2120 OR ISYS2120) AND (ISYS2140 OR ISYS2160) N INFO3600 OR ISYS3207 OR ISYS3400 
Semester 2 
SOFT3410 Concurrency for Software Development 
6  P COMP2017 OR COMP2129 
Semester 2 