Bachelor of Engineering in Information Engineering (IERG)

Course Details

The following course list is for your quick reference only. If you cannot find a particular course from this list, please look up from the CUSIS.

Shortcut to: | IERG Courses | ENGG Courses | Courses offered by other departments |


IERG Courses

IERG1000
Introduction to Information Engineering
1 unit

This course previews the Information Engineering curriculum to enhance the understanding and interest of IE freshmen about their major. It will introduce some of the fundamental principles, as well as their practical relevance, underlying IE major courses covering subjects from bits and signals, networked systems, to real-life applications. Lectures by faculty members and IT industry experts will reveal how the IE curriculum links to important and challenging research areas and to different career paths impacting the society. Students will also receive hands-on training on system setup and applications to get prepared for follow-on lab courses.

IERG1810
Electronic Circuit Design Laboratory
1 unit

This course consists of guided experiments on electronic circuits. Topics include transistors, RC circuits, amplifiers, oscillators, active filters, and a design project.

Pre-requisite/Co-requisite: IERG2060/ESTR2304

IERG2051 / ESTR2302
Signals and Systems
3 units

Linear time-invariant systems. Fourier analysis of continuous-time and discrete-time signal and systems. Laplace transform. z-transform. Feedback systems. Applications such as processing of communication signals and images, control of disk drive systems, and analysis of the stock market.

Prerequisite: MATH1510. Not for students who have taken ENGG2030 or ESTR2206 or ESTR2302 or ESTR2360 or MIEG2051.

IERG2060 / ESTR2304
Basic Analog and Digital Circuits
3 units

This course introduces the basic analysis of analog and digital electronic circuits, as well as the basic principles of communication circuits. The analog circuit analysis includes: basic circuit laws and theorems; mesh and nodal analysis; resonant circuits, steady-state and small signal analyses; electrical amplifiers. The digital logic circuit analysis includes Boolean algebra; logic gates; combinational logic circuit and sequential logic circuit design; synchronous and asynchronous sequential machine design. Overview of the computer architecture will be introduced. Examples of common electronic circuits will be discussed as case studies.

Not for students who have taken ELEG2202 or ELEG2201 or ELEG1110 or ENGG2020 or ESTR2104 or ESTR2304.

IERG2080 / ESTR2306
Introduction to Systems Programming
3 units

This course introduces the C programming language with applications to systems programming. Topics include fundamentals of the C programming language, software development tools, and system programming principles.

Pre-requisite: ENGG1110 or ESTR1002. Not for students who have taken CSCI1140 or CSCI1510 or ESTR2306.

IERG2310 / ESTR2300
Principles of Communication Systems
3 units

This is a foundation course on telecommunication and related technologies. It describes the essential elements of a modern communication system. Students will learn the basic concepts in electrical communication, the operation principles and the performance requirements for a real-world communication system. The course content include signal representation and properties, amplitude modulation, angle modulation, analogue-to-digital signal conversion, demodulation and detection, pulse modulation, multiplexing, baseband transmission, passband transmission, inter-symbol interference, system performance evaluation and other topics. The course is the basis of various advanced courses on electrical and optical communications.

Prerequisite: ENGG2030 or ESTR2302 or ESTR2360 or IERG2051 or MIEG2051. Not for students who have taken ELEG2310 or ENGG2310 or ESTR2300.

IERG2470 / ESTR2308
Probability Models and Applications
3 units

The course introduces the fundamental principles of probability models and their engineering applications. It includes the topics in basic probability theory, random variables, common distributions and probability functions, moment generating function, inequalities, limit theorems, basic random processes, and basic Markov chains and Poisson processes. This is the foundation course to prepare the students for courses in communications and networking.

Not for students who have taken ENGG2430, ENGG2450, ENGG2460, ENGG2470, ESTR2002, ESTR2005, ESTR2010, ESTR2012, ESTR2308, ESTR2362 or MIEG2440.

IERG3010 / ESTR3300
Digital Communications
3 units

This course introduces the principles of digital communications. Topics include source and channel models, modulation and detection, intersymbol interference and equalization coding, multipath fading, spread spectrum and synchronization.

Prerequisite: ENGG2310 or ESTR2300 or IERG2310. Not for students who have taken ESTR3300.

IERG3050
Simulation and Statistical Analysis
3 units

