Undergraduate Course List Course CodeCourse TitleUnit(s) AIST1000Introduction to Artificial Intelligence and Machine Learning1 AIST1110Introduction to Computing using Python3 AIST2010Introduction to Computer Music: From Analysis to Algorithmic Music3 AIST2601Technology, Society and Engineering Practice2 AIST2602Engineering Practicum1 AIST3010Numerical Optimization2 AIST3020Introduction to Computer Systems3 AIST3510 / SEEM3510Human-computer Interaction3 AIST4010 / ESTR4140Foundation of Applied Deep Learning* (new course in 2021-22)3 AIST4998 / ESTR4998Final Year Project I3 AIST4999 / ESTR4999Final Year Project II3 CENG2010Digital Logic Design Laboratory1 CENG2030Fundamentals of Embedded Systems3 CENG2400 / ESTR2100Embedded System Design3 CENG3410Smart Hardware Design3 CENG3420Computer Organization and Design3 CENG3430 / ESTR3100Rapid Prototyping of Digital Systems3 CENG4100Smartphones: Hardware Platform and Application Development3 CENG4120Computer-aided Design for Very Large Scale Integrated Circuits3 CENG4480Embedded System Development and Applications3 CENG4998 / ESTR4998Final Year Project I3 CENG4999 / ESTR4999Final Year Project II3 CSCI1020Hands-on Introduction to C++1 CSCI1030Hands-on Introduction to Java1 CSCI1040Hands-on Introduction to Python1 CSCI1110 Introduction to Computing Using C3 CSCI1120 / ESTR1100Introduction to Computing Using C++3 CSCI1130 / ESTR1102Introduction to Computing Using Java3 CSCI1140Programming Laboratory1 CSCI1510Computer Principles and C Programming3 CSCI1520Computer Principles and C++ Programming3 CSCI1530Computer Principles and Java Programming3 CSCI1540Fundamental Computing With C++3 CSCI1580Visual Programming3 CSCI2040Introduction to Python 2 CSCI2100 / ESTR2102 Data Structures3 CSCI2120 Introduction to Software Engineering2 CSCI2510Computer Organization3 CSCI2520Data Structures and Applications3 CSCI2720 / ESTR2106Building Web Applications3 CSCI3100Software Engineering3 CSCI3120 Compiler Construction3 CSCI3130Formal Languages and Automata Theory3 CSCI3150 / ESTR3102Introduction to Operating Systems3 CSCI3160 / ESTR3104 Design and Analysis of Algorithms3 CSCI3170Introduction to Database Systems3 CSCI3180 / ESTR3106 Principles of Programming Languages3 CSCI3190Introduction to Discrete Mathematics and Algorithms3 CSCI3220Algorithms for Bioinformatics3 CSCI3230 / ESTR3108Fundamentals of Artificial Intelligence 3 CSCI3250Computers and Society2 CSCI3251Engineering Practicum1 CSCI3260Principles of Computer Graphics3 CSCI3270Advanced Programming Laboratory2 CSCI3280Introduction to Multimedia Systems3 CSCI3290Computational Imaging and Vision3 CSCI3310Mobile Computing and Applications Development3 CSCI3320Fundamentals of Machine Learning3 CSCI4120Principles of Computer Game Software3 CSCI4130 / IERG4130Introduction to Cyber Security3 CSCI4140Open-Source Software Project Development3 CSCI4160 / ESTR4104Distributed and Parallel Computing3 CSCI4180 / ESTR4106Introduction to Cloud Computing and Storage3 CSCI4190Introduction to Social Networks3 CSCI4230Computational Learning Theory3 CSCI4250 / ESTR4122Online Algorithms for Machine Learning and Optimization* (new course in 2021-22)3 CSCI4430 / ESTR4120Data Communication and Computer Networks3 CSCI4998 / ESTR4998Final Year Project I3 CSCI4999 / ESTR4999Final Year Project II3 ENGG1110 / ESTR1002Problem Solving By Programming3 ENGG1120 / ESTR1005Linear Algebra for Engineers3 ENGG1130 / ESTR1006Multivariable Calculus for Engineers3 ENGG1310 / ESTR1003Engineering Physics: Electromagnetics, Optics and Modern Physics3 ENGG1820Engineering Internship1 ENGG2020 / ESTR2104Digital Logic and Systems3 ENGG2440 / ESTR2004Discrete Mathematics for Engineers3 ENGG2720 / ESTR2014Complex Variables for Engineers2 ENGG2740 / ESTR2016Differential Equations for Engineers2 ENGG2760 / ESTR2018Probability for Engineers2 ENGG2780 / ESTR2020Statistics for Engineers2 ENGG3802Introduction to Engineering Entrepreneurship (offered by IE Dept)1 ENGG3803Engineering Entrepreneurship Development Project (offered by IE Dept)2