Postgraduate Course Detail

CENG5030
Energy Efficient Computing
Low power consumption is an important design concern in modern computing systems. It has direct impact on the battery life of mobile electronic equipment and on the operating speed of computing devices. This course aims at introducing students the basic concepts and modern techniques in designing, modeling and evaluating energyefficient computing systems. This course will study techniques to improve energy consumption at various design levels. It will also study representative research papers to introduce the state of the art approaches to energy efficient computing.
Advisory: Students are expected to have taken ENGG2020 or ESTR2104 or CENG3420.

CENG5050
Hardware for Human Machine Interface
This course teaches topics in designing hardware for human machine interface. Principles and applications of sensors like pressure, light, sound, motion and electromagnetic transducers are introduced. Computer interfacing techniques for signal sampling, amplification, filtering, classification and interpretation are also discussed. Design examples may include Electroencephalography (EEG) signal analysis, human motion capturing, music signal interpretation and production. Functioning and control of actuators will also be studied.
Advisory: Students are expected to have taken CENG2400 or ESTR2100 or equivalent.

CENG5270
EDA for Physical Design of Digital Systems
This course aims to present the fundamental concepts and algorithms applied in Design Automation (CAD) of VLSI circuits. The scope will include various areas in Physical Design of digital systems, including circuit partitioning, FPGA technology mapping, floorplanning, placement, routing, compaction and interconnect optimization.
Prerequisite: CSCI2100 or ENGG2020 or ESTR2102 or ESTR2104

CENG5420
Computer Architecture Hardware
This course aims at introducing the fundamental theories and core techniques for speeding up the computer arithmetic operation. Topics include: signed number representation, redundant/residue number system, fast adder designs, highradix multipliers, tree/array multipliers, highradix dividers, division by convergence, floating point arithmetic, squareroot computation, CORDIC algorithm, arithmetic by table lookup, lowpower arithmetic, faulttolerant arithmetic.
Prerequisite: ENGG2020 or ESTR2104 or CENG3420 
CENG5430
Architectures and Algorithms for ParaIle Processing
This course aims at introducing the architectures and algorithms developed for parallel processing. Topics include: (I) models and complexity of parallel processing, sharedmemory algorithms, circuit modeling of parallel systems, (II) sorting and routing algorithms for 2D mesh, torus, hypercubes, and other networks; (III) coordination, data access and system robustness issues; (IV) implementation aspects on sharedmemory MIMD, messagepassing MIMD, and dataparallel SIMD machines.
Prerequisite: ENGG2020 or ESTR2104 or CENG3420 
CSCI5010
Practical Computational Geometry Algorithms
This course will discuss data structures and algorithms for solving fundamental problems in computational geometry with good theoretical guarantees. Topics covered include linesegment intersection, polygon triangulation, convex hull, linear programming, orthogonal range searching, point location, voronoi diagram, delaunay triangulation, and so on.
Prerequisite: CSCI2100 or CSCI2520 or equivalent 
CSCI5020
External Data Structures
This course will introduce worstcase efficient data structures in the external memory (EM) computation model. In this model, the space complexity is measured in the number of disk blocks, while the time complexity is measured in the number of I/Os (each transferring a block of data between the memory and the disk). Fundamental techniques of designing and analyzing EM structures will be studied, in the context of several classical problems including sorting, stabbing queries, orthogonal range searching, and so on.
Prerequisite: CSCI2100 or CSCI2520 or equivalent 
CSCI5030
Machine Learning Theory
This course first introduces fundamentals of machine learning with a large size of samples, including basic principles (maximum likelihood vs least redundancy) and typical structures (linear systems of hidden factors, mixture of local structures, and Markov temporal models), The second part of the course covers learning theories towards small sample size challenge, including major topics (model selection, learning regularization, two stage implementation, sparse learning, and automatic model selection) and three streams of efforts, namely generalization error estimation (CV, AIC, VC theory), shortest coding length (MML vs MDL) or similarly various Bayes (BIC, MAP, Laplace, marginal, and variational) , and BYY learning (BYY system, best harmony theory, YingYang alternation updating, and five action circling implementation).