This course introduces the principles of simulation and statistical analysis. Topics include system simulation, data analysis, statistical inference, regression, correlation and variance analysis, sensitivity analysis, variation reduction and importance sampling techniques for rare events, workload representation and traffic generation, experimental design, basic queuing theory (Little's Law, M/M/1 and variations), operational law, and case studies on client-server systems.

IERG3060
Microcontrollers and Embedded Systems
3 units

To learn an advanced microcontroller platform for the implementation of an embedded system. Using ARM Cortex platform, students will study the evolution of microcontroller architecture and learn the advanced features of Cortex’s registers, memory and I/O space allocation, bit-banding, buses, instruction set, interrupt control, fault handling and operation mode. Students will learn how to program the embedded system, particular the peripheral registers, using C-language as the primary language. Assembly language will also be introduced.

Advisory: Students are advised to take ELEG2201/IERG2060/ESTR2304/ENGG2020/ESTR2104 before taking this course.

Co-requisite: IERG3810. Not for students who have taken ELEG2401 or ELEG3230 or ELEG3701.

IERG3080 / ESTR3308
Information and Software Engineering Practice
3 units

Software Engineering practice such as requirement analysis and specifications, system design and integration, object-oriented designs and development, software testing and maintenance, software quality and performance metrics, documentation, CASE tools, project planning and management. Information engineering practice concerning software intellectual property rights, privacy, Internet commerce, entrepreneurship and public policies.

Pre-requisite: CSCI2100 or ESTR2102. Not for students who have taken CSCI3100 or ENGG3820 or ESTR3308.

IERG3280 / ESTR3302
Networks: Technology, Economics, and Social Interactions
3 units

This course introduces various networking technologies we use each day and the fundamental ideas behind them. Different from many "theory-based" networking courses, this course is organized around a list of intriguing questions about the technological, social, and economical aspects of modern networks. The course will broadly cover topics on wireless networks, Internet, social networks, and network economics. We will introduce various methodologies such as graph theory, optimization theory, game theory, and pricing theory. The intended audience of this course includes undergraduates with majors in Information Engineering, Computer Science and Engineering and Electronic Engineering. It is also suitable for interested undergraduate students from Mathematics, and other Social Science majors.

Advisory: Students are expected to have taken Advanced Engineering Math course covering multivariate calculus and linear algebra.

Not for students who have taken ESTR3302.

IERG3300 / ESTR3304
Introduction to Stochastic Processes
3 units

This course starts with the topic of Markov chain. It includes the Chapman-Kolmogorov equations, random walk, classification of states, limiting probabilities, and time reversibility. The second topic in the course is stopping time and martingales. This includes Wald's equation, the concept of martingale, and the martingale stopping theorem. The third topic is exponential distribution, Poisson distribution, and Poisson process. This includes the unique memoryless property of the exponential distribution, combining and splitting a Poisson random variable, method of randomization, various equivalent definitions for a Poisson process, and M/M/1 queue. Throughout the course, many examples of applications are related to communications and computers.

Advisory: Students are expected to have basic background in probability.

Not for students who have taken ESTR3304 or IERG4140 or IERG5300 or ENGG5302 or MATH4240.

IERG3310 / ESTR3310
Computer Networks
3 units

OSI reference model. Overview of TCP/IP. Local area networks and wide area networks. Network layer and protocols. Transport layer and protocols. Examples of application layer protocols such as HTTP. Network security: firewall, SSL, and private and public keys encryption systems. One term project on client-server programming to create a web server and proxy.

Pre-requisite: CSCI2100 or ESTR2102. Not for students who have taken CSCI4430 or ESTR4120 or ESTR3310.

IERG3320 / ESTR3306
Social Media and Human Information Interaction
3 units

Social media is one of the main sources of big data. This course aims to enable students to understand about social media and the interaction between human and information. It (1) examines the social and human dimensions of social media; (2) introduces the theories, models, and analysis techniques related to social media and human information interaction; and (3) discusses how to integrate theories and concepts in social media and human information interaction into the analytics and visualization of big data. Topics include: foundations of social media, human cognition and information behavior, online communities and social interactions, as well as infographic and big data visualization.

Prerequisite: IERG2051 or MIEG2051 or ENGG2030 or ESTR2302 or ESTR2360 or ESTR2206. Not for students who have taken ESTR3306.

IERG3800
Information Infrastructure Design Lab
1 unit

This course offers a series of hands-on laboratory exercises for students to practice the design, implementation, and testing of the networking, computing and information service infrastructures of a modern enterprise.

Pre-requisite: ENGG2600 or ENGG2602 or ESTR2008 or IERG2602, Not for students who have taken IERG3921.

IERG3810
Microcontrollers and Embedded Systems Laboratory
1 unit

A companion 1-credit lab to IERG3060. Students will use a Cortex-M3 base microcontroller platform to implement an embedded system that utilizes interrupts, timers, keys, beeper, communications port, color display, and touch screen and other peripherals.

Co-requisite: IERG3060.

IERG3820
Communications Lab
1 unit

This course offers a series of laboratory experiments on electronic communication technologies. Topics include signal analysis, principles in analog and digital communications, signal modulation formats, multichannel systems, and system design of communication applications.

Corequisite: ENGG2310 or ESTR2300 or IERG2310.

IERG3830
Product Design and Development
3 units

The objective of the course is for students to gain basic theoretical and hands-on experience in designing viable hardware/software products that uses selected technologies to address specific needs in an entrepreneurial setting. Students would work in teams of two or three, and each team is required to propose, specify, and document a product-design up to a stage that prototyping is possible in a hypothetical startup situation. They are also required to critically examine different engineering products in real world settings, particularly local product designs, and participate in product design role-plays. Upon successful completion of the course, students are expected to understand the basic principles of user-need analysis and overall design process, improve their presentation of technical ideas, and foster a spirit of innovation.

IERG3840
Web Application Development Project
1 unit

This hands-on project-oriented lab introduces the fundamental concepts, architectures, tools, languages, and frameworks in web applications development and deployment. After a series of lectures that cover the fundamentals, students will self-learn via online resources a set of language/tool/framework to design and implement a web application in multiple phases. This lab emphasizes on educating our students the fundamentals and empowers them to acquire skills/knowledge of specific language/tool/framework via self-learning so that they can adapt and tackle the future technological advances through life-long learning.

Pre-requisite: CSCI2100. Not for students who have taken CSCI2720 or ESTR2106.

IERG3842
Mobile Network Application Development Project
1 unit

This hands-on project-oriented lab introduces the fundamental concepts, development tools, application frameworks, application components, multithreading and basic network programming in mobile network applications development and deployment. After a series of lectures that cover the fundamentals, students will self-learn via online resources a set of language/tool/framework to design and implement a mobile network application in multiple phases. This lab emphasizes on educating our students the fundamentals and empowers them to acquire skills/knowledge of specific language/tool/framework via self-learning so that they can adapt and tackle the future technological advances through life-long learning.

Pre-requisite: IERG3080. Not for students who have taken CSCI3310 or IEMS5722.

IERG4004
E-payment Systems and Cryptocurrency Technologies
3 units

The course introduces e-payment systems and cryptocurrency technologies.

1.Not for students who have taken FTEC4004. 2.Pre-requisite(s): CSCI4130 or ESTR4306 or IERG4130.

IERG4030 / ESTR4320
Optical Communications
3 units

This course introduces the principles of various building blocks of an optical fiber transmission system. The topics include the optical fiber and transmission characteristics, optical sources and transmitters, photodiodes and optical receivers, optical components such as optical couplers, filter, switches, modulators and amplifiers. Optical system design, wavelength division multiplexing, system performance evaluation, lightwave systems and network applications are also discussed.

1.Not for students who have taken ELEG3303 or ESTR3206 or ESTR4320 or IEMS5705. 2.Pre-requisite(s): ENGG2310 or ESTR2300 or IERG2310 or with the approval of the course instructor.

IERG4080 / ESTR4312
Building Scalable Internet-based Services
3 units

Mobile devices has greatly increased the demand of Internet-based services. Large-scale online services such as Pinterest and Instagram must be designed in a way such that they can be scaled up and scaled out in a rapid and seamless manner. This course will teach students how to build scalable online services and applications. In particular, the design principles and engineering considerations for different core components, including the front-end system, the load-balancer, performance monitoring, content-delivery networking, fault-tolerant mega data store, distributed messaging services, backend big data processing/ analytics will be discussed. As a course project, the students will prototype a scalable Internet service by leveraging industrial-strength component offerings from leading infrastructure and platform service providers.

Advisory note: Students are expected to have background in object oriented programming.

Pre-requisite: IERG3080. Not for students who have taken ESTR4312.

IERG4090 / ESTR4302
Networking Protocols and Systems
3 units

This is a second course on computer networking protocols and systems. The introductory course, IERG 3310 Computer Networks, covers the basic principles of networks, the protocol stack, and network programming. This course covers additional topics related to the operation and management of the Internet as well as new and emerging network technologies. A major topic in this course is Internet routing and traffic engineering which studies the operational model of transit ISPs and local ISPs, and their peering agreements. The course covers new technologies and protocols including, for example, support for multimedia applications, streaming, VoIP, IPTV services, and architectures for content delivery and data center networking. The emerging issues covered in this course may include the support for mobility, convergence of different types of wired and wireless networks, and the design of next generation Internet protocols as well as the issues in the transition to these protocols.

Prerequisite: IERG3310 or ESTR3310. Not for students who have taken ESTR4302.

IERG4100 / ESTR4304
Wireless Communication Systems
3 units

This course introduces the principles of wireless communication systems. Topics include digital cellular systems, physical characteristics of radio channels, fading channel, advanced digital modulation, spread spectrum and OFDM technology, diversity techniques, multiple access schemes, mobile network control and management, 4G and 5G technologies.

Prerequisite: ENGG2310 or ESTR2300 or ESTR3300 or IERG2310 or IERG3010. Not for students who have taken ESTR4304 or IEMS5701.

IERG4110 / ESTR4314
Hands-on Wireless Communication
3 units

The focus of this course will be on the design, implementation, and evaluation of a digital wireless communication link. Software-defined wireless communication platforms, e.g., USRP (universal software radio peripheral), will be used as a teaching tool. A two-hour laboratory period will complement the usual two-hour lecture period each week.

The students will learn how to transmit, receive, analyze, and process RF wireless signals. The main topics may include: Introduction to SDR, USRP, and common programming software (GNU Radio and NI LabVIEW); Baseband QAM Modulation and Demodulation; Channel Estimation; Synchronization; Frequency Offset Estimation and Correction; OFDM Modulator and Demodulator; OFDM Synchronization, Frequency Offset Compensation, Channel Tracking, and etc.

Advisory note: It is advisable for students to have had digital communications background or take digital communications course (IERG3010) at the same time as this course.

Pre-requisites: ENGG2310 or ESTR2300 or IERG2310. Not for students who have taken ESTR4314.

IERG4130 / ESTR4306
Introduction to Cyber Security
3 units

Cyber Security is an important topic in modern information and communication technology. This course introduces students to major areas of Cyber Security, including introductions to cryptography, network security, computer security, and web security.

Advisory: Basic knowledge on Computer Networks are suggested.

Not for students who have taken CSCI4130 or ESTR4306 or IEMS5710.

IERG4150 / ESTR4322
Introduction to Cryptography
3 units

Cryptography is essential in many cyber security goals and many application domains. This course introduces students with a foundation of theory of cryptography and its application, including introductions to number theory, symmetric-key cryptography, public-key cryptography, and a brief overview of the research advances (with respect to the latest research trend of the time).

  1. Cryptography as a Scientific Discipline
  2. Number Theory and RSA
  3. The Basics of Provable Security
  4. Secret Sharing
  5. Basing Cryptography on Intractable Computations
  6. Pseudorandom Generators and Pseudorandom Functions
  7. Chosen Plaintext Attacks and Chosen Ciphertext Attacks
  8. Message Authentication Codes and Hash Functions
  9. Authenticated Encryption
  10. Digital Signatures
  11. Public-Key Encryption
  12. Pairing-Based Cryptography
  13. Special Topic, e.g., Overview of Latest Research Advances

Not for students who have taken ESTR4322

IERG4160
Image and Video Processing
3 units

This course introduces the principles of image and video processing. Topics include Two-dimensional signal processing, image enhancement, image restoration, image and video coding, Image and video content recognition and analysis, with introduction to texture image analysis, general two-dimensional shape recognition, Chinese character recognition, and human face recognition.

Advisory: Background knowledge on signal processing and programming is preferred.

Not for students who have taken ELEG4502 or ELEG4512.

IERG4180 / ESTR4308
Network Software Design and Programming
3 units

This is a project-oriented course that teaches the development of network applications. Subject areas include object-oriented programming (C++ and Java); message-driven programming (windows); client-server systems design; interprocess communication; sockets: blocking and nonblocking I/O; multithreaded process; iterative and concurrent server designs; system-throughput bottlenecks; multimedia over network. Case studies: FTP, RPC, Web.

Not for students who have taken ESTR4308.

IERG4190
Multimedia Coding and Processing
3 units

This course introduces the principles of multimedia coding and processing. Topics include Theory of data compression, Lossless coding including Huffman code, Speech coding, Audio coding including MP3 and AC3, Image compression including JPEG, Video compression including H.26X and MPEG, Multimedia applications, Audio and image processing.

Not for students who have taken IEMS5707.

IERG4210
Web Programming and Security
3 units

The web programming paradigm is gaining importance. Security is among its central issues. In this course, students use programming languages such as HTML, CSS, Javascript, PHP, and the mysql database technology, to develop interactive websites with emersive user interface/ user experience. Students will also learn major web security threats and secure web programming do’s and dont’s. Projects may be used to enhance learning.

Not for students who have taken IEMS5718.

IERG4220
Secure Software Engineering
3 units

This course will cover 1) common security problems, vulnerabilities and attack patterns in software and their underlying causes, for example, different types of buffer overflows, race conditions, side channels ; 2) security models and their realizations in modern desktop/mobile operating systems and applications 3) secure software engineering principles, coding techniques, guidelines and tools to prevent common vulnerabilities and pitfalls ; 4) security testing methodologies and tools in practice ; 5) risk assessment/ management and security audit.

