• Overview
  • Program Objectives & Student Outcomes
  • CS Specializations
  • Major Requirements
  • Degree Plans & Catalogues
  • Course Discription
  • Course Outlines
  • Student Training
  • CS Minor

The undergraduate program in computer science equips the candidates with necessary knowledge and skills for the existing and emerging challenges that a career in computing and internet technology.  More emphasize is to produce graduates with a high quality of independent thought, flexibility and maturity based on a sound technical knowledge of the field. However, the extensive breadth of computer science discipline, bachelor’s programs can differ significantly in terms of focus and available specializations in Intelligent Systems and Data Science, Cybersecurity and Computing Infrastructure, and Web and Software Development.

The BSc. program in Computer Science has been accredited by the Computing Accreditation Commission of ABET, which is the global accreditor of college and university programs in applied and natural science, computing, engineering, and engineering technology.

 

 

To graduate from the BSc. in Computer Science program, a student must complete 122 credit hours, distributed according to ten main categories for cohorts 2017-2018 (General Computer Science program with no specialization) and for cohorts 2019 onwards with the three specializations as specified in the following table.

 

The structure of the BSc. in Computer Science Degree Program

Main Categories

Number of Credits

Cohorts 2017- 2018

Number of Credits

Cohorts 2019 Onwards (with specializations)

University Requirements (UR)

6

6

University Electives (UE)

6

6

College Requirements (CR)

3

3

College Electives (CE)

16

16

Departmental Requirements (DR)

12

12

Departmental Electives (DE)

12

0

Major Requirements (AR)

43

42

Major Electives (AE)  

24

9

Specialization Requirements (SR) 

0

22

Specialization Electives (SE)   

0

6

 

 

Program Educational Objectives (PEOs)

Within a few years after graduation, graduates of the computer science program at Sultan Qaboos University will be able to use the knowledge and skills acquired from their academic program to attain some of the following accomplishments.

  • PEO1: Become successful computer science professionals and practitioners who can interact and collaborate effectively in various work environments

  • PEO2: Engage in ongoing lifelong learning and be able to pursue graduate studies at respectable universities.

  • PEO3: Contribute productively to the IT needs of the society, be socially responsible, and become mature societal leaders locally and globally. 

 

Student Outcomes (SOs)

The Computer Science program at SQU enables the students to achieve at the time of graduation the following student outcomes:

  • SO1: Analyze a complex computing problem and to apply principles of computing andother relevant disciplines to identify solutions.

  • SO2: Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.

  • SO3: Communicate effectively in a variety of professional contexts.

  • SO4: Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles.

  • SO5: Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline. 

  • SO6: Apply computer science theory and software development fundamentals to produce computing-based solutions.

 

 

The CS program for cohorts 2019-onwards includes three specializations which are: (1) Intelligent Systems and Data Science (ISDS), (2) Cybersecurity and Computing Infrastructure (CCI), and (3) Web and Software Development (WSD). The chart below shows the different study paths in this 2019-onwards CS program with specializations.

 

cs specilization

 

A student can choose to complete one of the three specializations, complete a minor, or just take mixed electives without completing neither a specialization nor a minor. This latter path (without specialization and without a minor) is called General Computer Science. The CS program with specializations has 22 credits for Specialization Requirements, 6 credits hours for Specialization Electives and 9 credit hours for Major Electives (at least 6 credits from other departments in the College of Science). If a student does not opt for a specialization, then the program includes a total of 33 credit hours of Major Elective courses some of which can be used towards a minor (18 credits can be used to do a minor) and the remaining credits (15 credits) can be Computer Science elective courses or elective courses from other departments in the College of Science. The final year project course is a compulsory course in all five paths.

 

  1. Intelligent Systems and Data Science (ISDS) Specialization

Computers are changing our lives and Artificial Intelligence (AI) techniques are paving the way for this rapid transformation. It applies to domains as diverse as: human-computer interaction (e.g. iPhone’s Siri), search engines (e.g. Google’s webpage ranking and advertisement recommendation), bioinformatics (e.g. Detection of deleterious human mutations), medical diagnosis (e.g. prediction of illness severity in preterm infants), computer games (e.g. software agents that strategize their attacks), cyber-security (e.g. credit-card fraud detection), and computer vision (e.g. Microsoft’s Kinect).

The ISDS Specialization focuses on the fundamental mechanisms that enable the construction of intelligent systems that can operate autonomously, learn from experience, plan their actions, and solve complex problems. The specialization prepares students to engage in advanced study of AI with a focus on Machine Learning, and Data Analytics techniques. It covers key challenges in computing, such as how to represent human knowledge and mechanize thought processes, how to use computational models to understand, explain, and predict complex behavior, and how to make computers as easy to interact with as people.

 

  1. Cybersecurity and Computing Infrastructure (CCI) Specialization

A secure computing infrastructure constitutes the backbone of modern computing systems. Information security, networking, operating systems, and distributed computing are key knowledge areas for a BSc in Computer Science as indicated in the IEEE/ACM computer science curriculum guidelines. Furthermore, the need for specialized graduates in these areas for employment in government and private sector organizations was expressed by alumni and by the Department Advisory Board in meetings and surveys conducted for program constituents. Efforts have been made to design and structure a CCI specialization in a way that meets these expressed needs taking into account new trends such as cybersecurity, distributed systems, and cloud computing. This specialization extends the knowledge and skills gained in the earlier core systems courses to more advanced systems topics eminent for contemporary computing systems such as network security, mobile networks, distributed systems, and cloud computing. The CCI specialization will contribute to fulfilling the growing need in Oman for qualified professionals in these important areas.

 

  1. Web and Software Development (WSD) Specialization

The Web Development & Software Engineering discipline offers a unique learning environment for the future graduate students to contribute productively to the development of the IT industry where the Sultanate of Oman is facing shortage. Based on the recommendations of the Advisory Board an ABET expert (external examiner) and the needs of the current market, the Department of Computer Science has decided to develop the new specialization: “Web Development & Software Engineering”.

Most of the real-life applications are pervasive and ubiquitous, accessed through the Internet as applications or services. Hence, their development process is more and more complex, which requires to incorporate into the program the principles of software engineering to challenge the development Mobile and Web applications and services, specifically in industrial, scientific, technical or educational settings. The specialization extends the knowledge gained by the undergraduate students in the following eminent and dominating areas: (1) Software Engineering such as Requirement Engineering and Software Patterns and (2) Information Technology, specifically Mobile Applications, Web Applications, and Web Services.

The courses of this specialization provide solid foundations for understanding the changing roles of process development in society; and allow students to apply their knowledge to solve a variety of problems through laboratory and project activities offered by this specialization.

 

