Courses in Big Data and Emerging Applications

IEMS5707 Multimedia Coding and Applications

Digital text, image, audio and video coding techniques; digital image and video processing; standard of video compression: MPEG and H.261; advanced topics in multimedia systems and applications.

*Not for students who have taken IERG4190

IEMS5718 Web Programming and Internet Security

The World-Wide Web increasingly becomes the popular choice for delivering interactive applications, offering advantages such as instantaneous access, automated upgrade, online collaboration. This course introduces web technologies including client-side scripting, server programming, database, and user interface. It also briefly describes other related topics such as free/open hosting platforms and SaaS (Software as a Service), open API, virtualized servers on cloud. RIA (Rich Internet Application) across the online and mobile networks. Students also learn web programming concepts, and learn common web security threats and how to avoid them. Hands-on projects may be used to enhance the experience and the appreciation of the topics.

* Not for students who have taken IERG4210

IEMS5720 Social Networking

Social networking concerned with the conduction of various social behaviors over the internet, as well as the underlying technologies. It is an interdisciplinary subject involving multiple fields including computer networks an applications, psychology, as well as sociology. This course provides a holistic overview on both technology and humanity aspects of social networks, with emphases on the social sciences aspects and perspectives. It covers topics such as social network analysis (e.g. discourse analysis, semantics, social network pattern), network-mediated knowledge building and collaboration, epistemology in social networks, and applications of social networks in business and education.

IEMS5722 Mobile Network Programming and Distributed Server Architecture

This course studies the essentials, advanced topics and emerging technologies on mobile network programming on two popular mobile platforms - Android and IOS.  Topics include the mobile programming language fundementals, application framwork, application components, network programming, multithreading and so on.  Further, different distributed server architectures and models that can offer scalability and extensibility will be highlighted.

Further description:

This course will cover topics and emerging technologies on mobile network programming mainly on the Android platform. Topics include data communication and networking, such as HTTP, socket programming, Bluetooth and NFC, in the context of mobile application development. Integration of third-party APIs and SDKs will be introduced. The course will also cover the major concepts and design principles of distributed server architectures that are used to support network-based mobile applications. There will also be brief introduction of the iOS platform and the architecture of some popular network-based mobile applications. Students should have acquired good knowledge in Java programming before enrolling in this course.

IEMS5723 Social Media Analytics

This course gives an overview of social media, studies how different tools in information science can be used to analyse social media content, and how these results can be useful in different applications. This course will cover both knowledge in computational analysis of social media and the corresponding social networks, and basic technical skills in Python programming for the analysis.

IEMS5730 Big Data Systems and Information Processing

This course aims to provide students an understanding in the operating principles and hands-on experience with mainstream Big Data Computing systems. Open-source platforms for Big Data processing and analytics would be discussed. Topics to be covered include:

• Programming models and design patterns for mainstream Big Data computational frameworks;
• System Architecture and Resource Management for Data-center-scale Computing;
• System Architecture and Programming Interface of Distributed Big Data stores;
• High-level Big Data Query languages and their processing systems;

Advisory: This course contains substantial hands-on components which require solid background in programming and hands-on operating systems experience.

*Not for students who have taken ESTR4316 or IERG4330

IEMS5780 Building and Deploying Scalable Machine Learning Services

Machine learning refers to making computer perform various tasks by learning from data. It is also now one of the essential components in many online services, for example, to generate personalized recommendations on e-commerce platforms, perform face detection and recognition or predict the arrival time of delivery, etc. Given the widespread usage of machine learning, it is important that complex machine learning models can be deployed in an efficient way to support real time services at scale and to allow seamless update of the models. This course will first introduce fundamental concepts in the architecture of scalable internet-based services, distributed/network programming and infrastructure support for content delivery. It then goes on to introduce how scalable online services can be created and maintained, with a focus on services that involve machine learning. Topics will include asynchronous programming, distributed message queues and brokers, load balancers, micro-services, distributed caches and databases, and challenges and solutions in building and deploying various machine learning models/services in a production environment.

Advisory note: Students are expected to have background in computer networking and machine learning.

*Not for students who have taken IERG4080 or ESTR4312 or IEMS5703