Software Engineering
For a standard enrolment plan for Software Engineering visit CUSP.
Unit outlines will be available through Find a unit outline two weeks before the first day of teaching for 1000level and 5000level units, or one week before the first day of teaching for all other units.
Unit of study  Credit points  A: Assumed knowledge P: Prerequisites C: Corequisites N: Prohibition  Session 

Software Engineering Stream 

Completion of a stream is a requirement of the Bachelor of Engineering Honours.  
Students complete 192 credit points comprising:  
(a) 48 credit points from the Engineering Core Table, consisting of:  
(i) 18 credit points of Engineering Foundation units  
(ii) 30 credit points of Project units  
(iii) The requirements of the Professional Engagement Program  
(b) 138 credit points from the Software Engineering Stream table, consisting of:  
(i) 96 credit points of Software Stream Core units  
(ii) A maximum of 18 credit points of 1000/2000 level Software Stream Elective units  
(iii) A minimum of 24 credit points of 3000+ level Software Stream Elective units  
(c) 6 credit points of electives from 3000+ level units offered by the Faculty of Engineering, or from Table S  
The completion of a specialisation is not mandatory. If a student chooses to take a specialisation available in their stream, the specialisation can be completed within the 192 credit points described above.  
Stream Core units 

INFO1113 ObjectOriented Programming 
6  P INFO1110 OR INFO1910 OR ENGG1810 N INFO1103 OR INFO1105 OR INFO1905 
Semester 1 Semester 2 
ELEC1601 Introduction to Computer Systems 
6  A HSC Mathematics extension 1 or 2 
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 
COMP2823 Data Structures and Algorithms (Adv) 
6  P Distinction level results in (INFO1110 OR INFO1910 OR INFO1113 OR DATA1002 OR DATA1902 OR INFO1103 OR INFO1903) N INFO1105 OR INFO1905 OR COMP2123 
Semester 1 
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 
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 
Semester 2 
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 
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 
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 2021 
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 
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 
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 
Software Stream 1000/2000 Level Elective units 