CAREER OPPORTUNITIES

Computer Science is one of the most exciting and rapidly growing professions worldwide. Numerous studies have estimated that the field continues to be among the top two or three in demand. The supply of educated graduates, although increasing every year, is far exceeded by the demand for professionals at all levels. For the last several years, computer science graduates with a bachelor’s degree have commanded the highest starting salary among all undergraduates. Computer scientists offer expertise in the effective and efficient use of computers for industry, business, government, research and education. The field of computer science has an exceptionally bright future. The three specializations have a wide variety of career paths including the following:

 

Web and Software Development

Cybersecurity & Computing Infrastructure

Intelligent Systems and Data Science

Software Developer,

Software Tester,

Software Project manager,

Database Developer,

Web Developer,

Web Service Developer,

SOA Architect,

Mobile Application Developer,

Multimedia Programmer,

Embedded Systems Developer

Information Security Officer,

Computer System Security Administrator,

Data Centre Technician, Network Administrator, System Administrator,

IT technician

Data Analyst,

Data Scientist,

Artificial Intelligence Engineer,

Machine Learning Engineer,

Robot Programmer,

Software Game Programmer, Research Scientist

 

 

 

Admission to Computer Science

The students can apply for a major online at the end of every semester, on satisfying the requirements. To apply for major, students from all cohorts need LANC2058 and 3 introductory science courses. Students who are willing to majored in computer science should satisfy the following requirements:

Cohort

Courses Required to choose Major

(in addition to LAN2058)

Minimum Departmental Requirements

All cohorts

COMP2101 and Two Science Courses from: (MATH2107, BIOL2101, CHEM2101, ERSC2101, PHYS2101 or STAT2101)

C in COMP2101

 

 

Admission to Specializations

In order to apply for a specialization, the student must complete at least 2 out of the following 3 courses. Each of these 3 courses is required for admission to one of the 3 specializations:

Web and Software Development

Cybersecurity and Computing Infrastructure

Intelligent Systems and Data Science

COMP3401

COMP3502

COMP3600

 

 

The department will consider applications to the specializations once per semester (Fall and Spring). The applications will be sorted using the following sorting keys in this order: (i) the first preference of the applicant; (ii) the applicant’s grade in the admission course associated with the first preference (COMP3401, COMP3502 or COMP3600); then (iii) the cumulative GPA.

For more information about the computer science major and specializations, students can contact the department representative:  

 

 