CSCI5050
Bioinformatics and Computational Biology
This course introduces several core topics in bioinformatics and computational biology. Each topic will be discussed from three aspects: 1) motivation and concepts, 2) computational problems and methods, and 3) available tools and data. The topics include basics in molecular biology, highthroughput experiments and data preprocessing, sequencing and alignment, motifs and domains, ontology and functional enrichment, biological networks and data mining, secondary and tertiary structures, and other latest developments in this research area.

CSCI5070
Advanced Topics on Social Computing
This course aims to advance computational techniques used in social computing. More specifically, the course will present stateoftheart methodologies and approaches to mine social data, signals, and behaviours. The course topics include, but are not limited to: social network theory and analysis, graph mining, linkbased analysis and algorithms, web intelligence, web data mining, knowledge discovery on the web, web analytics, web information retrieval, learning to rank, ranking algorithms, relevance feedback, collaborative filtering, recommender systems, human/social computation, social games, opinion mining, sentiment analysis, social monetization, security/privacy issues related to web intelligence, question and answering, and other related topics in social computing, etc.

CSCI5080
Advanced System Security
The aim of this course is to understand advanced concepts in computer system security. Topics include kernel exploits, rootkit detection, malicious software identification and defence, computer systems forensic and investigation, forensic and data collection tools, analysis of malicious software and its implications.

CSCI5120
Advanced Topics in Database Systems
This course will introduce to students advanced topics in database systems including advanced data structures, concurrency control, deadlock resolutions, recovery schemes, distributed database systems, multimedia database indexing techniques, data mining, data on the web and network data analysis.
Prerequisite: CSCI3170
Exclusion: CSCI5705 and SEEM5010 
CSCI5150
Machine Learning Algorithms and Applications
This course introduces a dozen of machine learning algorithms and typical applications in computational finance, bioinformatics, and other big data analyses, including six topics that consist of (1) unsupervised learning algorithms for clustering analysis, local subspaces, manifold learning, and their applications in image analysis and bioinformatics; (2) arbitrage pricing theory (APT) and temporal factor analysis for finance market modelling and stream data analysis；(3) supervised learning algorithms(decision tree and deep learning) for pattern recognition, (4) learning biomedical casecontrol analyses and machine fault detection from an integrative view of description, classification, and hypothesis test；(5) algorithms of graph analysis and nonnegative matrix decomposition for learning biology networks and social computing; (6) brief introductions of other learning algorithms such as transfer learning, recommendation systems, etc.

CSCI5160
Advanced Algorithms
This course will study the design and analysis of exact and approximation algorithms using advanced techniques such as combinatorial methods, probabilistic methods, linear programming, semidefinite programming, and spectral methods.
Exclusion: ENGG5102 
CSCI5170
Theory of Computation Complexity
The course introduces some of the following topics: deterministic and nondeterministic Turing machine, time and space complexity, NPcompleteness, polynomial time hierarchy, probabilistic computation, interactive proofs, complexity of counting, concrete models such as query complexity, communication complexity, formula complexity, branching programs and circuit complexity, quantum computation, complexitybased cryptography, randomnessrelated topics such as derandomness, pseudorandomness, extractors, random walks, etc.

CSCI5210
Advanced Computer Graphics and Visualization
This course provides indepth treatment of the following advanced computer graphics and visualization topics: radiosity rendering and global illumination, procedure texturing and modelling, imagebased rendering, stereo imaging, realtime volume graphics and interactive visualization.
Prerequisite: CSCI3260 or equivalent 
CSCI5240
Combinatorial Search and Optimization with Constraints
Students will be exposed to various constraintbased combinatorial search and optimization techniques that arise in artificial intelligence, operations research, etc. Topics include, but are not limited to, local propagation, consistency algorithms, Boolean constraint solving, numerical constraint solving, linear programming, search, and their applications.

