Computer Science - Study - Plan
Computer Science - Study - Plan
Course
Course Name CH Prerequisite(S)
Number
0030301121 English Pre-Intermediate
4
Intensive + Lab
0030301122 English Intermediate English Pre-Intermediate Intensive + Lab
3 (0030301121)
0030301123 English Upper - Intermediate 3 English Intermediate (0030301122)
0030301124 English Advanced 3 English Upper – Intermediate (0030301123)
0040302111 Professional Skills 1
0040302211 Professional Practice 3 Professional Skills (0040302111)
0030302231 Entrepreneurship Bootcamp 4 English Upper – Intermediate (0030301123)
0030301111 Arabic Language &
1
Communication Skills
Military Science 1
0030302232 Leadership Camp 1 Entrepreneurship Bootcamp (0030302231)
University Elective I 1
University Elective II 1
University Elective II 1
Total
27
Course
Course Name CH Prerequisite(S)
Number
0030303111 Functional Math 3
0040303121 Maths for Computing 3 Functional Math (0030303111)
0040303130 Fundamentals of Computing 4
0040201100 Programming 3 Fundamentals of Computing (0040303130)
0040303221 Discrete Maths Maths for computing (0040303121)
3 Corequisite Data Structures & Algorithms
(0040201201)
0040201290 Planning a Computing Project Professional Practice (0040302211)
4
0030303121 STEM Lab I 1
Total
21
➢ Table 3 Department Requirements
Course
Course Name CH Prerequisite(S)
Number
0010203180 Networking 3 Fundamentals of Computing (0040303130)
0040201260 Website Design & Programming (0040201100)
3
Development
0040201201 Data Structures & Algorithms 3 Programming (0040201100)
0010203280 Security 3 Networking (0010203180)
0040201200 Advanced Programming 3 Programming (0040201100)
0040201261 Prototyping 3 Software Development Lifecycle (0040201220)
0040201360 Application Development 3 prototyping (0040201261)
0040201220 Software Development Programming (0040201100)
3
Lifecycle
0040201391 Computing Research Project 6 Planning a Computing Project (0040201290)
0010204282 Database Design & Programming (0040201100)
3
Development
0010204312 Business Intelligence 3 Database Design & Development (0010204282)
0040201321 System Analysis and Design 3 Software Development Lifecycle (0040201220)
0010203380 Computer Organization and Programming (0040201100)
3 Corequisite Discrete Maths (0040303221)
Design
0040201341 Operating Systems 3 Data Structures & Algorithms (0040201201)
0040201362 Games Engine Scripting 3 Programming (0040201100)
0040201320 ERP Systems 3 Application Development (0040201360)
0040201430 Database Programing Database Design & Development (0010204282) +
3 Data Structures & Algorithms (0040201201)
0040201440 Systems Programing Operating Systems (0040201341)
3
Elective I 3
Elective II 3
Elective III 3
0040201491 Capstone project I 1 >=90 hrs including core courses
0040201492 Capstone project II 2 Capstone project I (0040201491)
0040201390 HNC Training 12 Minimum number of completed hours >= 85
0040201490 HND Training 6 Pre or corequisite HNC Training (0040201390)
Total 87
➢ Table 4: List of Elective Courses (9 CH):
Course CH Prerequisite(S)
Course Name
Number
Networking (0010203180)
0040201441 3 Operating System (0040201341)
Internet of Things
3 Networking (0010203180)
0040201450 Operating System (0040201341)
Cloud Computing
Virtual and Augmented Reality 3 Games Engine Scripting (0040201362)
0040201462 Development
3 Website Design & Development (0040201260)
0040201460 E-Commerce
3 Operating System (0040201341)
0040201442 Real Time System
Mobile Application 3 Application Development (0040201360)
0040201461 Development
0010204210 Data Analytics 3 Maths for Computing (0040303121)
Functional Math This course reviews the fundamental concepts in numerical analysis,
linear algebra, functions and graphs, differentiation, integration, and
metrics. It strengthens the problem formulation skills (i.e., the ability to
translate real application problems into a series of mathematical
processes). It also focuses on developing the mathematical reasoning
skills, such as mathematical deductions and proofs.
Maths for Computing This course introduces students to the mathematical principles and
theory that underpin the computing curriculum. Through a series of case
studies, scenarios and task-based assessments students will explore
number theory within a variety of scenarios; use applicable probability
theory; apply geometrical and vector methodology; and finally evaluate
problems concerning differential and integral calculus. Among the topics
included in this course are prime number theory, sequences and series,
probability theory, geometry, differential calculus and integral calculus.
Fundamentals of This course provides a comprehensive route to developing an in-depth
Computing exposure to personal computers, hardware, and a range of operating
systems. Students learn the functionality of various hardware and
software components and best practices in maintenance and safety
issues. In addition to, basic computer skills, programming concepts,
algorithms, variables and data types; arithmetic, logical, relational,
Boolean, and assignment operators; simple input and output statements,
selection structures, loop structures, single and multidimensional arrays,
character strings, functions, data structures, input/output file operations.
Programming Define basic algorithms to carry out an operation and outline the process
of programming an application; Comparative programming language
paradigms, procedural, object-orientated and event-driven programming
languages. Design and tradeoffs of programming language features and
implementation, including syntax, control structures, types, and security.
Explain the characteristics of procedural, object-orientated and event-
driven programming. Analyze Integrated Development Environments
(IDEs); Implement basic algorithms in code using an IDE; Determine the
debugging process and explain the importance of a coding standard.
Discrete Maths This course introduces students to the discrete mathematical principles
and theory that underpin software engineering. Through a series of case
studies, scenarios and tasked-based assessments students will explore set
theory and functions within a variety of scenarios; perform analysis using
graph theory; apply Boolean algebra to applicable scenarios; and finally
explore additional concepts within abstract algebra. Among the topics
included in this course are: set theory and functions, Eulerian and
Hamiltonian graphs, binary problems, Boolean equations, Algebraic
structures and group theory.
Professional Practice This course provides a foundation for good practice in a variety of
contexts. The ability to communicate effectively using different tools and
mediums will ensure that practical, research, design, reporting and
presentation tasks are undertaken professionally and in accordance with
various communication conventions. Continuing professional
development, self-improvement and working towards various goals is an
area that is encouraged in the workplace through the appraisal’s
framework. Among the topics included in this course are: the
development of communication skills and communication literacy; the
use of qualitative and quantitative data to demonstrate analysis,
reasoning and critical thinking; and tasks that require the integration of
others within a team-based scenario and planning and problem-solving.
Planning a Computing The course provides examination of project management principles and
Project modern software project management practices. The fundamental
knowledge and skills to enable them to undertake independent research
and investigation for carrying out and executing a computing project
which meets appropriate aims and objectives. Methods for managing and
optimizing the software development process are discussed along with
techniques for performing each phase of the systems development
lifecycle. Present the project and communicate appropriate
recommendations based on meaningful conclusions drawn from the
evidence findings and/or analysis. Reflect on the value gained from
conducting the project and its usefulness to support sustainable
organizational performance.
STEM Lab I This course develops the basic skills in the fields of science, technology,
engineering, and mathematics through a set of practical experiments,
covering mechanical, electrical, electronics, automation, mechanics of
materials, robotics, computer applications, and process control.
Networking The aim of this course is to provide students with wider background
knowledge of computer networking essentials, how they operate,
protocols, standards, security considerations and the prototypes
associated with a range of networking technologies. This course will
provide students with skills to successfully install operate and
troubleshoot a small network; and the operation of IP data networks,
router, switching technologies, IP routing technologies, IP services and
basic troubleshooting.
Website Design & This course introduces students to the underpinning services required to
Development host, manage and access a secure website before introducing and
exploring the methods used by designers and developers to blend back-
end technologies (server-side) with front-end technologies (client-side).
This course also discusses the reasons, requirements, relationships,
capabilities and features of the systems they will be using and gives them
an opportunity to explore various tools, techniques and technologies with
‘good design’ principles to plan, design and review a multipage website.
The topics included in this course are: domain structure, domain name
systems, web protocols, database servers, development frameworks,
website publishing, content management, search engine optimization,
web browsers, HTML standards, CSS and CSS pre-processing (LESS, SASS),
presentation models, responsive design, integrated development
environments, user requirements, interface design, user experience,
branding, navigation, optimization and validation.
Data Structures & This course introduces students to data structures and how they are used
Algorithms in algorithms, enabling them to design and implement data structures.
The course introduces the specification of abstract data types and
explores their use in concrete data structures. Based on this knowledge,
students should be able to develop solutions by specifying, designing and
implementing data structures and algorithms in a variety of programming
paradigms for an identified need. Topics included in this course are
abstract data types specification, formal data notations, data
encapsulation, complex data structures, programming language
implementations using handles, pointers, classes and methods, algorithm
types, data structure libraries, algorithm complexity, asymptotic testing
and benchmarking.
Security The aim of this course is to provide students with knowledge of security,
associated risks and how security breaches impact on business continuity.
Students will examine security measures involving access authorization,
regulation of use, implementing contingency plans and devising security
policies and procedures. Among the topics included in this course are
detection of threats and vulnerabilities in physical and IT security, and
how to manage and assess risks relating to organizational security.
Network Security design and operational topics, including address
translation, DMZ, VPN, firewalls, AV and intrusion detection systems.
Remote access will be covered, as will the need for frequent vulnerability
testing as part of organizational and security audit compliance. Assess
risks to IT security; Describe IT security solutions; Review mechanisms to
control organizational IT security; Manage organizational security.
Advanced This course introduces students to the fundamental concepts and
Programming techniques necessary to write high-quality programs, including basic
concepts of object-oriented programming, modular design, and exception
handling. Students will also write code in an object-orientated fashion
using design patterns where necessary and model their code structure in
UML class diagrams.
Prototyping This course introduces students to the basic concepts of prototyping; plan,
build and measure the success of an appropriate prototype with a specific
end user in mind; and conduct testing to gather meaningful feedback and
data to improve a prototype or final software application. As a result,
students will develop skills such as communication literacy, team working,
critical thinking, analysis, reasoning and interpretation, business skills,
computer software literacy and language, which are crucial for gaining
employment and developing academic competence.
Computing Research The course offers the opportunity to engage in sustained research in a
Project specific field of study. They conduct an individual research project under
a close supervision. Expose to theoretical or experimental research
techniques. In Conduct and present a survey of the literature relevant to
the research topic. Prepare a thesis reporting on the research project and
its outcomes. They will also be expected to present a poster and a short
seminar describing their work.
Database Design & The aim of this course is to give students opportunities to develop an
Development understanding of the concepts and issues relating to database design and
development, as well as to provide the practical skills to translate that
understanding into the design and creation of complex databases. Topics
included in this course are: examination of different design tools and
techniques; examination of different development software options;
considering the development features of a fully functional robust solution
covering data integrity, data validation, data consistency, data security
and advanced database querying facilities across multiple tables;
appropriate user interfaces for databases and for other externally linked
systems; creating complex reports/dashboards, testing the system
against the user and system requirements; and elements of complete
system documentation.
Business Intelligence Discuss business processes and the mechanisms used to support business
decision-making; Compare the tools and technologies associated with
business intelligence functionality; Demonstrate the use of business
intelligence tools and technologies; Discuss the impact of business
intelligence tools and technologies for effective decision-making
purposes and the legal/regulatory context in which they are used.
Systems Analysis and This course introduces students to the processes of systems analysis and
Design design using two methodologies – the traditional systems development
lifecycle methodology providing a comprehensive structured framework
and the agile methodology with different framework models developed
with the emphasis on variations of iterative incremental modelling. To
provide perspective, students will examine the models in both these
methodologies. They will consider the particular strengths and
weaknesses of the two methodologies and examine the suitability of the
methodologies using different examples.
Computer Organization This course introduces students to the principles of digital logic design,
& Design computer systems organization and low-level language program
development using CPU registers to manipulate data. Students will
explore how program instructions and data types can be represented,
stored in a computer system, and used to carry out a computing task.
Operating Systems This course introduces students to different operating systems such as
DOS, Windows, UNIX and Linux. The topics covered are the tasks of
operating systems such as controlling and allocating memory, prioritizing
system requests, controlling input and output devices, facilitating data
networking and managing files, including security and protection. Among
the topics included in this course are: the history and evolution of
Operating Systems; the definition of an Operating System; why Operating
Systems are needed; how Operating Systems started and developed;
Operating Systems management roles; management of memory,
processes, processors, devices and files; security and protection: user
security, device, application and process protection; inter-process
communication; comparison of Operating Systems; distributed and
networked systems; concurrent systems; multi-user systems; graphical
interface systems; and practical application of Operating Systems: user
interface commands of major Operating Systems; installations and
extensions of Operating Systems.
Games Engine Scripting This course introduces students to the origin and evolution of games
engines and their effect on game design, it also expects students to
project this path into the future to draw conclusions and predict a
possible future for engines. After being introduced to the core services of
most engines and their advantages, students are expected to evaluate a
range of different engines and debate their features. In addition, and
while students assimilate, reflect and consider the advantages and
technical challenges of a games engine they will be issued with an existing
Games Design Document (supported with all appropriate assets) and
challenged with planning and using a specific engine to develop the
design into a functional game. On completion, and in addition to the
student reviewing and reflecting on the experience, they will be expected
to formally assess their functional game against the Games Design
Document and user expectation.
ERP Systems The course provides an overview of Enterprise Resource Planning (ERP)
software systems and their role within an organization. It introduces key
concepts of integrated information systems and explains why such
systems are valuable to businesses. In addition to the lecture, students
will be guided through several hands-on activities of various business
processes in software products. The course will also provide a discussion
on various business cases in which ERP concepts can be applied. An
overview of Business Intelligence (BI) and analytics in the ERP context will
also be addressed
Database Programing This course is on the design and implementation of database management
systems. Topics include data models (relational, document, key/value),
query languages (SQL, stored procedures), storage architectures (heaps,
log-structured), indexing (order preserving trees, hash tables), transaction
processing (ACID, concurrency control), recovery (logging, checkpoints),
query processing (joins, sorting, aggregation, optimization), and parallel
architectures (multi-core, distributed). Case studies on open-source and
commercial database systems are used to illustrate these techniques and
trade-offs. The course is appropriate for students with lit systems
programming skills.
Systems Programing
The aim of this course is to learn about design, implementation of stem-
level UNIX API’s: Process manipulation; IO operations; Use of OS
functionality; System level programming in C; Shell programming; Unix
system services: file system, process and thread management, inter-
process communication: pipes, shared memory, and message queues,
Socket programming, and synchronization; UNIX TCP and UDP
Communications; Connection-Oriented Client-Server Architecture. 2-
hours lab covers hands on experience with design and implementing
course subject using Linux operating Systems.
Elective I The student can choose two courses from a list of advanced topic courses
Elective II in Cybersecurity field that will be offered by the department.
Elective III
Capstone project I A project-based course intends to reflect different skills and
Capstone project II competencies acquired by the student in different courses. The students
will learn how to handle a project, starting with the specifications,
requirements, design, and implementation then preparing a
comprehensive report.
HNC Training On-the-job training is a hands-on method of teaching the skills,
HND Training knowledge, and competencies needed for students to perform a specific
job within the workplace. Students learn in an environment where they
will need to practice the knowledge and skills obtained during their
training.
Internet of Things This course introduces students to the role, basic concepts and benefits
of IoT in the design and development process of computer applications.
The aim of the unit is to enhance the student’s understanding of the
methodology, terminology and benefits of IoT in the design and
development of software applications.
Cloud Computing This course is designed to develop an understanding of the fundamental
concept of Cloud Computing, cloud segments, and cloud deployment
models, the need for Cloud Computing, an appreciation of issues
associated with managing cloud service architecture and to develop a
critical awareness of Cloud Computing based projects. Topics included in
the course are the paradigms of networking, fundamentals of Cloud
Computing, Cloud Computing architecture, deployment models, service
models, security, technological drivers, and cloud service providers.
Virtual and Augmented This course introduces students to the role, basic concepts and benefits
Reality Development of VR and AR technology and how to apply them in the development of
VR/AR computer applications. The aim of the unit is to enhance the
student’s understanding of the methodology, terminology and benefits of
VR and AR software applications.
E-Commerce
This course will help students gain an understanding of how and why
businesses and organizations develop E-Commerce strategies: to remain
competitive in the global market. Students will also appreciate the
elements and resources required to set up an E-Commerce site and be
engaged in the design and implementation of their own strategies that
would in reality form part of a secure E-Commerce site. Students will
examine the impact that E-Commerce has on society and the global
market for consumers, buyers and sellers in terms of the benefits and
drawbacks of online purchasing. Through investigation, students will also
research the technologies involved in setting up a secure E-Commerce site
in preparation for their own E-Commerce strategy. There is an expectation
that students will devise a strategy based on an element of E-Commerce
such as designing a shopping cart, an ordering system, payment system or
an online marketing system, for example. This design should be fully
implemented and evaluated accordingly in terms of its success or failure.
Standards and levels of support, marketing, CRM, promotion and supply
chain management will all be explored within the context of developing
the implementation strategy.
Real Time Systems This course covers the principles of real-time systems, Modeling of a Real-
Time System, Task assignment and scheduling, Resource management,
Real-time operating systems, RTOS services, Programming language with
real-time support, System design techniques, Inter task communication,
Fault tolerant techniques, Reliability evaluation methods; Performance
analysis, Case studies of real-time systems.
Mobile Application This course provides students with an introduction to mobile computing
Development and application development for the Android operating system. Topics will
include Introduction to Android IDE, Layout & Activity, Preference and
Service Menu, Thread (message), Thread (progress, post, broadcast, &
Intent filter), Notification, Dynamic layouts, TTS, and clocks SQLite. This
course will cover mobile phone programming components like UI
programming, data management, localization, and programming sensors
like the accelerometer and compass and mobile OS services. The course
will focus on the Android platform and how to use cloud services in
applications
Artificial Intelligence & This course is designed to introduce the philosophy behind artificial
Intelligent Systems intelligence, the most efficient techniques of AI and various intelligent
systems that help us to overcome various challenges. This unit guides the
student to investigate the emerging AI technologies which could solve
various real-world challenges and problems.