IERG4230
Introduction to Internet of Things
3 units

The course introduces the principles, architectures and applications of Internet of Things (IoT) systems, which enable the networking and interaction of smart objects via various communication technologies. The design issues to be discussed include: smart object identification/positioning/tracking, smart sensors, data communication technologies for IoT, machine-to-machine communications and protocols, methodologies for large-scale sensing-data collection and analysis, system optimization and the related socio-economic impact. Emerging applications of IoT in various fields such as healthcare, energy management, transportation/ urban dynamics, inventory control, building/home automation, environmental monitoring/control, will also be studied.

Advisory: Basic knowledge on networking protocol and communication principles are required.

IERG4300 / ESTR4300
Web-scale Information Analytics
3 units

The course discusses data-intensive analytics, and automated processing of very large amount of structured and unstructured information. We focus on leveraging the MapReduce paradigm to create parallel algorithms that can be scaled up to handle massive data sets such as those collected from the World Wide Web or other Internet systems and applications. We organize the course around a list of large-scale data analytic problems in practice. The required theories and methodologies for tackling each problem will be introduced. As such, the course only expects students to have solid knowledge in probability, statistics, linear algebra and computer programming skills. Topics to be covered include: the MapReduce computational model and its system architecture and realization in practice ; Finding Frequent Item-sets and Association Rules ; Finding Similar Items in high-dimensional data ; Dimensionality Reduction techniques ; Clustering ; Recommendation systems ; Analysis of Massive Graphs and its applications on the World Wide Web ; Large-scale supervised machine learning; Processing and mining of Data Streams and their applications on large-scale network/ online-activity monitoring.