CSCI5320
Topics in Graph Algorithms
This course will discuss graph theory and graph algorithms with emphasis on the algorithmic aspects of graph theory. The course will cover classical topics such as search techniques, connectivity, colouring, matching and covering, network flows, planarity, traversability, perfect graphs, and NPcompleteness of graph problems. The course will also discuss FPT algorithms for solving graph problems.
Prerequisite: CSCI3160 
CSCI5350
Advanced Topics on Game Theory in Computer Science
This course starts with a review of the basic concepts in game theory, including pure strategy and mixed strategy Nash equilibrium. It then discusses some specific types of games, such as zerosum games and Bayesian games, and introduces other types of equilibriums including correlated equilibrium and evolutionary equilibrium. Rationalisability and the relation between knowledge and equilibrium will also be discussed. After a review of subgame perfect equilibrium and sequential equilibrium, bargaining games, implementation theory, perfect Bayesian equilibrium and trembling hand perfect equilibrium will be discussed. Finally, the relationship between the core, the stable sets, and the Shapley value in coalitional games will be discussed.
Prerequisite: CSCI2110 or ENGG2440 or ESTR2004, ENGG2040 or ENGG2430 or ESTR2002 and CSCI4220
Exclusion: CMSC5728 
CSCI5390
Advanced Topics in GPU Programming
The evolution of consumer graphics hardwares leads to the introduction of parallel, programmable GPUs (Graphics Processing Units). The strong parallel computational power of GPUs not only supports realtime and realistic rendering, but also the cost effective platform for scientific computing, such as physical simulation, numerical analysis, evolutionary computation, image processing, and computer vision, etc. This course introduces the evolution of shading language and GPU, the basic concept in GPU programming and the recent advanced usage of GPU in computer graphics and general purpose computing. Topics covered include: shader programming, procedural texture and modelling, programmable graphics pipeline, modern shading language, GPGPU (generalpurpose computing in GPU), limitations of GPU, and case studies of advanced usages of GPU.
Prerequisite: CSCI2100 or CSCI2520 or equivalent 
CSCI5420
Computer System Performance Evaluation
Computer system performance evaluation through analytical and simulation studies. Brief overview of queueing theory, computational algorithms, sequential and parallel simulation techniques. Performance evaluation in distributed resource allocation, computer interconnection architecture, multiprocessing and multithreads computation, parallel 1/O architectures, distributed database concurrency control protocols, multiple access protocols in communication network, and parallel programming models, etc. Students are expected to have knowledge in probability, stochastic processes and computer architecture.

CSCI5440
NetworkonChips for ManyCore Systems
The modern theory of cryptography studies the formal modelling and construction of computing systems that adDr.ess security concerns. This course aims to introduce the rigorous methodology that underlies the design of such systems. Topics include: * Computational foundations: Averagecase hardness in NP, oneway functions * Pseudorandom number generators and pseudorandom functions * Zeroknowledge proofs and arguments * Generic protocols for secure multiparty computation * Trapdoor permutations and publickey encryption * Blackbox separations among cryptographic primitives

CSCI5450
Randomness and Computation
This course is to study the use of randomness in theoretical computer science. We will introduce basic probability tools (e.g. random variables, expectation, moments and derivations, tail inequalities, martingales) and probabilistic methods (e.g. first moment method, second moment method, Lovasz local lemma, semirandom method). Then we will show how these tools and methods can be used to design randomized algorithms (e.g. graph algorithms, numbertheoretic algorithm, computational geometry), efficient data structures (e.g. balls and bins, hashing, load balancing), and sublinear algorithms (e.g. property testing, constant time algorithms, data streaming). We will also demonstrate how these tools and methods can be combined with other techniques, such as Markov chain and random walk (e.g. electric networks, expanders, random sampling, approximate counting), algebraic techniques (e.g. determinant method, fingerprinting, polynomial identity testing, interactive proof), and mathematical programming (e.g. linear programming, randomized rounding, semidefinite programming). Finally we study some methods of derandomization (e.g. conditional probability, kwise independence, smallbias space, pseudorandom generator).

