• 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 energy-efficient computing systems. This course will study techniques to improve energy consumption at various design levels will also study representative research papers to introduce the state of the art approaches to energy efficient computing.
    Prerequisite: 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.
    Prerequisite: CENG2440 or ESTR2100

  • 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

  • CENG5271 EDA for Logic Design of Digital Systems

    The scope of this course focuses on logic design of digital systems. Fundamental theory and techniques applied in logic synthesis of Electronic Design Automation (VLSI CAD) process are introduced. Topics include advanced Boolean algebra, related graph and BDD algorithms, two-level (SOP) and multi-level (Boolean networks) logic representations and optimization, sequential logic optimization, retiming, rewiring, FPGA design flow, etc. Hands on experience on the Berkeley ESPRESSO/SIS/ABC platform will be learned through class exercises.
    Prerequisite: CSCI2100 and ENGG2020
    Exclusion: CENG5330

  • 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, high-radix multipliers, tree/array multipliers, high-radix dividers, division by convergence, floating point arithmetic, square-root computation, CORDIC algorithm, arithmetic by table lookup, low-power arithmetic, fault-tolerant 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, shared-memory 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 shared-memory MIMD, message-passing MIMD, and data-parallel 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 line-segment 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 worst-case 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, Ying-Yang 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, high-throughput 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.

  • CSCI5060 Techniques in Theoretical Computer Science

    This course introduces advanced techniques that are commonly used, including but not limited to the following:

    1. Techniques related to randomness, such as random sampling, random projection, random walk.
    2. Techniques related to algebra, such as Fourier analysis on finite group (especially on the Boolean hypercube), spectral algorithms, algebraic graph theory.
    3. Techniques from other areas, such as information theory, optimization, geometry, topology.


  • CSCI5070 Advanced Topics on Social Computing

    This course aims to advance computational techniques used in social computing. More specifically, the course will present state-of-the-art 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, link-based 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 case-control 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 non-deterministic Turing machine, time and space complexity, NP-completeness, 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, complexity-based cryptography, randomness-related topics such as derandomness, pseudorandomness, extractors, random walks, etc.

  • CSCI5210 Advanced Computer Graphics and Visualization

    This course provides in-depth treatment of the following advanced computer graphics and visualization topics: radiosity rendering and global illumination, procedure texturing and modelling, image-based rendering, stereo imaging, real-time volume graphics and interactive visualization.
    Prerequisite: CSCI3260 or equivalent

  • CSCI5240 Combinatorial Search and Optimization with Constraints

    Students will be exposed to various constraint-based 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 NP-completeness of graph problems. The course will also discuss FPT algorithms for solving graph problems.
    Pre-requisite: 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 zero-sum 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

  • CSCI5370 Quantum Computing

    This course introduces various topics in quantum computing, including but not limited to the following ones. 1.Quantum algorithms: quantum Fourier transform, amplitude amplifi cation, quantum walk. 2.Quantum complexity: quantum structural complexity, quantum interactive proof, quantum communication complexity, quantum query complexity. 3.Other topics such as quantum cryptography and quantum information theory.
    Prerequisite: CSCI2110

  • 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 real-time 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 (general-purpose 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.

  • CSCI5430 Autonomous Agents and Multiagent Systems

    Characteristics of autonomous agents. Agent architectures: BELIEF-DESIRE-INTENTION architecture, purely reactive architectures and hybrid architecture. Multiagent systems: speech acts theory, agent communication, and agent cooperation protocols. Agent-oriented programming. Distributed hierarchical planning. Distributed rational decision making: protocols and strategies, Nash equilibrium and Pareto optimality, auctions, voting, Clarke tax, OCSM-contracts. Argumentation and negotiation.
    Prerequisite: CSCI2110

  • CSCI5440 Network-on-Chips for Many-Core 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: Average-case hardness in NP, one-way functions * Pseudo-random number generators and pseudo-random functions * Zero-knowledge proofs and arguments * Generic protocols for secure multi-party computation * Trap-door permutations and public-key encryption * Black-box 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, semi-random method). Then we will show how these tools and methods can be used to design randomized algorithms (e.g. graph algorithms, number-theoretic 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, k-wise independence, small-bias space, pseudorandom generator).

  • CSCI5460 Virtual Reality

    This course introduces the fundamental and advanced research topics in virtual reality (VR), including VR tools & metaphors, multi-sensory interactions, geometric and behavior modeling, touch-enabled interfaces, real-time navigation, human factors in immersion, augmented reality systems, and internet-based VR applications. The web-based virtual reality interfaces plus 3D graphics engines build up the developing tools for testing the innovation for the advanced VR research and real-time applications.
    Prerequisite: CSCI3260 or equivalent

  • CSCI5520 Foundations of Data Privacy

    This course introduces foundational notions and techniques for privacy preserving data access and computation. Topics include tradeoffs between utility and privacy, differential privacy, mechanisms for private data access, privacy in interactive and non-interactive settings, privacy preserving algorithms, privacy in auctions, privacy and learning, and lower bounds on privacy.

  • 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 systems-level 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., log-structured 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, in-memory 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 multi-armed 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.
    Prerequisite: CSCI3420
    Course Exclusion(s): CMSC5708

  • 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, large-scale 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 e-commerce.

  • ENGG5108/CSCI5510 Big Data Analytics

    This course aims at teaching students the state-of-the-art 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 map-reduce technology; similarity search techniques for big data such as minhash, locality-sensitive 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, location-based services, social networks, recommender systems, healthcare services, or other scientific applications.
    Exclusion: 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.
    Pre-requisite: 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, computer-aided 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, self-assembly, other techniques. Nanoscale characterization: scanning probe microscopy and other microscopic techniques, nanoscale electrical measurements. Nanoscale devices: nano- MOSFETs; carbon nanotube devices, nanowire- and nanoparticle-based devices, organic thin film devices, molecular electronic devices, applications, and commercialization. Pre-requisite: 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. Rate-distortion 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 space-time 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 graduate-level 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
    • Symmetric-key encryption: definition, information-theoretic security, Entropy, PRNG
    • Provable security: bounded adversary, random oracle model, basic primitives, reduction
    • Public-key encryption: modelling security, Diffie-Hellman protocol, hybrid encryption
    • Authentication: Hash function, collision-resistance, MAC, unforgeability
    • Public-key infrastructure: certificate management, deployment, and revocation issues
    • More schemes: Fiat-Shamir transformation, Cramer-Shoup encryption, identity-/attribute-based encryption, certificateless encryption, proxy re-encryption , broadcast
    • Privacy-enhancing cryptography: zero-knowledge proof, anonymous credentials
    • Pairing-based 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, high-speed signal transmission & multiplexing techniques, linear & nonlinear fiber effects and fiber transmission impairments, basic guided-wave 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, Newton-Euler 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, discrete-time systems; Stability: definitions, Lyapunov Theorem; Controllability and Observability: Grammians, canonical decomposition, sampling effects; Minimal realizations; State-Feedback and State-estimators: regulation and tracking, state estimator feedback, reduced-order 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, thin-film 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.