Advisory: Basic hands-on operating system configuration and software installation skills covered in lab courses like IERG2602 and IERG3800 are required.

Not for students who have taken CSCI5510 or ENGG4030 or ESTR4300.

IERG4320
Data Science in Practice
3 units

Data science is a cross-disciplinary study involving informatics, machine learning, and statistics. This course adopts a problem driven approach to discuss various components in the pipeline of a data science project and the applications in various real-life examples. Topics include Python programming, data pre-processing, feature selection, common machine learning algorithms and data visualization.

Not for students who have taken SEEM2460.

IERG4330 / ESTR4316
Programming Big Data Systems
3 units

This course aims to provide students with the hands-on experience needed for a successful career in Big Data in the information technology industry. Many of the assignments will be completed on massive publicly available data sets giving them appropriate experience with the algorithms, mainstream platforms, and software tools needed to master programming for Big Data. The students will develop a solid background in provisioning, programming and applying Big Data systems and software.

Pre/Co-requisite: ENGG4030 or ESTR4300 or IERG4300. Not for students who have taken ESTR4316 or IEMS5730.

IERG4340
Emerging Technologies in Information Engineering
3 units

This course introduces emerging technologies in telecommunications and internet engineering. These new technologies are discussed and compared with conventional ones in terms of market demand, system requirements, design principles, applications, limitations and their impacts to society. The topics include telecommunication network infrastructure, advanced optical metro/access networks and wireless LTE technologies, fiber-wireless convergence, cloud/edge computing, software defined networking, network function virtualization, data center networking, smart automation systems, etc. The topics may vary. Case studies.

Not for students who have taken IEMS5717.

IERG4350
Cloud Computing Security
3 units

The course aims to address the security issues in cloud computing so as to assure a secure and efficient cloud environment for dynamic business environment. The discussion includes the basics of cloud computing environment and its common threats and attacks, analysis of security architecture in various cloud services model and deployment model, various software-based security tools to monitor and protect the flow of information into and out of the cloud, identity and access management, patch management, data security controls and requirement, etc. The lectures are supplemented by substantial practical security implementation work and application development.

IERG4831
Networking Laboratory I
2 units

This course allows students to have hands-on experiences in Interconnection and managing local area networks with switches and routers including the configurations and deployment of dynamic switching and routing protocols.

Corequisite: IERG4090 or ESTR4302.

IERG4841
Networking Laboratory II
2 units

This course allows students to have hands-on experiences in setting up the following three key components of the modern enterprise IT infrastructure: virtualization, IPv6, and wireless LAN.

Pre-requisite: IERG3800.

IERG4998
Final Year Project I
3 units

The course is designed to provide students with an opportunity to carry out, under the supervision of an academic staff, an independent project with research elements in engineering.

IERG4999
Final Year Project II
3 units

The course is designed to provide students with an opportunity to carry out, under the supervision of an academic staff, an independent project with research elements in engineering.

Pre-requisites: IERG4998.

IERG5020
Telecommunication Switching and Network Systems
3 units

Basic telephony; concepts of switching, transmission, multiplexing and concentration; circuit switching, time-space-time switching; virtual-circuit/label switching; crossbar/bus/shared-memory switches; Ethernet switches at edge and metro; switching characteristics of interconnection networks; parallel switching control in sorting, concentration, multicasting and distribution.

Advisory note: Students are expected to have background in Signals and Systems.

Course Exclusion: IERG4020 or ESTR4318.

IERG5040 / ENGG5392
Lightwave System Technologies
3 units

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: Knowledge of basic optical communication principles is required.

Course Exclusion: IERG5040.

IERG5090
Advanced Networking Protocols and Systems
3 units

This is a graduate level course in computer networks. It covers advanced technologies, theory and applications of networking protocols and systems. It studies recent developments and emerging trend in various networking research areas such as:

Architecture and Economic aspects of the Internet; Network management, Operation and Traffic Engineering ; Network Measurement and Monitoring ; Domain-specific networking architectures and technologies, e.g., Data-Center, Content Distribution Networks and their corresponding challenges and solutions ; Network Algorithmics and Protocol Design ; Operating Systems and Hardware Support for Networking ; Modeling and performance analysis of protocols, systems and services. Each student is expected to complete a Term-Project as part of the course assessment.

