Courses in Software and Applications

IEMS5703 Network Programming and System Design

Client-server system design; interprocess communication; sockets; blocking and nonblocking I/O; multi-threaded process; iterative and concurrent server designs; systemthroughput bottlenecks; object-oriented programming (Java); case studies: FTP, RPC, Web.
* Not for students who have taken IERG4180

Further description:
This course studies the design and programming of network software applications and systems. Topics include network programming interfaces, I/O models, protocol design, server design, multithreading, object-oriented concepts, and case studies. Additional topics of current industry trends and technologies will also be introduced.


IEMS5707 Multimedia Coding and Processing

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


IEMS5718 Internet Security and Web Development

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 and CMSC5729


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.
* Not for students who have taken CSCI4190


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 and online social networks, 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 technical skills in programming and development.