CSCI5460
Virtual Reality
This course introduces the fundamental and advanced research topics in virtual reality (VR), including VR tools & metaphors, multisensory interactions, geometric and behavior modeling, touchenabled interfaces, realtime navigation, human factors in immersion, augmented reality systems, and internetbased VR applications. The webbased virtual reality interfaces plus 3D graphics engines build up the developing tools for testing the innovation for the advanced VR research and realtime applications.
Prerequisite: CSCI3260 or equivalent 
CSCI5530
Interactive Computer Animation and Stimulation
This course will introduce the advanced interactive animation and related physical simulation techniques, widely applicable in computer animation, interactive media and dynamic special effects. Algorithms and approaches for animation and simulation will be covered, including rigid and deformable models, particle systems, natural phenomena and materials, liquids simulation, SPH dynamics, flocking and crowd simulation, animated sketch, and physical interfaces.
Prerequisite: CSCI3260 or its equivalent 
CSCI5550
Advanced File and Storage Systems
This course aims to introduce important systemslevel research topics in the design and implementation of practical file and storage systems. Topics include: (i) storage device organization (e.g., disk drives, disk arrays, RAID, solid state drives), (ii) file system design (e.g., logstructured file systems, distributed file systems), (iii) data availability (e.g., erasure coding techniques, data integrity protection), (iv) data consistency (e.g., journaling techniques), (v) data compression (e.g., deduplication), (vi) benchmarking (e.g., I/O metrics, benchmarking tools), etc. Depending on the current research trends, the course also discusses the latest applied storage topics, especially related to scalable and dependable big data management.
Prerequisite: CSCI3150 or ESTR3102 
CSCI5560
Analysis of Boolean Functions
This course introduces various analytical tools for studying Boolean functions, and their applications in learning algorithm design complexity theory, social choice, property testing, additive combinatorics, Gaussian geometry, etc.
Prerequisite: CSCI2110 or ENGG2440 or ESTR2004 
CSCI5570
Large Scale Data Processing Systems
This course introduces contemporary systems for large scale data processing. Topics to be covered include, but are not limited to: (1) advanced database systems (including distributed, parallel, columnar, inmemory systems, etc., for both OTLP and OLAP applications); (2) NoSQL and NewSQL systems; (3) distributed data stores; (4) big data analysis systems; (5) graph processing systems; (6) stream processing systems; and (7) data visualization. Advanced algorithms for data analytics (e.g., distributed machine learning algorithms, streaming algorithms, etc.) that are implemented using the systems introduced in the course will also be discussed.

CSCI5580
Online Algorithms for Machine Learning and Optimizations
This course aims to cover topics in online learning and online optimization. Typical topics include multiarmed bandit (MAB) problems in various settings, online convex optimization (OCO) problems such as online linear regression, online classification, and certain general reinforcement learning problems. Different algorithms will be introduced to solve these problems and analysis of the performance and efficiency will be provided.
Advisory: Students are expected to have taken CSCI3160. 
CSCI6500
Seminars for M.Phil. Studies
Seminars on topics in Computer Science and Engineering to be presented by experts from academic or industry. (Only pass/fail grade will be given) (Students shall gain units each time they pass the course.)

CSCI7600
Seminars for Ph.D. Studies
Seminars on topics in Computer Science and Engineering to be presented by experts from academic or industry. (Only pass/fail grade will be given) (Students shall gain units each time they pass the course.)

CSCI8003
Thesis Research
In this course, a student is required to meet with his/her supervisor regularly who provides necessary guidance and supervision to write up a thesis and monitors the student¡¦s academic progress.

CSCI8006
Thesis Research
In this course, a student is required to meet with his/her supervisor regularly who provides necessary guidance and supervision to write up a thesis and monitors the student¡¦s academic progress.