Advisory: Students are expected to have basic background in computer networks.

Course Exclusion: IEMS5715.

IERG5100 / ENGG5303
Advanced Wireless Communications
3 units

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.

Exclusion: IERG6270 or IERG5100.

IERG5130
Probabilistic Models and Inference Algorithms for Machine Learning
3 units

This course is a graduate level introduction to probabilistic models and inference algorithms, which constitute a common foundation for many methodologies in machine learning and related fields (e.g. computer vision, natural language processing, and data mining).

The course begins with a detailed exposition of probabilistic graphical models, then proceeds with various inference methods, including variational inference, belief propagation, and Markov Chain Monte Carlo (MCMC). In the second part of the course, we then discuss the connections between probabilistic models and risk minimization, as well as how optimization-based methods can be used in large-scale model estimation. Finally, the course will briefly discuss nonparametric models, e.g. Gaussian processes, and their use in practical applications.

Advisory: Basic knowledge on linear algebra, probability theory, optimization are required.

IERG5140
Lightwave Networks
3 units

This course aims at the introduction of optical network basics, the operation principles, and the design and optimization of optical networks. The course will first review basic optical passive and active devices like fiber, laser, photodiode, optical filter, optical add-drop multiplexers, optical switch, modulator, optical amplifiers, and cross-connects. Then, we will discuss different optical and electronic signal processing techniques, including modulation, coding, and equalization. Different optical networks, including passive optical networks, radio-over-fiber networks. data center network, optical metro and core networks, will be introduced. To assure the network performance, we will consider optical networking operation, administration, management, and planning techniques (OAM&P). Optical network design and optimization will be discussed. These include the optimization of routing, wavelength assignment, and repeaters placement. Finally, emerging optical network technologies like software-defined networks and elastic optical networks will be introduced.

Advisory: Students are expected to have background in Optical Communications.

IERG5154 / ENGG5301
Information Theory
3 units

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.

Course Exclusion: ENGG5301

IERG5200
Channel Coding and Modulation
3 units

This course covers classic and new channel coding, and related modulation schemes. Topics include Reed-Solomon codes, convolutional codes, concatenated codes, low-density parity-check (LDPC) codes, and optionally, OFDM, MIMO, and network coding.

Course Exclusion: MATH4260 and IERG4200.

IERG5230
Algorithms and Realization of Internet of Things Systems
3 units

This is a systems course that will enable students to have in-depth understanding of key information processing algorithms and their implementation for Internet of Things (IoT) systems. The topics cover 1) overview of basic signal processing algorithms such as FFT and digital filters; 2) advanced information processing algorithms such as acoustic and visual signal processing, spatial sensing, machine learning etc.; 3) their implementation on cutting-edge IoT platforms and key system issues of such as energy efficiency and real-time in the contexts of a set of key IoT applications such as smart health, environmental monitoring, smart homes/buildings, smart cities etc.

Students will work on an individual or team project to build an end-to-end IoT system. The project should have a significant information processing component and include implementation on real IoT platforms such as Raspberry Pi, Ardunio, wearable devices, smartphones etc, and. In addition to homework and lab assignments, students will also read and discuss latest publications in the areas of Internet of Things, Cyber-Physical Systems, mobile systems, and ubiquitous computing.

Advisory: Students are expected to have basic understanding on signals and systems, signal processing or imaging processing and Internet of Things System.

IERG5240 / ENGG5383
Applied Cryptography
3 units

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

Not for students who have taken IERG5240.

IERG5280
Mobile Networking
3 units

This module introduces the principles of networking protocol design under the mobile/ wireless environment. Mobile networking protocol design for the MAC, Network, Transport, Session and Application layers will be covered. The course will follow a "problem-and-solution" approach in which key generic problems created by the mobile/ wireless environment on each protocol layer are first introduced. Alternative solutions as well as their associated trade-offs, are then illustrated via real-world examples. Specific problems and their practical solutions to be studied include: Multi Access Control in a wireless environment, Mobility Management for infrastructure-oriented wireless networks (e.g. location tracking and handover), Routing in Mobile Ad Hoc networks, Wireless Transport protocol design, Session and Service control for Multimedia Wireless networks. Emerging Mobile networking Technologies and Future Directions will also be discussed.

Advisory: Pre-requisite includes Computer Networks (IERG3310) and Digital Communications (IERG3010) OR their equivalents OR the consent of the instructor.

IERG5290
Network Coding Theory
3 units

This course will demonstrate examples of network coding. Topics include: (1) Acyclic networks: linear network codes and desirable properties, existence and construction, static network codes. (2) Cyclic networks: convolutional network codes. Relations between network coding and classical algebraic coding theory will also be discussed.

IERG5300 / ENGG5302
Random Processes
3 units

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 note: Students are expected to have basic background in probability.

Exclusion: IERG5300 or SEEM5580

IERG5310
Security & Privacy in Cyber Systems
3 units

This course discusses the design and realization of security and privacy services in practical large-scale systems. Topics include: Online Identity and Authentication Management ; Safe Browsing ; Geolocation privacy ; Mobile payment systems with Smartcard/ Near Field Communications (NFC) ; e-cash ; Best privacy practices for Online Social Networks and Mobile applications ; Cloud Computing security and privacy: Trustworthy Cloud Infrastructure; Secure Outsourcing of Data and Computation ; Data Provenance; Virtual Machine security. Additional cyber security services/applications such as e-voting systems, secure and anonymous routing systems, digital rights management will also be covered.

Advisory: Students are expected to have basic background in Cyber Security.

IERG5320
Digital Forensics
3 units

This course is an introduction to digital forensics and cyber crime investigation. It will discuss techniques, methods, procedures and tools for applying forensic science and practice to the acquisition and analysis of evidence existing in digital form for the purposes of cyber crime investigation. Specific topics include computer (hard disk, file-systems) forensics, network/intrusion forensics, mobile device forensics, and a brief introduction to multimedia forensics. Techniques for detecting, tracking, dissecting and analyzing malware and other malicious cyberspace activities will also be covered.