Dr. Farha Al Kharousi

 (Office#: 209, Tel. Ext: 2228, e-mail: farha@squ.edu.om)

 

In order to graduate with a Bachelor of Science in Computer Science degree, a student is required to complete 122 total credit hours.  The credit hours are allocated to University, College and Department requirements.

The computer science undergraduate degree plans & degree audit can be downloaded by clicking on the following links:

Cohorts 2010-2016 Degree plan Degree_Audit
Cohort 2017 Degree plan Degree_Audit
Cohort 2018 Degree plan Degree_Audit
Cohorts 2019-2020 Degree plan Degree_Audit
Cohorts 2021-2025 Degree plan Degree_Audit

 

For the detailed information about the computer science program check the following catalogues and brochures for the BSc in Computer Science for cohorts 2010-2025:

Cohorts 2021-2025 

(Updated 30 November 2022)

DCS_Catalogue-2021-2025 BSc Brochure 2021/2025
Cohorts 2019-2020 DCS Catalogue 2019/2020 BSc Brochure 2019/2020
Cohort 2010-2018 DCS Catalogue 2017/2018 BSc_Brochure 2017/2018

 

Course Descriptions

 

COMP2101     Introduction to Computer Science 

4 Credit Hours              Prerequisite: (FPCS0101, FPEL0560) or (FPCS0102, FPEL0560) or (FPCS0101, FPEL0600) or

                                                             (FPCS0102, FPEL0600) or (FPCS0101, FPEL0601) or (FPCS0102, FPEL0601) or

                                                             (FPCS0101, FPEL0602) or (FPCS0102, FPEL0602)

This course introduces some fundamental topics in computer science. This includes numbering systems, data representation, problem solving and algorithm design. Furthermore, the course includes the study and practice of basic programing concepts such as data types, variables, arrays, selection, repetition, data files and functions.

 

COMP2102     Problem Solving and Programming

3 Credit Hours                          Prerequisite: COMP2101

This course is emphasizing problem solving techniques and computer programming. The course topics include problem solving, problem decomposition and modularity, composite data types, pointers and dynamic memory allocation to object-oriented programming.

 

COMP2105     Introduction to Problem Solving with Visual Basic

3 Credit Hours                          Prerequisite: COMP2101

This course provides the necessary intermediate-level programming skills and knowledge for developing windows–based applications using Visual Basic programming environment. Students will learn how-to write event-driven programs, create stand-alone applications, and build effective user interfaces.

 

COMP2202     Fundamentals of Object Oriented Programming

3 Credit Hours                          Prerequisite: COMP2101

This course introduces the concepts of object-oriented programming (OOP) and object-oriented design (OOD). The course addresses the following topics: Abstract data types (ADTs), classes, objects, inheritance, polymorphism, exceptions, and memory allocation. On completion of this course students should be familiar with OOP principles and be able to implement them using an object oriented programming language.

 

COMP2206     Introduction to Java

3 Credit Hours                          Prerequisite: COMP2202

This course aims at introducing the students to the wonderful world of Java programming. The basic structures of the language will be introduced first, then more advanced features related to GUI design, exception handling, File processing, and 2D Graphics, will be discussed. On completion of this course, students should be able to design and develop general-purpose Java applications.

 

COMP3203     Introduction to Data Structures & Algorithms

3 Credit Hours                          Prerequisite: COMP2202 and MATH3340 and LANC2058

This course introduces the basic data structures, and algorithms for processing data. It emphasizes how to specify, use, and implement Abstract Data Types (ADT). The course also covers algorithm complexity analysis techniques. Topics covered include ADTs (e.g. lists, stacks, queues, trees, hash tables), and basic sorting, and searching algorithms.

 

COMP3204     Advanced Java Programming

3 Credit Hours                          Prerequisite: COMP2202 and LANC2058

This course exposes the student to advanced features of Java language such as: advanced Graphical User Interface (GUI) components, 2D/3D graphics, multimedia programming, multithreading, network programming, Java database connectivity, Java structures and collections, servlets and Java beans.

 

COMP3205     Database Systems      

3 Credit Hours                          Prerequisite:     COMP3203 and LANC2058

This course introduces fundamental concepts of database systems, namely structural and functional architectures, data modeling, entity-relationship model, relational model, normalization, database query languages (relational algebra, relational calculus, SQL), physical data storage (file structures and organizations, and indexing), and an introduction to the functionality of database management systems such as transaction management.

 

COMP3302     Introduction to Multimedia

3 Credit Hours                          Prerequisite: COMP2202

This course aims at introducing the history, theory, and development of multimedia systems. It provides an introduction to multimedia authoring tools and integrated interface design. It also describes the digital representation of multimedia elements and multimedia compression techniques and standards.

 

COMP3401     Introduction to Software Engineering

4 Credit Hours                          Prerequisite: COMP3203

This is an introductory course to the field of software engineering. It presents the basic principles and concepts of software engineering giving a firm foundation for further course work in the field and computers in general. It gives broad coverage of the most important terminology and concepts in software engineering. Upon completing this course, students will be able to do basic modeling and design, particularly using UML. They will also have a basic understanding of requirements, software architecture, and testing.

 

COMP3501     Computer Organization and Assembly Language

3 Credit Hours                          Prerequisite: COMP2101 and ECCE3206 and LANC2058

The objective of the course is to introduce the students to the fundamentals of computer organization and assembly language programming. The course topics include data representations, instruction set architectures, assembly language programming, memory hierarchy, cache memory, virtual memory, input/output and storage systems, and introduction to parallel architectures. Students will practice assembly language programming of a selected architecture.

 

COMP3502     Computer Networks  

3 Credit Hours                          Prerequisite:     COMP3203

The course aims to expose students to general aspects of computer networks such as networks hardware, networks performance evaluation, and communication protocols including: physical and data link layer, medium access control, routing, TCP/UDP, and the implementation of networking applications.

 

COMP3600     Intelligent Systems     

3 Credit Hours                          Prerequisite:     COMP3203 and LANC2058

This course introduces students to basic principles, techniques and algorithms for implementing intelligent systems. It covers the key ideas and principles that drive the practice and advancement of Artificial Intelligence, namely, agents and environment, search, knowledge representation, reasoning and learning.

 

COMP3601     Bioinformatics Algorithms

3 Credit Hours                          Prerequisite: BIOL2101 and COMP2101

This course introduces key bioinformatics concepts and their related computational techniques. A hands-on approach is adopted to discuss the underlying algorithms currently used to analyze biological data. Major topics covered include, Gene and Protein Alignments, Sequence Assembly, Gene Prediction, Structure prediction, Molecular Evolution and Gene Expressions. This course is recommended for students from both Biology and Computer Science majors.

 

 COMP3602    Data Analysis and Visualization with Python

3 Credit Hours                          Prerequisite: COMP2101

The course introduces students to manipulating, processing, cleaning, and crunching data in Python. Students will be exposed to Python libraries needed to effectively solve a broad set of data analysis problems such as NumPy, Pandas, and Matplotlib. It includes practical case studies that show students how to solve a broad set of data analysis problems effectively. This course is ideal for data analysts new to Python and for Python programmers new to data science and scientific computing.

 

COMP3603     Programming Fundamentals for Machine Learning

3 Credit Hours                          Prerequisite: COMP2101

This course covers the fundamental programming elements necessary for machine learning. It presents topics on data structures and algorithms, computational thinking, programming and problem solving, efficiency and complexity of algorithms. It aims to acquire skills in algorithmic and programming by solving mathematical problems related to machine learning.

 

COMP3700     Introduction to Web Computing

3 Credit Hours                          Prerequisite: COMP2202 and LANC2058

This course introduces the Internet, WWW, protocols and architectures of Web applications, Web browsers, Web servers, tools to develop applications running on the client side (e.g. XHTML, CSS, HTML5, JavaScript, Dynamic HTML), tools to develop applications running on the server side (e.g. PHP) and understanding the functionalities and roles these tools have in developing Web applications.

 

COMP4100     Ethics and Skills for Computing Professionals

2 Credit Hours                          Prerequisite: COMP3401

This course has two parts. The first part provides theoretical backgrounds about the social, ethical, legal, technical and professional issues encountered in the information age including the historical and social context, intellectual property, computer crimes, risks and liabilities, and professional responsibilities. The second part of this course provides students with the technical communication skills and research methodologies. It aims to help students learning how to read, analyze, write and present technical documents related computer science.

 

COMP4202     Database Development

3 Credit Hours                          Prerequisite: COMP3205

The main objective of this course is to introduce the environment of database developing tools/packages such as Oracle, and use it towards implementing real life database applications. Emphasis is centered on providing students with skills needed to design, develop and maintain database applications using Structured Query Language (SQL), programming languages that hosts SQL such as PL/SQL, and tools such as SQL Plus or SQL Developer, Forms and Reports.

 

COMP4204     Advanced Data Structures & Algorithms

3 Credit Hours                          Prerequisite: COMP3203

This course provides a study of advanced data structures and algorithms for solving a number of fundamental computing problems. It includes coverage of advanced methods and techniques for designing algorithms using appropriate data structures and analyzing their efficiency.

 

COMP4205     Competitive Programming

3 Credit Hours                          Prerequisite: COMP3203

This course introduces the students to the concepts and techniques used in the competitive programming environments. The course aims to strengthen the students’ abilities to analyze problems effectively, design and implement solutions with the available computing resources, and employ data-structures and algorithms learned from previous courses to produce efficiently powerful solutions for real-life problems. In particular, the course emphasizes, using a hands-on approach, the understanding of basic mathematics, data-structures, dynamic programming, graphs algorithms, search algorithms, string manipulation algorithms, and computational geometry.

 

COMP4206     Mobile Application Programming

3 Credit Hours                          Prerequisite: COMP3203

As mobile devices are becoming more ubiquitous, developers are now devoting significant effort to build applications for these smartphone and tablet devices. This course examines the principles of mobile application design and development. Topics will include introduction to mobile computing, existing approaches and available technologies, mobile application development architectures (MVC), user interface design and building, input methods, data handling, messaging, network techniques, location-based services, content providers and security issues in mobile applications.

 

COMP4212     Introduction to Information Retrieval

3 Credit Hours                          Prerequisite: COMP3203

This course addresses aspects of the automatic collection, retrieval, matching, ranking, and presentation of machine-readable information resources ("Information Retrieval" or IR). Students study the techniques most commonly associated with full text retrieval and search engine design by examining retrieval models, text analysis, and text and multimedia languages and properties. In addition, students review indexing and searching techniques, user interface designs, relevance feedback, evaluation, and developing techniques, such as information visualization.

 

COMP4300     Computer Graphics I

3 Credit Hours                          Prerequisite: COMP3203 and MATH2202

Computer Graphics1 introduces the basic principles and techniques of Computer Graphics. The primary goal is to introduce many important data structures and algorithms that are useful for creating pictures on a computer. Emphasis is on the development of practical skills in using graphics libraries and tools. The objective is to provide students with sufficient background to write substantial computer graphics applications. Areas covered include graphics displays, transformations (viewing and projection)

 

COMP4402     Software Testing

3 Credit Hours                          Prerequisite: COMP3401

 

This course will address topics in software testing. It addresses issues related to whether the system is correct (with respect to some specification), and the question whether the right system was built, also a depth study of strategies and techniques used in software testing. Topics included are introduction to software testing, role of testing in SDLC, software testing standards and metrics, testing levels, testing types, test management, testing tools and testing object oriented software.

 

COMP4404     Software Project Management

3 Credit Hours                          Prerequisite: COMP3401

This course covers basics of software project managements including: project planning, program management and project evaluation, Selection of an appropriate project approach, Software effort estimation, Activity planning, Risk management, Resource allocation, Monitoring and control, contracts, Managing people and organizing teams, Software quality, Agile Method.

 

COMP4445     Summer Training

0 Credit Hours                          Prerequisite: COMP4100 + Completion of 80 credits

The student is expected to undertake a department approved practical training on an IT-related topic in a government or private institution in Oman. The training will take place during the normal summer teaching period. A training supervisor from the institution should be assigned. The student is expected to submit a report and the supervisor is expected to submit a statement of student performance.

 

COMP4471     Computational Methods I

3 Credit Hours                          Prerequisite: MATH2108 and MATH2202 and COMP2101

This is the first course to expose the students to numerical techniques and their implementation on a computer for solving mathematical problems. The aspects of analysis of the techniques and errors due to computations are emphasized. The topics covered include errors and approximation, roots of equations, linear systems of algebraic equations, curve fitting, numerical differentiation and integration, Runge-Kutta methods.

 

COMP4501     Fundamentals of Operating Systems

3 Credit Hours                          Prerequisite: COMP3203 and COMP3501

Study of the fundamental operating systems concepts including, classification of operating systems, operating systems structures, processes, process synchronization, deadlock, CPU scheduling, memory management, I/O systems, and OS security. The course includes a practical project for implementing a prototype for a major component of an operating system. A modern operating system will be used for a case study.

 

COMP4505     Parallel Computing    

3 Credit Hours                          Prerequisite: COMP3203

This course introduces parallel computing models and architectures. It also teaches how to design and analyze the complexity of parallel algorithms and how to develop parallel programs and evaluate their performance.  

 

COMP4506     Systems and Networks Programming

3 Credit Hours                          Prerequisite: COMP3502 and COMP4501

This course aims to provide understanding and practice in writing system programs and shell scripts, manipulating system calls, programming tools, system processes and threads, system I/O, system permissions, files, directories and inter-process communication and multithreading.

 

COMP4507     Internetworking with TCP/IP

3 Credit Hours                          Prerequisite: COMP3502

This course gives an in-depth coverage of the Internet architecture, internet protocols, routing, and router design. It discusses various Internet technologies, including IPv6, IP Mobility, Multiprotocol Label Switching (MPLS), Virtual Private Networks (VPNs) and Network Address Translation (NAT). It also covers new technologies such as Internet of Things (IoT).

 

COMP4509     Introduction to Computer Security

3 Credit Hours                          Prerequisite: COMP3502, COMP4501

This course provides an introduction to security and privacy issues in various aspects of computing, including programs, operating systems, networks, databases, and Internet applications. It examines causes of security and privacy breaches, and gives methods to help prevent them.

 

COMP4515     Mobile Networks

3 Credit Hours                          Prerequisite: COMP3502

The course introduces wireless and mobile networks. Topics include wireless communication fundamentals, medium access control protocols and standards, cellular networks, wireless Internet, 4G systems, pervasive networking, Ad-Hoc networks, sensor networks.

 

COMP4603     Machine Learning

3 Credit Hours                       Prerequisite: (MATH2202 or MATH2203) &  (COMP3203 or COMP3603)

This course provides a broad introduction to machine learning. Machine learning is the science of getting computers to act without being explicitly programmed. Students will not only learn about the theoretical underpinnings of learning, but also will gain the practical knowledge needed to apply these techniques to solve new problems. Topics include: supervised learning, unsupervised learning, learning theory, reinforcement learning and adaptive control. The course will also discuss recent applications of machine learning, such as robotic control, data mining, autonomous navigation, bioinformatics, speech recognition, and text and web data processing.

 

COMP4604     Digital Image Processing

3 Credit Hours                          Prerequisite: COMP3600

This course provides a foundation for understanding and implementing most commonly used image processing algorithms. It covers different aspects of the discipline such as digital image fundamentals, transformation, enhancement, restoration, segmentation, and interpretation. To ensure fast and reliable implementation of the underlying algorithms, a software tool that provides a rich image processing library is used as a development tool.

 

COMP4605     Computer Vision

3 Credit Hours                          Prerequisite: COMP3600

This course focuses on designing and implementing computer programs for automating image and video understanding tasks. The course introduces students to image analysis and understanding tools that allow them to solve several practical problems such as inspection, detection, tracking and recognition. In order to experiment the effectiveness of implemented solutions, the students will be introduced to a specialized development environment (such as MATLAB and OpenCV).

 

COMP4606     Applied Data Science

3 Credit Hours                          Prerequisite: COMP4603

This course provides a foundation in the area of data science based on data curation and statistical analysis. Students will learn concepts, techniques and tools they need to deal with various facets of data science practice, including data collection and integration, exploratory data analysis, predictive modeling, descriptive modeling, data product creation, evaluation, and effective communication.

 

COMP4609     Deep Learning Fundamentals

3 Credit Hours                          Prerequisite: COMP4603

This course is an introduction to Deep Learning, a branch of machine learning particularly suitable for machine translation, speech recognition, visual object identification, object detection and many other domains such as drug discovery, and genetics. Deep learning methods build representations from raw data through the use of multiple layered neural networks. In this course we cover topics from basic neural networks, convolutional and recurrent network structures, deep unsupervised and reinforcement learning, and applications to various Artificial Intelligence tasks.

 

COMP4701     Web Application Development

3 Credit Hours                          Prerequisite: COMP3205 and COMP3700

This course introduces Web application concepts, architectures and models. It discusses the main building blocks (structure, navigation, and presentation), and Web application architectures such as .Net framework and J2EE Framework. It discusses the main Web architectural design patterns such as Multilayer and Model-View-Controller (MVC). It emphasizes on generating dynamic Web contents using advanced server-side programming techniques and tools, database connectivity and Web security. It provides an overview about advanced Web application techniques such as AJAX and Web Services.

 

COMP5101     Comparative Programming Languages

3 Credit Hours                          Prerequisite: COMP3203 and COMP3501

The main goal is to provide the students with the tools necessary for the critical evaluation of current programming languages. The course describes major programming language constructs, discuss their design and implementation issues, for a variety of programming languages.

 

COMP5204     Computer Science Special Topics I

3 Credit Hours                          Prerequisite:

This undergraduate course is intended to expose students to topics of current interest in computer science which are not covered in other courses. The topics covered will be approved by the Department board and will depend on the specialty of the available faculty.

 

COMP5400     Software Architecture and Design

3 Credit Hours                          Prerequisite: COMP3401

The course presents an introduction to the fundamentals of Software Architecture and design concepts. Topics covered include: Relationship between software requirements and Architecture, Design patterns, Architecture Design Space, Techniques and tools for describing Software Architecture, Major software architectural styles, such as (Layered, MVC, Distributed)-architecture. Students participate in group projects on software architecture and design.

 

COMP5402     Requirements Engineering

3 Credit Hours                          Prerequisite: COMP3401

The course focuses on the theory and practice of requirement engineering (RE). It presents a set of models, processes, techniques, best practices, and tools to define and validate functional and non-functional requirements of large-scale software systems. It focuses on both object-oriented and goal-oriented requirement engineering.

 

COMP5405     Software Patterns

3 Credit Hours                          Prerequisite: COMP3401

The course introduces the Software Patterns, and explores the wide variety of patterns that may be applied to the production and maintenance of software. Topics covered include: Design Patterns, Refactoring Patterns, Analysis Patterns, Architectural Patterns and Anti-patterns. Students participate in-group projects on Software Patterns.

 

COMP5490     Project in Web and Software Development

3 Credit Hours                          Prerequisite: COMP4100 + three courses from the Web Development

                                                                         and Software Engineering Specialization Requirements

This course provides the students in the Web and Software Development specialization with an opportunity to demonstrate what they have learned during their study. It provides students with a platform to create an application/research work that employs and integrates knowledge, skills and experiences gained during the learning process. In addition, it provides students with opportunities to enhance some skills such as working in teams, collecting requirements, developing solutions and building software for real world applications. Students are also exposed to writing scientific reports and making oral presentations.

 

COMP5505     Distributed Systems and Cloud Computing

3 Credit Hours                          Prerequisite: COMP4506

This course introduces students to key principles and techniques underlying the development of distributed computing systems. Topics include inter-process communication, remote invocation, distributed naming, distributed file systems, security, distributed clocks, process coordination, concurrency control, replication and fault-tolerance. Examples of systems discussed include cloud computing, grid computing, storage systems, peer-to-peer networks and Web services.

 

COMP5507     Cryptography and Network Security

3 Credit Hours                          Prerequisite: COMP3203 and COMP3502

This course focuses on the essentials of Network Security. Topics include Security Models and requirements, Symmetric Key and message confidentiality, Public Key Cryptography and Message Authentication, Key Managements, Electronic Mail Security such as PGP protocol, IP Security, Web and e-commerce Security, Firewalls, and Malicious Software. 

 

COMP5508     Interconnection Networks for Multiprocessor and Multicore Systems

3 Credit Hours                          Prerequisite: COMP3502

This course will explore the architecture and design of interconnection networks including topology, routing, flow control and router micro-architecture. This course will focus on interconnection network architectures used in multiprocessor systems and multicore designs with emphasis on recent research innovations in these areas.

 

COMP5509     Penetration Testing and Ethical Hacking

3 Credit Hours                          Prerequisite: COMP4509

Introduction to the principles and techniques associated with the cyber security practice known as penetration testing and ethical hacking. The course covers planning, reconnaissance, scanning, exploitation, post-exploitation, and result reporting. The student discovers how system vulnerabilities can be exploited and learns to avoid such problems. Topics included are network and system attacks, operating systems foot-printing, port scanning, embedded operating systems attacks, Web server hacking, wireless networks vulnerabilities, firewalls and intrusion detection systems.

 

COMP5511      Computer Forensics

3 Credit Hours                          Prerequisite: COMP4509

This course discusses the techniques and practices for gathering and analyzing evidences used to solve crimes involving computers. It includes topics related to Data Acquisition, Processing Crime and Incident Scenes, Current Computer Forensics Tools, Windows, Macintosh and Linux Boot Processes and File Systems, Recovering Graphics Files, Email Investigations, Cell Phone and Mobile Device Forensics, Report Writing for High Tech Investigations.

 

COMP5521 Finite Automata and Formal Languages

3 Credit Hours                          Prerequisite: MATH3340

This course introduces finite automata, formal languages regular expressions and context free grammars. The parsing problem is discussed using push down automata. Turing machines and the halting problem are covered.

 

COMP5522     Compiler Construction

3 Credit Hours                          Prerequisite: COMP5521 and COMP3501

This is a course for Computer Science majors who would like to learn more about the compilation process. Design of a Lexical Analyzer, symbol and type table generation, storage allocation and code generation are covered. The student is required to write a small compiler.

 

COMP5557     High Performance Computing

3 Credit Hours                          Prerequisite: COMP3502 and COMP4501

This course exposes the student to the theory and practice of high performance computing with a focus on current systems, architectures, programming models, languages and software tools. Topics include contemporary architectures, interconnection topologies, shared memory and message-passing systems, multi-threaded kernels, methods for data and workload partitioning and performance profiling.

 

COMP5590     Project in Cybersecurity and Computing Infrastructure

3 Credit Hours                          Prerequisite:     COMP4100 + three courses from the Cybersecurity and

Computing Infrastructure Specialization Requirements

This course provides the students in the Cybersecurity and Computing Infrastructure specialization with an opportunity to demonstrate what they have learned during their study. It provides students with a platform to create an application/research work that employs and integrates knowledge, skills and experiences gained during the learning process. In addition, it provides students with opportunities to enhance some skills such as working in teams, collecting requirements, developing solutions and building software for real world applications. Students are also exposed to writing scientific reports and making oral presentations.

 

COMP5591     Internship in Computer Science I

3 Credit Hours                          Prerequisite:     COMP4100

Part one of a two-semester industrial internship. Internship courses offer students the opportunity to gain working experience in an organization, as well as to explore future employment opportunities. Acceptance into this internship is via a competitive selection process. The number of available seats is determined by the hosting companies. Internal regulations apply.

 

COMP5592     Internship in Computer Science II

3 Credit Hours                          Prerequisite:     COMP5591

Part two of a two-semester industrial internship. Internship courses offer students the opportunity to gain working experience in an organization, as well as to explore future employment opportunities. Students must have successfully passed part one of the internship. Internal regulations apply.

 

COMP5602     Pattern Recognition and Analysis

3 Credit Hours                          Prerequisite: COMP4605 and MATH2202

Pattern recognition techniques are used to design automatic algorithms to recognize and categorize real-world objects into meaningful classes. This course covers several techniques and statistical pattern recognition algorithms. Topics including Bayesian Decision, Linear Discrimination Functions, Nonparametric Techniques, and Clustering Algorithms etc. will be presented.

 

COMP5605     Mobile Robotics

3 Credit Hours                          Prerequisite: COMP3600 and MATH2108

This course provides the basic concepts and algorithms required to develop mobile robots that move in effective, safe, and predictable ways in complex environments. The course covers the basics of mobile robots control, kinematic theory, navigation, localization and perception. The course will consolidate the understanding of theoretical concepts through practical hands-on activities related to robot programming and deployment.

 

COMP5606     Natural Language Processing

3 Credit Hours                          Prerequisite: COMP3600

This course is an introduction to the field of Natural Language Processing (NLP). Students will learn (NLP) basics with an emphasis on practical NLP such as how to identify and separate words, how to extract topics in a text, and how to build their own fake news classifier. They also learn how to use basic libraries such as nltk, alongside libraries, which utilize learning to solve common NLP problems. This course will give students the foundation to process and parse text using a generic programming language such as Python together with an open source library such as the Natural Language Toolkit.

 

COMP5900     Project in Computer Science

3 Credit Hours                          Prerequisite: COMP4100

This course provides students with opportunities to enhance skills that may not be easy to acquire in the traditional classroom setting, such as working in teams, interacting with users, collecting requirements, developing solutions and building software for real world applications. Students are also exposed to write scientific reports and make oral presentations.

 

COMP5690     Project in Intelligent Systems and Data Science

3 Credit Hours                          Prerequisite: COMP4100 + three courses from the Intelligent Systems     

                                                                          and Data Science Specialization Requirements

This course provides the students in the Intelligent Systems and Data Science specialization with an opportunity to demonstrate what they have learned during their study. It provides students with a platform to create an application/research work that employs and integrates knowledge, skills and experiences gained during the learning process. In addition, it provides students with opportunities to enhance some skills such as working in teams, collecting requirements, developing solutions and building software for real world applications. Students are also exposed to writing scientific reports and making oral presentations.

 

COMP5701     Web Services

3 Credit Hours                          Prerequisite: COMP3401 and COMP3700

This course introduces the concept of Web services as fundamental building blocks of the service-oriented computing (SOC). First, it introduces the concepts related to distributed applications such as client-server, RPC, proxy (client stub and servant skeleton). Then, it details the Web services stack and its underlying technology: XML, SOAP, WSDL, UDDI, and BPEL. Finally, it comes to Web services design and development, Web services implementation and deployment with tools such as Axis, and Web services management.

 

COMP5702     Semantic Web

3 Credit Hours                          Prerequisite: COMP4701

The course covers the core concepts of the semantic Web to process Web information. It covers the semantic Web vision, the description of structured Web documents with XML, the description of Web resources in the Resource Description Framework (RDF), Web Ontology Languages (OWL), the logic and inference rules, and ontology engineering processes. It also introduces some applications of the semantic Web such as data integration, e-commerce, and Web services. The students will gain practical experience in semantic Web languages: XML, SPARQL and OWL.

 

COMP5704     Web Data Mining and Knowledge Discovery

3 Credit Hours                          Prerequisite: COMP4701 and STAT2102

Web data mining aims to discover useful knowledge from massive data sources that are available on the World Wide Web. The course discusses the fundamental methods and concepts of Web data mining with a balance on theory and practice, applications, and survey of techniques and models. It provides the fundamental algorithms and techniques that are widely used in data mining and machine learning in general. Then, it emphasizes the Web mining techniques and applications including Web content mining, Web linkage mining and Web usage mining.

 

 

Other courses:

ARAB1060      Arabic

2 Credit Hours                          Prerequisite:

This course is based on the study and analysis of a number of different poetic and prose texts in the various religious, national, scientific, legal, economic, linguistic, etc. fields identified in the approved university textbook. The course involves the study of the fundamentals of Arabic language in a manner that helps to understand and absorb texts, describe their aesthetic and critical properties, analyze linguistic structures- in form and composition, significance and style- to identify the most prominent linguistic and rhetorical styles along with knowledge of some morphological, grammatical and rhetorical aspects and written techniques (spelling and punctuation). The course aims to train students to deal with the texts and exercises contained in the approved textbook.

 

BIOL2101       General Biology (1)

3 Credit Hours                          Prerequisite:  FPEL0560 or FPEL0600 or FPEL0601 or FPEL0602 or

FPEL0603 or FPEL0604

This is the first of a two-semester course in foundation biology. Lecture topics include a view of science, biology and society; the diversity of life; cell biology; genetics and inheritance; biotechnology and environmental biology. Lab work is designed to expose students to the practical aspects of these subjects.

 

CHEM2101     General Chemistry (1)

3 Credit Hours

Prerequisite:     (FPEL0560, FPMT0105 or FPMT0108) or (FPEL0560, FPMT0109) or (FPEL0600, FPMT0105 or FPMT0108) or (FPEL0600, FPMT0109) or (FPEL0601, FPMT0105 or FPMT0108) or (FPEL0601, FPMT0109) or (FPEL0602, FPMT0105 or FPMT0108) or (FPEL0602, FPMT0109) or (FPEL0603, FPMT0)

 

This is the first of two general chemistry courses. It introduces the basic principles of chemistry and shows students how chemists describe matter. It revolves around bonding, the most central concept in chemistry. Material covered includes introduction to chemical calculations, stoichiometry and simple reactions, gases, thermochemistry, atomic structure, the periodic table, types of bonding, liquids and solids.

 

ECCE3206      Digital Logic Design

3 Credit Hours                          Prerequisite: -

This is an introductory course (3 credit-hours) in logic and digital design. Course topics cover number systems, Boolean algebra and logic gates, simplification of Boolean functions, combinational logic design, MSI and PLD components, sequential logic design, registers, counters, and the memory unit.

 

ERSC2101       Introduction to Geology (1)

3 Credit Hours                          Prerequisite:  FPEL0560 or FPEL0600 or FPEL0601 or FPEL0602 or

FPEL0603 or FPEL0604

Using a plate tectonic framework, the course focuses on understanding primary and secondary geologic structures, identifying common rocks, mineral and geomorphological features and understanding how they form. Topics of environment concern are also introduced. Labs focus on constructing and interpreting geologic maps and cross sections, and identifying rocks and minerals in hand specimen.

 

HIST1010       Oman & Islamic Civilization

2 Credit Hours                          Prerequisite: -

This course is a comprehensive survey of the role of Oman in Islamic civilization including an historical and geographical introduction to Oman before Islam; the efforts of the Omanis in spreading Islam; study of aspects of Islamic civilization, and Oman's role.

 

ISLM1010       Islamic Culture

2 Credit Hours                          Prerequisite: -

This course aims at teaching students the main constituents of Islamic Culture. The course studies the concept of Islamic culture, its sources, characteristics and constituents. Moreover, it focuses on God, the Universe, human being, life... etc.

 

 

 

 

 

LANC2058      Communication in Science

3 Credit Hours                          Prerequisite:  FPEL0560 or FPEL0600 or FPEL0601 or FPEL0602 or

FPEL0603 or FPEL0604

This is a content based course intended to develop critical thinking, collaborative, innovative, and analytical skills which will enhance the overall communication in the English language required for success in the 21st century real world.. Using general science texts for content value, activities are designed to improve the students' ability to read, understand, comprehend, and interpret texts of scientific nature. This content based course is integrated with a Problem Based Learning (PBL) component in which students are expected to solve an ill structured scientific problem and produce a poster, give a presentation and write a reflective paper.

 

MATH2107     Calculus I

3 Credit Hours                        Prerequisite: (FPEL0560 or FPEL0600 or FPEL0601 or FPEL0602 or FPEL0603 or FPEL0604) and (FPMT0105 or FPMT0108 or FPMT0109)

This is the first standard Calculus course of three. It presents practical and theoretical aspects related to: Limits and continuity, derivatives, functions (logarithmic, exponential, trigonometric, hyperbolic) and integration .The course introduces Computer Algebra Systems CAS and their uses to the students.

 

MATH2108     Calculus II

3 Credit Hours                          Prerequisite: MATH2107

This is a standard second calculus course from a sequence of three. It studies some applications of integration such as calculating areas, volumes, length of curves: the techniques of integration of different functions, proper, and improper integrals. The course also deals with Maclaurin & Taylor polynomial expansions, sequences, series and their convergences as well as differentiating and integrating power series. Some introduction to analytic geometry in calculus is also given.

 

MATH2202     Linear Algebra I

3 Credit Hours                          Prerequisite:     FPMT0105 or FPMT0108 or FPMT0109

This is the first Linear Algebra course from a sequence of two offered to students in the colleges of Education and Science. The topics to covered are: linear systems, linear transformations, matrices, determinants, vector spaces, eigenvalues, eigenvectors and diagonalizations, matrices, determinants, vector spaces, eigenvalues, eigenvectors and diagonalization.

 

MATH3340     Discrete Mathematics for Computer Science

3 Credit Hours                          Prerequisite:     MATH2107 and COMP2101 and LANC2058

This course on Discrete Mathematics with applications is for computer science students. Topics include: logic, sets, functions, mathematical reasoning, relations, graphs, trees and languages and grammars.

 

PHYS2101       General Physics I

4 Credit Hours              Prerequisite: (FPEL0560 or FPEL0600 or FPEL0601 or FPEL0602 or

FPEL0603 or FPEL0604) and (FPMT0105 or FPMT0108 or FPMT0109)

To develop a sound understanding of the basic physical principles underlying natural phenomena related to translational motion, rotational motion, statics, elasticity and fluids using elementary mathematical tools and experimental techniques. The emphasis is on developing an intuition for the behavior of physical systems and problem solving.

 

STAT2101      Introduction to Statistics       

4 Credit Hours              Prerequisite: (FPEL0560 or FPEL0600 or FPEL0601 or FPEL0602 or

FPEL0603 or FPEL0604) and (FPMT0105 or FPMT0108 or FPMT0109)

This is the first course in statistics. It introduces the students to the subject in a way that gives them a feel for the subject area. Topics covered include graphical representation of data; measures of central tendency and variability; concepts of point and interval estimation, hypothesis testing, regression, and correlation.

 

STAT2102      Introduction to Probability

3 Credit Hours              Prerequisite: STAT2101

This course introduces the students to concepts and definitions of probability and probability distributions needed for the development of statistical techniques in following statistics courses. Topics covered include random experiments; random variables; counting theorems; axioms of probability; conditional probability and independence; standard discrete distributions; standard continuous distributions; bivariate distributions; independence, covariance and correlation; the distribution of functions of random variables.

 

SOCY1005      Oman: State and People

2 Credit Hour              Prerequisite:

The aim of the proposed course is to enhance students' awareness of identity, values of the Omani society, and to help students understand the role played by heritage, historical, demographic, cultural, and institutional variables in shaping and characterizing the Omani identity. The course also aims to shed light on the State's administrative system and the foundations of the Omani Renaissance and its indicators based on the thought of His Majesty Sultan Qaboos bin Said and his distinctive approach in building the nation and people. The course also aims to promote the values of belonging, loyalty and citizenship, and to shed light on the Sultanate's relations with its Gulf, Arab, regional and international communities, with a focus on understanding aspects of international treaties.

 

The students need to undertake a department approved practical training on an IT-related topic in a government or private institution in Oman. The training will take place during the normal summer teaching period. A training supervisor from the institution should be assigned. The student is expected to submit a report and the supervisor is expected to submit a statement of student performance.

 

  1. Summer Training Course (COMP4445)
  • Required degree course by cohort 2008 and above
  • Performed in IT-related department at private/public employers
  • Pass/Fail grade
  • Conducted during summer time (June-September)
  • Duration: minimum of 6 weeks
  • Cannot overlap with other degree courses
  • Done only once

 

  1. Summer Training Benefits
  • Get exposed to real-world
  • Build relation with industry (Job Market)
  • Get exposed to new technologies
  • Others…

 

  1. Entry Requirements
  • Completion of 80 credits (on 122 CH plan)
  • CGPA of 2.0 or above
  • Majoring computer science
  • No other degree course is possible with conjunction of Summer Training

 

  1. Completion Requirements
  • Spending minimum of 6 weeks (full-time; 5-days a week, 5-7 hours a day; expected total training hours:  150)
  • Submission of Training Appraisal Form (TAF)
    • Must be filled, signed & stamped by the training center
    • To be submitted one week after the training ends
  • Submission of Training Feedback Report (TFR)
    • Individual report to be written and submitted by each student
    • To be submitted one week after the training ends

    

        e.  Summer Training Life Cycle

 

Capture

 

             f. Training Places

The following are the training places in the previous years.

Government Sector

Private Sector

Armed Forces Hospital

Ibri Applied Science College

Ministry of Civil Service

Ministry of Education

Ministry of Manpower

Ministry of Tourism

Ministry of Trans. & Telecomm.

Muscat Securities Market

Nizwa Applied Science College

Oman College of Tourism

Oman Olympic Committee

Public Authority for Civil Aviation

Public Authority for Social Insurance

Royal Oman Police.

Royal Opera House.

State and Governor of Dhofar

Sultan Qaboos University

Alamah

Bank Muscat

Cinnamon Software Solution

Ibex

L.N.G.

O.I.F. CO.

O.X.Y

Oman Airports Management Co.

Oman Central Bank

Oman Medical Specialization Board

Oman Tele

ORPIC

P.D.O.

Shell Co.

Shine Mark

The Rock

The Wave - Muscat

University of Nizwa

 

 

 

  • Eidaad Internship Program

Eidaad is an optional training program that is managed by the Ministry of Higher Education, Research and Innovation with the association of the Oman job market. The program aims to narrow the gap between Industry and Academia and to establish an Internship that lasts for one academic year so that students can engage in a longer period of applied learning.

 

This program provides an opportunity for university/college students with a year of valuable experience, which will give the graduate an edge when they enter the real world after their studies. The students who are successful through the selection process will be designated as Interns and they will embark into a one-year internship at the chosen industry and will resume their final year studies to complete the remaining credits at the campus to graduate in their chosen field of study.

 

EIDAAD program will be substituted in the Computer Science program with two major elective courses:  COMP5591 (0 credits) and COMP5592 (6 credits). More details about the Eidaad internship program is provided in the following links:

 

Minor in Computer Science

The department of computer science is offering a minor in computer science for non-computer science students in the College of Science with the following requirements.

 

MINOR IN COMPUTER SCIENCE

DEPARTMENT OF COMPUTER SCIENCE

               Minor in Computer Science: Required Courses (7 Credits)

 

Code

Title

Credits

Pre-Requisite / Co-Requisite*

COMP2101

Introduction to Computer Science

4

FPEL0560 or FPEL0600 or FPEL0603 or FPEL0604) and (FPCS0101 or PCS0102)

