Computer Sciences Program
Obligatory Courses Details

Code Name Credit Hours Pre-requisite Course Specification Short Description
MATH202 Calculus 2 4 MATH110 NCAAA Course Spec.
View Short Description

This course is mainly dealing with integral calculus; We cover integrals, Applications of integrals, Techniques of integrations, and further applications of integration to the Sciences and Engineering.

STAT352 Applied Probability And Random Processes 3 STAT210 NCAAA Course Spec.
View Short Description

This course aims to equip students with the basic concepts and skills required to develop e-business applications. It emphasizes on converting organizations from the traditional ways of carrying out business to electronic ones. It discusses the basic differences between the two methods and how to convert from the traditional method to the modern ones using the e-business developed models.

CPCS211 Digital Logic Design 3 CPIT201 NCAAA Course Spec.
View Short Description

The objective of this course is to provide an introduction to the fundamental concept of logic design. Topics include number systems, binary codes. Boolean algebra, canonical and fundamental forms of Boolean functions, function applications to digital circuits design, minimization of Boolean functions by Boolean algebra and karnaugh maps, two-level and multi-level circuits, decoders, encoders, multiplexers, de-multiplexers latches, flip flops, register, counter, analysis and synthesis of synchronous sequential circuits. Additionally, this course includes a laboratory component in which students apply the design principles, learned in lectures to the design of combinational circuits and synchronous sequential circuits.

CPCS212 Applied Math for Computing 4 MATH202 NCAAA Course Spec.
View Short Description

The course is intended to be suitable for students in a variety of disciplines who want to use computing to explore scientific problems. The focus will be on basic numerical methods for scientific and engineering problems, and MATLAB will be used as the primary environment for numerical computations. Topics include: overview of MATLAB's syntax, code structure and algorithms, basic numerical methods for linear systems and eigenvalue problems, interpolation and data fitting, Newton's method for nonlinear systems, numerical differentiation and integration, basic numerical methods for solving differential equations and applications.

CPCS214 Computer Organization 1 3 CPCS211 NCAAA Course Spec.
View Short Description

The objective of this course is to explain how computers are designed and how they work. Students are introduced to modern computer principles using a typical processor. They learn how efficient memory systems are designed to work closely with the processor, and how input/output (I/O) systems bring the processor and memory together with a wide range of devices. The course emphasizes system-level issues and understanding program performance. Topics include instructions sets, assembly language, internal data representation, computer arithmetic, processor data path and control, memory hierarchy, parallel processing.

CPCS223 Analysis and Design of Algorithms 3 CPCS204 NCAAA Course Spec.
View Short Description

This course is the first of a two-course sequence on algorithmic solution design and advanced data structures. The course is intended to introduce selected fundamental algorithms from different application areas to illustrate the techniques used to construct those algorithms, and to study their performance. Topics include: formal definition and characterization of algorithms, fundamentals of algorithm efficiency including recurrence relations, asymptotic notation, efficiency classes and empirical analysis of performance, brute force techniques, divide-conquer, decrease-conquer and graphs.

CPCS241 DataBase 1 3 CPCS204 NCAAA Course Spec.
View Short Description

The objective of this course is to introduce students to database management systems. Topics include Data, Information, File System, Database and Database Users, Database System Concepts and Architecture, Data Modeling using the Entity Relationship (ER) Model, The Relational Data Model and Relational Database Constraints, Functional Dependencies and Normalization for Relational Databases, The Relational Algebra and Relational Calculus, Relational Database Design by ER and EER to Relational Mapping, Disk Storage, Basic File Structure and Hashing, SQL-99 Schema Definition, Constraints, Queries and Views (DDL and DML).

CPCS301 Programming Languages 3 CPCS203 And CPCS222 NCAAA Course Spec.
View Short Description

The objective of this course is to provide a comprehensive coverage of the fundamental concepts of programming languages by discussing the design issues of the various languages constructs, examining the design choices for these constructs in some of the most common languages, and critically comparing design alternatives. It discusses the formal methods of describing the syntax and semantics of programming languages.

CPCS302 Compiler Construction 3 CPCS301 NCAAA Course Spec.
View Short Description

