Developing and managing efficient and effective database applications requires understanding the fundamentals of database management systems, techniques for the design of databases, and database administration principles. This course will focus on three key areas related to databases: understanding fundamental concepts, practical application, and staying abreast of emerging trends. Special emphasis will be placed on the hands-on design of databases and the development of database applications using contemporary software tools. 

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.

This course equips students with essential knowledge and practical skills in software development, design, testing, maintenance, and documentation. This course aligns with current industry trends, focusing on AI and Machine Learning methodologies, DevOps practices, cloud technologies, AI integration, and cybersecurity. It emphasizes real-world problem-solving through project-based learning and hands-on assignments. Students will explore roles such as software architect, quality assurance engineer, full-stack developer, mobile developer, security engineer, and project manager. The course highlights collaborative teamwork, software lifecycle management, and business impact analysis. By the end of the course, students will be able to apply software engineering principles effectively in diverse professional settings.
Human-Computer Interaction (HCI) focuses on the theories and technologies that establish an understanding of the complexity and relationship between humans and computing systems. The course includes the human-computer interface in the design and development of technologies, using cognitive and social characteristics of people, as well limitations that affect design and implementation decision making.

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.