Advisory: Students are expected to have basic background in C/C++ programming skills.

IERG5330
Network Economics
3 units

This course introduces the basics of microeconomics, game theory, and mechanism design, with applications in wireless communication networks and Internet. The detailed topics include market mechanisms, consumer surpluses, profit maximization, welfare maximization, pricing, strategic form games, dominator strategy equilibria, Nash equilibrium, Bayesian games, repeated game, social choice functions, incentive compatibility, the revelation theorem, auction design, and network externality.

Advisory: Students are expected to have basic background in optimization.

Course Exclusion: IERG6280.

IERG5340
IT Innovation and Entrepreneurship
3 units

Entrepreneur characteristics; product innovation: factors driving innovation, creation and evaluation of new product ideas, risk assessment of commercialization, critical factors for success; business planning: market assessment and strategy, business model, product planning, financial planning, cash flow; financing options, negotiation and deals; formation of a new venture: team, company and product building; execution and dealing with reality; exit strategies; case studies related to innovation and entrepreneurship in information engineering.

Course Exclusions: CMSC5730 or ENGG3802 or ENGG3803 or ENGG5700 or FTEC5570 or IEMS5712 or SEEM3450

IERG5350
Reinforcement Learning
3 units

This course aims to cover the fundamental topics relevant to Reinforcement Learning (RL), a computational learning approach where an agent tries to maximize the total amount of reward it receives while interacting with the complex and uncertain environments. The course content includes the basics of Markov Decision Processes, model-based and model-free RL techniques, policy optimization, RL distributed system design, as well as the case studies of RL for game playing such as AlphaGo, traffic simulation, and other robotics applications.

Advisory: Students are expected to have solid foundation on signal processing.

IERG5590
Advanced Topics in Blockchain
3 units

This course aims to cover advanced topics on blockchain. The focus will be on advanced topics like permissionless blockchain, Ethereum, smart contract, mining pool, permissioned blockchain, anonymity, new consensus, sidechain, ripple, offchain and lightning network.

Advisory: Students are expected to have solid foundations on operating systems and database systems.

Course Exclusion: CSCI5590 or FTEC5520 or IEMS5725


ENGG Courses

ENGG1110 / ESTR1002
Problem Solving By Programming
3 units

This is a computer-programming course to equip students with software knowledge and skills to solve engineering problems. Students will learn fundamental programming concepts in C, such as data representation and variables, operators and expressions, flow-control statements, functions, arrays, structures, pointer basics, input/ output handling, etc. In addition to lectures and e-learning, students will work in labs to practise solving problems and complete an engineering software project. The course will cover various problem solving methods such as incremental development, divide-and-conquer, debugging technique, finite-state machine, etc. Through practices, students will acquire skills to define problems and specifications, to perform modelling and simulation, to develop software system prototypes, to carry out verification, validation, and performance analysis.

Not for students who have taken CSCI1020 or 1030 or 1110 or 1120 or 1130 or 1510 or 1520 or 1530 or 1540 or ESTR1002 or 1100 or 1102.

ENGG1120 / ESTR1005
Linear Algebra for Engineers
3 units

This course aims at introducing students to the fundamental concepts and methods in linear algebra, which are key to many fields of engineering. Topics include systems of linear equations, Gauss elimination, matrix factorization, matrices and their operations, determinants, eigenvalues and eigenvectors, diagonalization, vector space, the Gram-Schmidt process, and linear transformation.

Not for students who have taken ENGG1410 or ESTR1004 or ESTR1005 or MATH1030 or MATH1038.

ENGG1130 / ESTR1006
Multivariable Calculus for Engineers
3 units

This course aims at introducing students to fundamental concepts and methods in multivariable calculus, which provide tools for solving engineering problems. Topics include functions of several variables, curves and surfaces, partial derivatives, Taylor’s formula, method of Lagrange multipliers, multiple integrals, line and surface integrals, Green’s theorem, Stokes’ theorem and divergence theorem.

Pre-requisite: MATH1510. Not for students who have taken ENGG1410 or ESTR1004 or 1006 or MATH2010 or 2018 or 2020 or 2028.

ENGG1310 / ESTR1003
Engineering Physics: Electromagnetics, Optics and Modern Physics
3 units

This is an introductory calculus-based engineering physics course covering topics in electromagnetics, optics and modern physics. Topics in electromagnetics include: electric and magnetic properties, Coulomb’s law, Gauss’ law, electromagnetic energy and forces, Biot-Savart law, electromagnetic fields and Maxwell’s equations, propagation of plane electromagnetic waves. Topics in optics include: optical interference, interferometers, optical diffraction. Topics in modern physics include: wave-particle duality, momentum and energy of photons and electrons, electronic states and energy bands, electrical conduction in metals and semiconductors. Contents will be supplemented by discussions on applications relevant to engineering.

Not for students who have taken ENGG2520, ESTR2006 or ESTR1003.

ENGG1820
Engineering Internship
1 unit

The objective of the course is to enable students to have a basic understanding of the practical aspects of the engineering profession. Prior to the enrolment of this course, students must have completed not less than 8 weeks of full-time internship approved by the Faculty of Engineering. To be qualified for award of the subject credit, the student must submit a report, within the semester of enrolment, summarizing what he or she has done and learnt during the internship, together with a testimonial from the corresponding employer. Pass or fail of the course will be determined by the professor-in-charge, based on the report and the testimonial submitted.

Student may look for internship opportunities at the Placement and Internship Program (PIP) website administered by Centre for Innovation and Technology of the Faculty, or from any other sources available to him or her. Students are recommended to seek professor-in-charge’s comment on internship undertaken before enrolling in the course.

Work-Study, the 12-month internship program organized by the Faculty, is a valid internship satisfying the requirements of ENGG1820.

Advisory: For year 2 or above Engineering Majors students. (new curriculum)

ENGG2440 / ESTR2004
Discrete Mathematics for Engineers
3 units

Set theory, functions, relations, combinatorics, graph theory, algebraic systems, propositional and predicate logic.