COMP2202

Fundamentals of Object Oriented Programming

3

COMP2101

Total

7

 

 

 

        Minor in Computer Science: Elective Courses (Minimum 11 Credits)

 

Code

Title

Credits

Pre-Requisite / Co-Requisite*

COMP2102

Problem Solving and Programming

3

COMP2101

COMP2105

Introduction to Problem Solving with Visual Basic

3

COMP2101

COMP2206

Introduction to Java

3

COMP2202

COMP2607

Computing in Industry 4.0

3

 

COMP3203

Introduction to Data Structures and Algorithms

3

COMP2202 and MATH3340 and LANC2058

COMP3204

Advanced Java Programming

3

COMP2202 and LANC2058

COMP3205

Database Systems

3

COMP3203 and LANC2058

COMP3302

Introduction to Multimedia

3

COMP2202

COMP3401

Introduction to Software Engineering

4

COMP3203

COMP3501

Computer Organization & Assembly Language

3

COMP2101 and ECCE3206 and

LANC2058

COMP3502

Computer Networks

3

COMP3203

COMP3600

Intelligent Systems

3

(COMP3203 or COMP3603) and LANC2058

COMP3601

Bioinformatics Algorithms

3

BIOL2101 and COMP2101

COMP3602

Data Analysis & Visualization with Python