CSCI8012
Thesis Research
In this course, a student is required to meet with his/her supervisor regularly who provides necessary guidance and supervision to write up a thesis and monitors the student¡¦s academic progress.

ENGG5101 / CENG5410
Advanced Computer Architecture
This course is designed to present an overview of some advanced computer architectures and their underlying design principles. Issues discussed will include scalability and performance evaluation. The underlying technologies such as processor and memory hierarchy, cache and shared memory, and advanced pipelining techniques will be presented. Examples of high performance vector
processors, multicomputers and massive parallel processors will be compared. Some novel architectures such as VLIW, fault tolerant systems and data flow machines will also be elaborated.Advisory: Students are expected to have taken CENG3420 or having background knowledge in computer organization

ENGG5103/CSCI5180
Techniques for Data Mining
Data mining provides useful tools for the analysis, understanding and extraction of useful information from huge databases. These techniques are used in business, finance, medicine and engineering. This course will introduce the techniques used in data mining. Topics will include clustering, classification, estimation, forecasting, statistical analysis and visualization tools.
Exclusion: CMSC5724 
ENGG5104/CSCI5280
Image Processing and Computer Vision
This course will cover fundamental knowledge and advanced topics in image processing and computer vision, including feature detection, segmentation, motion estimation, panorama construction, 3D reconstruction, scene detection and classification, color image processing and restoration. Applications in computer graphics will also be introduced, including image transformation, and camera calibration. Basic concepts of related algorithms and mathematic background will be discussed.
Exclusion: CMSC5711 
ENGG5105/CSCI5470
Computer and Network Security
This course aims to introduce important topics in computer and network security from an applied perspective. Topics include: (i) applied cryptography (e.g., cryptographic primitives, programming with OpenSSL), (ii) network security (e.g., unauthorized accesses, largescale network attacks, firewall & intrusion detection systems), (iii) web security (e.g., HTTP session management and web attacks), and (iv) system security (e.g., buffer overflow, passwords, file system security), (v) wireless security (e.g., WiFi security, wireless broadband network security). The course also discusses latest applied security topics depending on the current research trends.
Advisory: Students are expected to have taken both CSCI3150 and CSCI4430, or their equivalent" in course descriptions
Exclusion: CMSC5726 
ENGG5106/CSCI5250
Information Retrieval and Search Engines
This course surveys the current research in information retrieval for the Internet and related topics. This course will focus on the theoretical development of information retrieval systems for multimedia contents as well as practical design and implementation issues associated with Internet search engines. Topics include probabilistic retrieval, relevance feedback, indexing of multimedia data, and applications in ecommerce.

ENGG5108/CSCI5510
Big Data Analytics
This course aims at teaching students the stateoftheart big data analytics, including techniques, software, applications, and perspectives with massive data. The class will cover, but not be limited to, the following topics: advanced techniques in distributed file systems such as Google File System, Hadoop Distributed File System, CloudStore, and mapreduce technology; similarity search techniques for big data such as minhash, localitysensitive hashing; specialized processing and algorithms for data streams; big data search and query technology; managing advertising and recommendation systems for Web applications. The applications may involve business applications such as online marketing, computational advertising, locationbased services, social networks, recommender systems, healthcare services, or other scientific applications.
Not for students who have taken CMSC5741

ENGG5189/CSCI6200
Advanced Artificial Intelligence
The course introduces fuzzy logic and applications. Fuzzy expert systems. Fuzzy query. Fuzzy data and knowledge engineering. Fuzzy control. Genetic algorithms and programming and their applications. Parallel genetic algorithms. Island model and coevolution. Genetic programming. Introduction to emergent computing.
Exclusion: CMSC5707 
ENGG5202/ELEG5410
Pattern Recognition
This course provides an introduction to the important concepts, theories and algorithms of pattern recognition. The topics cover Bayesian decision theory, maximum likelihood and Bayesian parameter estimation, support vector machine, boosting, nonparametric pattern recognition methods, and clustering. It also includes applications of pattern recognition in different fields. Students taking this course are expected to have the background knowledge of calculus, linear algebra, probability and random process as a prerequisite.
Prerequisite: ELEG3410 or with the consent of the instructor. 
ENGG5281/ELEG5310
Advanced Microwave Engineering
Topics will be selected from the following: Linearization techniques for RF power transmitters, high frequency circuit packaging, microwave filter design, LTCC/MCM technology, computeraided design of microwave circuits, electromagnetic simulation.