Not for students who have taken CSCI2110 or ENGG2460 or ESTR2004 or ESTR2010 or ESTR2362 or MIEG2440.

ENGG2720 / ESTR2014
Complex Variables for Engineers
2 units

A first course in complex numbers and the calculus of functions of one complex variable. Topics include complex numbers, complex differentiation, analytic functions and Cauchy–Riemann equations, elementary complex functions, complex integration, series, and residues integration.

Not for students who have taken ENGG2420 or 2460 or ESTR2000 or 2010 or 2014.

ENGG2740 / ESTR2016
Differential Equations for Engineers
2 units

A first course in the theory and applications of ordinary and partial differential equations. Topics include classification of differential equations, linear ordinary differential equations, Fourier series, and partial differential equations.

Not for students who have taken ENGG2420 or 2460 or ESTR2000 or 2010 or 2016.

ENGG2780 / ESTR2020
Statistics for Engineers
2 units

A first course in the fundamentals of statistics and their applications in engineering. Topics include populations and samples, point estimation, confidence intervals, hypothesis testing, and basics of linear regression.

Not for students who have taken ENGG2430 or ENGG2450 or ESTR2002 or ESTR2005 or 2020. Co-requisite(s): ENGG2760 or ESTR2018 or 2308 or IERG2470.


Courses offered by other departments

CSCI1120 / ESTR1100
Introduction to Computing Using C++
3 units

This course introduces the computer-oriented problem-solving methods and algorithm development; object oriented programming concepts; concepts of abstract data types; simple data structures; illustrative applications. The C++ programming language will be used.

Not for students who have taken ESTR1100 or 1102 or CSCI1020 or 1110 or 1130 or 1510 or 1520 or 1530 or 1540. Equivalent to CSCI1111 offered in 2007-08 and before.

CSCI1130 / ESTR1102
Introduction to Computing Using Java
3 units

This course aims at providing students with the basic knowledge of computer programming. In particular, programming methodologies such as object-oriented programming and structured programming, and the use of abstract data types will be illustrated using high-level programming languages such as Java.

Not for students who have taken ESTR1100 or 1102 or CSCI1030 or 1110 or 1120 or 1510 or 1520 or 1530 or 1540.

CSCI2100 / ESTR2102
Data Structures
3 units

This course introduces the concept of abstract data types and the advantages of data abstraction. Various commonly used abstract data types including vector, list, stack, queue, tree, and set and their implementations using different data structures (array, pointer based structures, linked list, 2-3 tree, B-tree, etc.) will be discussed. Sample applications such as searching, sorting, etc., will also be used to illustrate the use of data abstraction in computer programming. Analysis of the performance of searching and sorting algorithms. Application of data structure principles.

Not for students who have taken ESTR2102 or CSCI2520; Pre-requisite: CSCI1110 or 1120 or 1130 or 1510 or 1520 or 1530 or 1540 or ENGG1110 or ESTR1100 or ESTR1102 or ESTR1002 or its equivalent. For senior-year entrants, the prerequisite will be waived.

CSCI3150 / ESTR3102
Introduction to Operating Systems
3 units

This course introduces the various internal components of an operating system, including process and thread management, memory management, file system, security, and synchronization.

Prerequisite: ESTR2102 or CSCI2100 or 2520. For senior-year entrants, the prerequisite will be waived. Co-requisite: AIST3020 or CSCI2510 or CENG3420 or IERG3060 or equivalent. Not for students who have taken ESTR3102.

CSCI3160 / ESTR3104
Design and Analysis of Algorithms
3 units

This course introduces the basics of algorithm analysis: correctness and time complexity. Techniques for designing efficient algorithms: greedy method, divide and conquer, and dynamic programming. Fundamental graph algorithms: graph traversals, minimum spanning trees and shortest paths. Introduction to complexity theory: polynomial-time reductions and NP-completeness.

Not for students who have taken ESTR3104 or CSCI3190; Pre-requisites: CSCI2100 or CSCI2520 or ESTR2102, and CSCI2110 or ENGG2440 or ESTR2004.

CSCI3320
Fundamentals of Machine Learning
3 units

The first part introduces basic methods, including minimum error versus maximum likelihood, parametric versus nonparametric estimation, linear regression, factor analysis, Fisher analysis, singular value decomposition, clustering analysis, Gaussian Mixture, EM algorithm, spectral clustering, nonnegative matrix factorization. The second part provides an introduction on small sample size learning, consisting of model selection criteria, RPCL learning, automatic model selection during learning, regularization and sparse learning.

Prerequisite: ENGG2430 or 2450 or 2760 or 2780 or ESTR2002 or 2005 or 2018 or 2020 or 2308 or 2362 or IERG2470 or MIEG2440 or STAT2001.

CSCI4180 / ESTR4106
Introduction to Cloud Computing and Storage
3 units

This course introduces concepts and principles of cloud computing and storage. Subjects include: cloud computing models (SaaS, PaaS, IaaS), distributed and parallel data processing (MapReduce, Hadoop, multicore technologies), virtualization technologies (hypervisor, virtual machines, full virtualization, paravirtualization), data storage (cloud storage architectures, data centers, data deduplication), security/privacy issues, and case studies of real-world cloud services (Amazon EC2, Windows Azure). This course emphasizes applied methodologies of using cloud computing and storage for solving practical engineering problems.

Not for students who have taken ESTR4106. Pre-requisite: CSCI3150 or CENG3150 or ESTR3102.

CSCI4190
Introduction to Social Networks
3 units

This course introduces how the social, technological, and natural worlds are connected, and how these relationships can be modeled as high dimensional graphs. The use of algorithmic approach to study these large scale networks so as to shed light on their connections and intrinsic properties will be employed. Topics include:1) how opinions, personal interests, idea, news and political movements spread via social networks; 2) how to maintain the robustness of the world wide web; 3) why we observe fragility in some of our electrical networks; 4) understand the formation process of large scale online social networks like Facebook; 5) how to perform effective product advertisement in large scale online social networks; and 6) how information or virus can be propagated in these large scale online social networks. This course aims to provide simple but fundamental theories on how one can understand the formation and interaction on these social networks. This course is multi-disciplinary in nature, and it is suitable for engineering, science, mathematics, economics or business students.