3

COMP2101

COMP3603

Programming Foundation for Machine Learning

3

COMP2101

COMP3700

Introduction to Web Computing

3

COMP2202 and LANC2058 / COMP3205*

COMP4100

Ethics and Skills for Computing Professionals

2

COMP3401

COMP4202

Database Development

3

COMP3205

COMP4204

Advanced Data Structures and Algorithms

3

COMP3203

COMP4205

Competitive Programming

3

COMP3203

COMP4206

Mobile Application Development

3

COMP3203

COMP4212

Introduction to Information Retrieval

3

COMP3203

COMP4300

Computer Graphics I

3

COMP3203 and (MATH2202 or MATH2201)

COMP4402

Software Testing

3

COMP3401

COMP4404

Software Project Management

3

COMP3401

COMP4471

Computational Methods 

3

COMP2101 and (MATH2108 or MATH2109) and  (MATH2202 or MATH2201)

COMP4501

Fundamentals of Operating Systems

3

COMP3203 and COMP3501

COMP4504

Wireless Networks

3

COMP3502

COMP4506

Systems and Networks Programming

3

COMP3502 and COMP4501

COMP4507

Internetworking with TCP/IP

3

COMP3502

COMP4509

Introduction to Computer Security

3

COMP3502, COMP4501

COMP4515

