COMPUTER GAMES DESIGN (CS2020)

This project-based course provides an in-depth understanding of how the computer game design process works. Students with little or no programming experience will learn how to create their own computer games using either "drag-and-drop" game engines to create 2Dimensional and 3Dimensional games without any programming or computer programming for wireless devices (cell phones), using a subset of Java programming language J2ME, with examples from the game development process. This project-based course provides an in-depth understanding of how the computer game design process works. Students with little or no programming experience will learn how to create their own computer games using either "drag-and-drop" game engines to create 2Dimensional and 3Dimensional games without any programming or computer programming for wireless devices (cell phones), using a subset of Java programming language J2ME, with examples from the game development process.

COMPUTER PROGRAMMING II (CS2040)

This course teaches object-oriented programming (OOP) from the ground up. You’ll start with class and object design, then advance to key OOP principles: inheritance, polymorphism, and abstraction. Learn to write reusable, modular code and manage complexity through encapsulation.
The curriculum also covers exception handling, debugging, and testing using modern IDEs, ensuring you can build robust applications. Finally, you’ll get an introduction to GUI design, enabling you to create interactive user interfaces.
By the end, you’ll have the skills to develop well-structured software using OOP best practices.

SECURITY, PRIVACY, & TRUST (CS2055)

The course provides an understanding on the need for security, privacy and trust in ICT. Legal and ethical aspects will be covered. Technology for security, privacy and trust will be presented at a functional level. The following topics will be covered: security threats and solutions, intellectual property rights, anonymity and identity, business stakeholders privacy obligations, privacy in today applications (search engine, social networks, location oriented services, RFId-based applications), privacy enhancing technologies, privacy policy enforcement, trusted computing.

ALGORITHMS & DATA STRUCTURES (CS2071)

This course provides a practical introduction to essential data structures (including stacks, queues, sets, trees, and graphs) and foundational algorithms for sorting, searching, and traversal. You’ll learn how to select and implement the right structure or algorithm for real-world problems, balancing efficiency and functionality.
The course also emphasizes algorithm complexity analysis, teaching you to use Big-O notation to evaluate and compare the performance of different approaches.
Through hands-on exercises using predefined software libraries, you will apply these fundamental concepts in real problem solving.
By the end, you’ll be equipped to choose data structures and algorithms effectively in your programming projects.

TOPICS IN COMPUTER SCIENCE (CS2091)

Covers a current CS topic of interest. Content changes each semester the course is offered.

COMPUTER NETWORKS (CS3015)

The course explains through an architecture perspective the principles and practice of computer networking, with emphasis on the Internet and on pervasive computing. The following topics will be covered: structure and components of distributed systems, layered ISO/OSI architectures, protocols, local Area Networks, wide area networking issues including routing, flow control. Some advanced topics will also be covered such as pervasive computing, ad-hoc networks, security and privacy.

ARTIFICIAL INTELLIGENCE (CS3026)

Introduces some of the key ideas and concepts in artificial intelligence (e.g. knowledge bases, problem solving). Provides an overview of current applications (expert systems and rule-based systems, language understanding, perception, learning). Introduces some of the techniques (matching, goal reduction, tree-pruning, searching, etc.) that are typically used.

OPERATING SYSTEMS (CS3032)

Studies the design and implementation of general-purpose operating systems on digital computers: memory management, virtual memory, storage hierarchy evaluation, multiprogramming, process creation, synchronization, deadlock, message communication, parallel programming constructs, I/O management, and file systems. Includes case studies of major operating systems.

EFFICIENT ALGORITHMS (CS3046)

Develops skill in devising combinatorial algorithms and in analyzing their behavior. Starts with a brief introduction on formal systems, automata and Turing machines and continues with a study of algorithms for sorting, searching, string processing, geometry, graphs, numeric, and algebraic applications.

HUMAN-COMPUTER INTERACTION (CS3048)

Introduces theories of human-computer interaction and analyzes human factors related to the design, development, and use of Information Systems. Students will apply these theories with examples of design, implementation, and evaluation of multimedia user interfaces. The subject of this course is inherently interdisciplinary and the students attending the course normally represent several majors.