This course provides students with an investigation of compiler theory, design, and construction. It also introduces basic concepts of different phases of a compiler which qualifies students to understand contents of this course. Topics include Compiler & Interpreter, Compilation process, Front-End Phases of a compiler, Back-End Phases of a compiler, Symbol Table, Error Handler, Compiler-construction tools, Syntax Definition, Syntax-Directed Translation, The role of the lexical analyzer, Specification & Recognition of tokens, Finite Automata, DFA & NFA, From Regular Expressions to Automata, The role of parser & Context-free grammars, and Top-down & Bottom-up parsing Techniques.

CPCS324 Algorithms and Data structures 2 3 CPCS223 NCAAA Course Spec.
View Short Description

This course is considered as the second part of a two-course sequence on algorithmic solution design and advanced data structures. The objective of this course is to introduce advanced algorithms from different application areas to illustrate the techniques used to construct those algorithms, and to study algorithm performance. Topics include: space and time tradeoffs, dynamic programming, greedy technique, iterative improvement, and limitation of algorithm power.

CPCS331 Artificial Intelligence 1 3 CPCS202 Or CPCS301 NCAAA Course Spec.
View Short Description

This course provides an overview of Artificial Intelligence. The main topics include Problem Solving by Searching, Constraint Satisfaction Problems, Local Search, Knowledge Representation and Propositional Inference.

CPCS351 Software Engineering 1 3 CPCS241 Or CPCS301 NCAAA Course Spec.
View Short Description

The objective of this course is to introduce the basic concepts and required skills for software engineering. It describes the evolving role of software engineering and software engineering principles and aspects. It also focuses on the different process models: waterfall, prototype, etc. and describes how to manage a software project, which includes: software project management concepts, team organization, ncost estimation, project scheduling, tracking, project planning, and risk management. Describes the requirement engineering, which includes: requirement elicitation, requirement analysis, requirement validation, requirement specification, and requirement documentation. Conduct a review of software requirements document using best practices to assess its quality. Use software tools to support the software project management and the requirement engineering definition.

CPCS361 Operating System 3 CPCS202 And CPCS214 NCAAA Course Spec.
View Short Description

The objective of this course is to provide a general overview of operating systems concepts and recent methodologies and techniques used in the field and their trades-offs, with various examples from the contemporary used systems. Topics include the basic structure of an operating system, its interaction with the hardware, software, and users, and the services it provides. The course illustrates different algorithms and techniques used in controlling, managing, and allocating various computer resources, such as CPU, memory, storage and I/O devices. It demonstrates the tuning of the OS for maximizing the utilization and increasing the performance of the computer system.

CPCS371 Computer Networks 1 3 CPCS214 NCAAA Course Spec.
View Short Description

The objective of this course is to provide an introduction to computer networks and the ISO- layers reference model, which includes necessary protocols. This course also includes a detailed discussion of protocols in selected layers, such as data link layer, transport layer, network layer, application layer.

CPCS381 Human Computer Interaction 1 3 CPCS351 NCAAA Course Spec.
View Short Description

The objective of this course is to familiarize students with the skills and concepts of Human-Computer Interaction (HCI), including the understanding of user needs, interface design and interface evaluation. Topics include an introduction to HCI, HCI goals, interaction types, design principles, cognitive framework (Attention, Perception, Learning & decision making), HCI design, data gathering & analysis, interface types, natural user interface & interaction framework.

CPCS391 Computer Graphics 1 3 CPCS203 And CPCS212 NCAAA Course Spec.
View Short Description

The objective of this course is to study the hardware and software principles of interactive raster graphics. Topics include are: introduction to computer graphics, vector and pixel display system, 2D and 3D modeling and transformations, viewing transformations, projections, rendering techniques, graphical software packages, and graphics systems. The student will use a standard computer graphics API to reinforce concepts and study fundamental computer graphics.

CPCS498 Graduation Project 1 1 90 Credit Hours NCAAA Course Spec.
View Short Description

This course is the first part of a sequence of two project modules that constitute the BSc graduation project. In this module, the students are expected to propose, analyze, and design a software system or conduct a thorough investigation of a particular CS-related problem for contribution in computer science and related research domains. The deliverables are oral presentations and written reports demonstrating a quantifiable approach to the solution.

CPCS499 Graduation Project 2 3 CPCS498 NCAAA Course Spec.
View Short Description

This course is the second part of a sequence of two projects modules that constitute the BSc graduation project. In this project, the student will continue the System design/Research development of the project that started in CPCS498. The deliverables are oral presentations, progress reports, and a final report.

Total Credits        54