

This course delves into the fundamental principles of operating systems, examining their basic structure and key concepts such as abstraction, concurrency, scalability, persistence, and resource allocation. Additionally, it explores the roles of operating systems in managing user program execution, facilitating device interaction, and acting as vital intermediaries between users and hardware components.

The course aims to delve into topics in algorithm design and analysis, focusing on intricate problem-solving techniques applicable across diverse computational domains. The course will explore algorithms, data structures, graphs and beyond, providing students with a comprehensive understanding of algorithmic efficiency and its applications in various fields.
Through a combination of theoretical exploration and practical applications, students will develop proficiency in analyzing, designing, and implementing algorithms to tackle complex computational challenges. Moreover, students will cultivate adeptness in confronting algorithmic dilemmas encountered in real-world scenarios, thereby augmenting their ability in problem-solving across a spectrum of computational realms.

This course offers a comprehensive study of programming languages, focusing on core concepts and design tradeoffs. It
covers the history, classifications, and characteristics of languages, along with their real-world applications. Key topics
include interpreters, compilers, syntax, semantics, functional programming, and building domain-specific languages.
Emphasis is placed on analyzing, evaluating, and designing solutions to address modern computing problems.

This course provides a comprehensive introduction to the fundamental concepts, techniques, and applications of machine
learning. Students will explore various types of learning, including supervised and unsupervised methods, and gain handson experience with Python libraries for data manipulation and analysis. Key topics include linear regression, artificial neural
networks, ensemble learning, and an overview of deep learning. Through practical assignments, students will learn to
implement algorithms and evaluate the model performance. The course aims to equip students with the necessary skills to
tackle real-world machine learning problems and understand the underlying principles driving modern AI technologies.



The global technology revolution has progressed to the point that every home and workplace is equipped with digital devices and electronic appliances, all of which are vulnerable to intruder attacks from anywhere on the planet. As a result, both at home and at work, there is a pressing need to ensure cyber security to protect ourselves from hackers. This course will introduce the important theories, tools, and techniques that are needed for the students to become knowledgeable in the field of cybersecurity, whereby, they will be introduced to computer software and programming to become efficient ethical hackers or to take up the ethical hacking examination.

The final year capstone project for the MSIT program is designed to enable students to apply their knowledge of information technology, computer science and other disciplines to the analysis of complex computing problems. Throughout the course, students will be expected to design and evaluate solutions to complex computing problems using industry-recognized best practices and standards.
The course will provide students with the opportunity to analyze user needs in the development and implementation of computing-based solutions. Moreover, students will learn to assess the ethical considerations in the development, implementation, evaluation, and management of IT systems. The course will also emphasize the importance of constructing clear, well-organized arguments supported by credible research-based evidence.