Pre-requisite: CSCI2100 or 2520 or ESTR2102.

ELEG2700
Introduction to Electronic System Design
3 units

This is an introductory project-based course through which students learn how to design and realize a complete electronic system. Students are required to build a workable hardware system according to given specifications. The system components include electrical power supply, analog and digital circuits, sensors, actuators, display and microcontroller devices. Students will work in small groups to understand system requirements and specifications, identify design constraints, define project milestones, prototype the system and test the system. During the process of system implementation, students will acquire practical skills of software-hardware integrated design and debugging.

Not for students who have taken ENGG1100 or ESTR1000.

ELEG5491
Introduction to Deep Learning
3 units

This course provides an introduction to deep learning. Students taking this course will learn the theories, models, algorithms, implementation and recent progress of deep learning, and obtain empirical experience on training deep neural networks. The course starts with machine learning basics and some classical deep models (including convolutional neural network, deep belief net, and auto-encoder), followed by optimization techniques for training deep neural networks, implementation of large-scale deep learning, multi-task deep learning, transferred deep learning, recurrent neural networks, applications of deep learning to computer vision and speech recognition, and understanding why deep learning works. The students taking are expected to have some basic background knowledge on calculus, linear algebra, probability, statistics and random process as a prerequisite.

Not for students who have taken ELEG5040.

FTEC2101 / ESTR2520
Optimization Methods
3 units

This course introduces the essentials of optimization methods, including models, solution methods, and programming techniques. Topics cover linear programming, integer linear programming, nonlinear programming, and convex programming. It will highlight applications of these methods in Fintech, such as asset allocation, portfolio management, and data analysis.

Not for students who have taken ESTR2520.

LSCI1001
Basic Concepts in Biological Sciences
3 units

This foundation course is designed for students who have not taken science courses with a biology component at the senior secondary school level. It presents our current understandings on cells and molecules of life, genetics and evolution, organisms and environment, and health and diseases. Those students who have successfully completed this course will have a solid foundation for studying more advanced courses in life sciences.

Not for students who have taken LSCI1002 or 1003.

LSCI1003
Life Sciences for Engineers
3 units

This course gives engineering students exposure to some of the basic and essential concepts in biology and biotechnology. Topics include cell structure and energy metabolism, DNA structure and replication, protein structure and function, genetic engineering, stem cell and tissue regeneration, neural biology, cardiovascular system, muscle and skeletal system of animals, microbes and microbial biotechnology. The overall aim of this course is to introduce students with the fundamental ideas and concepts in life sciences especially those with relevance to engineering studies.

Not for students who have taken LSCI1001.

MAEG1020
Computational Design and Fabrication
3 units

This course introduces engineering design fundamentals, manufacturing, and practical use of advanced computer-aided design software and prototyping techniques. The topics include engineering graphics, geometric dimensioning and tolerances, working drawings, conventional manufacturing, reverse engineering, digital manufacturing (CNC), additive manufacturing, and micromachining.

Not for students who have taken MAEG2010.

MATH1020
General Mathematics
3 units

This course is designed to give students a solid foundation for learning calculus and other areas of mathematics in engineering.

MATH1510
Calculus for Engineers
3 units

This course is designed for engineering students who need to acquire skills in calculus as a crash introduction to the mathematics used in engineering. The course emphasizes on the technique of computation without theoretical discussion. Students are expected to have mathematics background equivalent to HKDSE with Extended Module I or II.

PHYS1003
General Physics for Engineers
3 units

This non-calculus-based course covers some essential concepts in mechanics, heat, electricity and magnetism. It is designed for engineering students to get an overview on what physics is about. Selected topics include: Newton's laws of motion, Archimedes' principle, fluid flow, temperature and heat, laws of thermodynamics, electric field and potential, current and circuits, and electromagnetic waves. The course is suitable for Engineering students without HKDSE physics or Combined Science with a physics component, or with permission of instructor.

PHYS1110
Engineering Physics: Mechanics and Thermodynamics
3 units

This is an introductory calculus-based engineering physics course covering topics in mechanics and thermodynamics. Topics include: Use of vectors in mechanics, force and motion, free-body diagrams, work and energy, potential energy and conservation of energy, momentum and impulse, torque, essential ideas in rotation, equilibrium, gravitation, ideal fluids, oscillations, waves and sound, elementary concepts of thermodynamics and heat transfer mechanisms. Contents will be supplemented by discussions on applications relevant to engineering. The course is suitable for Engineering students with HKDSE physics or Combined Science with a physics component, or with permission of instructor.

SEEM2440 / ESTR2500
Engineering Economics
3 units

Principles of engineering economy. Value and cost; cash flows. Economic analysis of alternatives, technological, social and human factors. Models involving allocation and scheduling of resources. Analytical techniques for evaluating industrial projects. Relationship between economics of technical choice and industrial productivity. Basic financial accounting concepts; accounting cycle; financial statements.

Not for students who have taken SEEM2510 or ESTR2500.

SEEM2460 / ESTR2540
Introduction to Data Science
3 units

This course presents an introductory roadmap into the newly emerged and rapidly evolving field of data science, with the objective of introducing the problem-solving mindset in a data-intensive context.

The course projects data science as a productive synthesis of its parent disciplines, including mathematics, statistics, computing, data mining, system science and data visualization, etc. Such a productive synthesis is applicable across many fields to bring about scientific discovery through data-intensive, analytical methods. This course aims to help navigate students in taking more advanced courses in its parent disciplines to build up their expertise in data science. We cover topics including:

History and impact of Data Science.

Collecting Data: sources, types and categorization of data.

Visualising Data: summary statistics, data display, data dictionaries, schema and graphical visualization.

Analysing Data: pattern recognition, correlations and relationships, hypotheses testing, statistical significance.

Investigating Data: data mining, machine learning, inference, meta-data, modeling, eliciting meaning and validation.

Applicational contexts: Examples of useful applications from case studies.

Not for students who have taken ESTR2540.