COMP2022 Models of Computation 
6  A (MATH1004 OR MATH1904 OR MATH1064 OR MATH2069 OR MATH2969) AND (INFO1105 OR INFO1905 OR COMP2123 OR COMP2823) P INFO1103 OR INFO1903 OR INFO1113 N COMP2922 
Semester 2 
COMP2922 Models of Computation (Adv) 
6  A (MATH1004 OR MATH1904 OR MATH1064 OR MATH2069 OR MATH2969) AND (INFO1105 OR INFO1905 OR COMP2123 OR COMP2823) P Distinction level result in (INFO1103 OR INFO1903 OR INFO1113) N COMP2022 
Semester 2 
DATA1002 Informatics: Data and Computation 
6  N INFO1903 OR DATA1902 
Semester 2 
DATA1902 Informatics: Data and Computation (Advanced) 
6  A This unit is intended for students with ATAR at least sufficient for entry to the BSc/BAdvStudies(Advanced) stream, or for those who gained Distinction results or better, in some unit in Data Science, Mathematics, or Computer Science. Students with portfolio of highquality relevant prior work can also be admitted. N INFO1903 OR DATA1002 Note: Department permission required for enrolment 
Semester 2 
DATA2001 Data Science, Big Data and Data Variety 
6  P DATA1002 OR DATA1902 OR INFO1110 OR INFO1910 OR INFO1903 OR INFO1103 N DATA2901 
Semester 1 
DATA2901 Big Data and Data Diversity (Advanced) 
6  P 75% or above from (DATA1002 OR DATA1902 OR INFO1110 OR INFO1903 OR INFO1103) N DATA2001 
Semester 1 
INFO2150 Introduction to Health Data Science This unit of study is not available in 2021 
6  A Basic knowledge of Entity Relationship Modelling, database technology and SQL P (INFO1003 OR INFO1903 OR INFO1103 OR INFO1110 OR INFO1910 OR DATA1002 OR DATA1902) AND (DATA1001 OR MATH1005 OR MATH1905 OR MATH1015 OR BUSS1020) C DATA2001 OR DATA2901 OR ISYS2120 OR INFO2120 OR INFO2820 OR INFO1903 
Semester 2 
INFO2222 Computing 2 Usability and Security 
6  P (INFO1103 OR INFO1105 OR INFO1905 OR INFO1113) AND (INFO1111 OR INFO1711 OR ENGG1111 OR ENGD1000 OF ENGG1805) 
Semester 1 
ISYS2160 Information Systems in the Internet Age 
6  A INFO1003 OR INFO1103 OR INFO1903 OR INFO1113 N ISYS2140 
Semester 2 
ELEC2103 Simulation and Numerical Solutions in Eng 
6  A ELEC1103. Understanding of the fundamental concepts and building blocks of electrical and electronics circuits and aspects of professional project management, teamwork, and ethics. N COSC1001 or COSC1901 
Semester 2 
ELEC2104 Electronic Devices and Circuits 
6  A ELEC1103. Ohm's Law and Kirchoff's Laws; action of Current and Voltage sources; network analysis and the superposition theorem; Thevenin and Norton equivalent circuits; inductors and capacitors, transient response of RL, RC and RLC circuits; the ability to use power supplies, oscilloscopes, function generators, meters, etc. 
Semester 2 
ELEC2302 Signals and Systems 
6  A (MATH1001 OR MATH1021) AND MATH1002 AND (MATH1003 OR MATH1023). Basic knowledge of differentiation & integration, differential equations, and linear algebra. 
Semester 2 
ELEC2602 Digital Logic 
6  A ELEC1601. This unit of study assumes some knowledge of digital data representation and basic computer organisation 
Semester 1 
BUSS1030 Accounting, Business and Society 
6  N ACCT1001 or ACCT1002 or ACCT1003 or ACCT1004 or ACCT1005 Refer to the unit of study outline https://www.sydney.edu.au/units 
Semester 1 Semester 2 
MATH2061 Linear Mathematics and Vector Calculus 
6  P (MATH1X21 or MATH1011 or MATH1931 or MATH1X01 or MATH1906) and (MATH1014 or MATH1X02) and (MATH1X23 or MATH1933 or MATH1X03 or MATH1907) N MATH2961 or MATH2067 or MATH2021 or MATH2921 or MATH2022 or MATH2922 This unit of study is only available to Faculty of Engineering and Information Technologies students. 
Semester 1 
MKTG1001 Marketing Principles 
6 
The Intensive July session of this unit is only available to Study Abroad students. All other students should enrol in Semester 1 and Semester 2 sessions. 
Semester 1 Semester 2 
PHYS1001 Physics 1 (Regular) 
6  A HSC Physics or PHYS1003 or PHYS1004 or PHYS1902 or equivalent. Students who have not completed HSC Physics (or equivalent) are strongly advised to take the Physics Bridging Course (offered in February). Students are also encouraged to take (MATH1X21 or MATH1931 or MATH1X01 or MATH1906) and MATH1X02 concurrently. N PHYS1002 or PHYS1901 or EDUH1017 or PHYS1903 
Intensive July Semester 1 
PHYS1003 Physics 1 (Technological) 
6  A HSC Physics or PHYS1001 or PHYS1002 or PHYS1901 or equivalent. Students who have not completed HSC Physics (or equivalent) are strongly advised to take the Physics Bridging Course (offered in February). Students are also encouraged to take (MATH1X23 or MATH1933 or MATH1X03 or MATH1907) and MATH1X05 concurrently. C Recommended Corequisites: (MATH1003 or MATH1903) and (MATH1005 or MATH1905). N PHYS1004 or PHYS1902 or PHYS1904 It is recommended that PHYS1001 or PHYS1002 or PHYS1901 be completed before this unit 
Semester 2 
PHYS2213 Physics 2EE 
6  A (MATH1X21 or MATH1931 or MATH1X01 or MATH1906 or MATH1011) and (MATH1X02) and (MATH1X23 or MATH1933 or MATH1X03 or MATH1907 or MATH1013) and (MATH1X04 or MATH1X05) P (PHYS1001 or PHYS1901) and (PHYS1003 or PHYS1902) 
Semester 2 
Software Stream 3000+ Level 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 This unit of study is not available in 2021 
6  P COMP2017 AND COMP2022 
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 
ELEC3702 Management for Engineers 
6  N ENGG3005 or MECH3661 
Semester 2 
ELEC3802 Fundamentals of Biomedical Engineering This unit of study is not available in 2021 
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 
ELEC3803 Bioelectronics This unit of study is not available in 2021 
6  P ELEC2104 OR ELEC2602. 
Semester 2 
ELEC4505 Digital Communication Systems 
6  P ELEC3505 
Semester 1 
ELEC4714 Major Industrial Project 
24  P 36 cp of 3000 or higher level units of study N ELEC4710 OR ELEC4711 OR ELEC4712 OR ELEC4713 OR ENGG4000 Note: Department permission required for enrolment For students whose degree includes ENGG4000, ELEC4714 counts in place of this unit. Students whose degree includes the Professional Engagement Program must enrol in all PEP units. ELEC4714 will count toward the Engineering Work requirement. 
Semester 1 Semester 2 
ELEC5101 Antennas and Propagation 
6  Semester 2 

ELEC5203 Topics in Power Engineering This unit of study is not available in 2021 
6  A ELEC3203 Power Engineering and ELEC3204 Power Electronics and Drives. Familiarity with basic mathematics and physics; competence with basic circuit theory and understanding of electricity grid equipment such as transformers, transmission lines and associated modeling; and fundamentals of power electronic technologies. 
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 2021 
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 Networked Embedded Systems 
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 
ELEC5701 Technology Venture Creation This unit of study is not available in 2021 
6  N ENGG5102 
Semester 2 
INFO3315 HumanComputer Interaction 
6  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 
ISYS3402 Decision Analytics and Support Systems This unit of study is not available in 2021 
6  A Database Management AND Systems Analysis and Modelling P (ISYS2110 OR INFO2110) AND (ISYS2120 OR INFO2120) 
Semester 2 
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 (INFO1105 OR INFO1905) OR ((INFO1103 OR INFO1113) AND (COMP2123 OR COMP2823)) 
Semester 2 