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 emphasize database concepts, developments, use, and management in three main areas: database concepts, practice, and emerging trends. Relational database systems are the main focus, but other types, including object-oriented databases, are studied. The practical design of databases and developing database applications using modern software tools will be emphasized.

This course covers the core concepts of modern operating systems. In this course, we’ll discuss the basic structure of the operating system which is based on three key ideas: virtualization, concurrency, and persistence. Through these three key ideas, we’ll see how an operating system controls the execution of user programs, attached devices and acts as an interface between computer users and the hardware. 

This course is an introduction to design of computer algorithms and the analysis of sophisticated algorithms. Students learn how to analyze the asymptotic performance of algorithms, and gain familiarity with major algorithms and data structures. They also apply important algorithmic design paradigms and methods of analysis, in addition to synthesizing efficient algorithms in common software engineering design situations. Students will use Python or Java programming language to implement and analyze algorithms to evaluate efficiency.
There is tremendous diversity when it comes to computer languages. New languages are created to solve new computing problems. This course covers the basic concepts and design tradeoffs of programming languages. We will examine the different types of languages, their properties, and their uses. We will also look at the history of programming and how computer languages operate to interact with computers and manipulate data.
This course covers the theory and practical algorithms for machine learning from a variety of perspectives and will introduce the fundamental concepts that enable computers to learn from experience. An emphasis will be placed on practical application and real world problems.
Foundation of Software Engineering course is designed to prepare graduates for careers that involve the development, design, testing, maintenance, and documentation of various software products. This gives in-depth coverage of the areas of software engineering that are essential for becoming proficient in the field.
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.