ENGG5282/ELEG5500
Nanoelectronics
Review of semiconductor physics. Electrons in nanostructures: density of states, quantum confinement, transport properties, nanocontacts, Coulomb blockade. Nanoscale fabrication and synthesis: lithography, nanopatternning, epitaxy and heterostructure, selfassembly, other techniques. Nanoscale characterization: scanning probe microscopy and other microscopic techniques, nanoscale electrical measurements. Nanoscale devices: nano MOSFETs; carbon nanotube devices, nanowire and nanoparticlebased devices, organic thin film devices, molecular electronic devices, applications, and commercialization. Prerequisite: ELEG2510 or ELEG3510 or ELEG4510 or with the consent of the instructor.

ENGG5291/ELEG5610
Fiber Optics: Principles and Technologies
Overview of fiber communication technology. Fiber transmission impairments. Introduction to nonlinear optics. Second order and third order nonlinear phenomena. Lightwave propagation in nonlinear media. Optical signal processing in communications. Specialty fibers.

ENGG5301/IERG5154
Information Theory
Introduction. Shannon's information measures. Entropy rate of a stationary process. The source coding theorem. Kraft inequality. Huffman code. Redundancy of a prefix code. The channel coding theorem. Ratedistortion theory. Universal data compression. Advisory: Students are expected to have fundamental probability concepts.

ENGG5302/IERG5300
Random Processes
This course starts with a review of Markov chain, random walk, Poisson process, martingale, and limit theorems. The main content includes a few major topics: Markov process (also called continuoustime Markov chain), renewal theory; queueing theory, and Brownian motion. Advisory: Students are expected to have basic background in probability.

ENGG5303/IERG5100
Advanced Wireless Communications
This course provides an extensive introduction to basic principles and advanced techniques in the physical layer of wireless communications. Topics to be covered include channel coding, MIMO and spacetime processing, OFDM and multicarrier systems, spread spectrum and CDMA, channel capacity, opportunistic scheduling and diversity schemes. Advisory: A prior undergraduate level course in wireless communication is highly recommended.

ENGG5383/IERG5240
Applied Cryptography
This is a graduatelevel course on cryptography. It focuses on the definitions and constructions of various cryptographic schemes and protocols, as well as their applications. Useful tools for securing practical systems and emerging techniques in the applied research community will be introduced. No prior knowledge of security, cryptography, or number theory is required.
 Introduction: a brief history, applications in distributed systems; basic number theory
 Symmetrickey encryption: definition, informationtheoretic security, Entropy, PRNG
 Provable security: bounded adversary, random oracle model, basic primitives, reduction
 Publickey encryption: modelling security, DiffieHellman protocol, hybrid encryption
 Authentication: Hash function, collisionresistance, MAC, unforgeability
 Publickey infrastructure: certificate management, deployment, and revocation issues
 More schemes: FiatShamir transformation, CramerShoup encryption, identity/attributebased encryption, certificateless encryption, proxy reencryption , broadcast
 Privacyenhancing cryptography: zeroknowledge proof, anonymous credentials
 Pairingbased cryptography: elliptic curve basic, short signature, searchable encryption

ENGG5392/IERG5040
Lightware System Tech
This course covers the design of advanced optical fiber communication systems. Topics include: optical signal characterization and spectral efficient optical modulation formats, highspeed signal transmission & multiplexing techniques, linear & nonlinear fiber effects and fiber transmission impairments, basic guidedwave optoelectronics and novel integrated optical devices (tunable lasers, planar lightwave circuits, silicon photonics), optical signal amplification, regeneration and performance monitoring techniques, coherent optical communications and enabling digital signal processing techniques, and examples of optical subsystems for optical networks. Advisory: Students are expected to have basic background in optical communications