Mobile Networks

3

COMP3502

COMP4603

Machine Learning

3

(COMP3203 or COMP3603) and (MATH2202 or MATH2201)

COMP4604

Digital Image Processing

3

COMP3600

COMP4605

Computer Vision

3

COMP4603

COMP4606

Applied Data Science

3

COMP4603

COMP4609

Deep Learning Fundamentals

3

COMP4603

COMP4701

Web Application Development

3

COMP3205 and COMP3700

COMP5101

Comparative Programming Languages

3

COMP3203 and COMP3501

COMP5204

Computer Science Special Topics (1)

3

Instructor Consent

COMP5400

Software Architecture and Design

3

COMP3401

COMP5402

Requirements Engineering

3

COMP3401

COMP5405

Software Patterns

3

COMP3401

COMP5504

Distributed Systems

3

COMP4506

COMP5507

Cryptography and Network Security

3

COMP3203 and COMP3502

COMP5508

Interconnection Networks for Multiprocessors

3

COMP3502

COMP5509

Penetration Testing and Ethical Hacking

3

COMP4507 or COMP5509

COMP5511

Computer Forensics

3

COMP4507 or COMP5509

COMP5521

Finite Automata & Formal Languages

3

MATH3340

COMP5522

Compiler Construction

3

COMP3501 and COMP5521

COMP5557

High Performance Computing

3

COMP3502 and COMP4501

COMP5602

Pattern Recognition and Analysis

3

COMP4605

COMP5605

Mobile Robotics

3

COMP3600

COMP5606

Natural Language Processing

3

COMP3600

COMP5701

Web Services

3

COMP3401 and COMP3700

COMP5702

Semantic Web

3

COMP4701

COMP5704

Web Data Mining and Knowledge Discovery

3

COMP4701 and STAT2102

Total (minimum)

11