ENGG5402/MAEG5010
Advanced Robotics
Lagrange formulation of robot dynamics, NewtonEuler equations; motion control, force control, visual servoing, grasping analysis, object manipulation; sensors and sensor networks, medical robotics, advanced topics in recent development of robotic theory and applications. (Equivalent to MAEG5010 or BMEG5100.)

ENGG5403/MAEG5020
Linear System Theory and Design
Review on linear algebra; Linear system model and properties; State space representation: equivalent systems, canonical forms, realization, discretetime systems; Stability: definitions, Lyapunov Theorem; Controllability and Observability: Grammians, canonical decomposition, sampling effects; Minimal realizations; StateFeedback and Stateestimators: regulation and tracking, state estimator feedback, reducedorder estimator, multivariable system; Pole placement and Model Matching. (Equivalent to MAEG5020.)

ENGG5404/MAEG5050/BMEG5120
Micromaching and Microelectromechanical Systems
Broad overview of microfabrication and microelectromechanical systems. Introduction to basic micromaching techniques such as photolithography, isotropic and anisotropic wet etching, dry etching, physical and chemical vapor deposition, electroplating, metrology, statistical design of experiments, MEMS release etching, stiction, and MEMS device testing. Review of MEMS microsensors, microactuators and microstructures. Topics include accelerometers, pressure sensor, optical switches, cantilever beams, thinfilm stress test structures and bulk micromaching test structures. Fundamentals of central dogma of molecular biology, cell and tissue biology. Principles of transduction and measurements of molecules, cells and tissues.

ENGG5405/MAEG5100
Theory of Engineering Design
Introduction of engineering design and design procedure, design innovation and TRIZ, axiomatic design, nature’s design and complex systems, design analysis (modeling and simulation), statistical analysis, design optimization, statistical design optimization, Design for Six Sigma (DFSS). Practical examples of design and applications, such as pendulum, bicycle, windmill and propulsion. (Equivalent to MAEG5100.)

ENGG5501/SEEM5520
Optimization I
In this course we will develop the basic machineries needed for formulating and analyzing various optimization problems. Topics include convex analysis, linear and conic linear programming, nonlinear programming, optimality conditions, Lagrangian duality theory, and basics of optimization algorithms. Applications from different fields, such as computational economics and finance, combinatorial optimization, and signal and image processing, will be used to complement the theoretical developments. No prior optimization background is required for this class. However, students should have a workable knowledge in multivariable calculus, basic concepts of analysis, linear algebra and matrix theory.

ENGG5601
Principles of Biomechanics and Biomaterials
Biomechanics: biostatics, biodynamics, mechanics of biological solids.
Biomaterials: metals, ceramics, synthetic polymers, natural polymers, composites; characterization of biomaterials; biomaterial scaffolds for regenerative medicine.
Clinical applications in the musculoskeletal system, (including, sports, traumatology, and rehabilitation), cardiovascular system, and dentistry. 
ENGG5781
Matrix Analysis and Computations
Matrix analysis and computations are widely used in engineering fields—such as machine learning, computer vision, systems and control, signal and image processing, optimization, communications and networks, and many more—and are considered key fundamental tools. This course covers matrix analysis and computations at an advanced or research level. It consists of several parts. The first part focuses on various matrix factorizations, such as eigendecomposition, singular value decomposition, Schur decomposition, QZ decomposition and nonnegative factorization. The second part considers important matrix operations and solutions such as matrix inversion lemmas, linear system of equations, least squares, subspace projections, Kronecker product, Hadamard product and the vectorization operator. Sensitivity and computational aspects are also studied. The third part explores presently frontier or further advanced topics, such as matrix calculus and its various applications, tensor decomposition, and compressive sensing (or managing undetermined systems of equations via sparsity). In every part, relevance to engineering is emphasized and applications are showcased.