Course Descriptions - Bachelor in Computer Science
111COMP-3 Introduction To Computing Credit Hours : 3 Prerequisite: None

This course introduces the fundamental concepts and features of Computer. It includes the basics of Computer Hardware, Software, Input / Output devices, Computer User / Client, Computer Architecture, Programming, Data Representation, and Utility Applications. This course also covers Python 3 programming language. This is an introductory course designed for all students of Computer Science. Students will use their problem-solving abilities with programming to implement basic programs in Python.


101CSC-3 Introduction To Computer Credit Hours : 3 Prerequisite: None

This course introduces the fundamental concepts and features of Computer. It includes the basics of computer hardware, software, types, peripherals, input/output devices, computer network, computer user/client, computer architecture, storage devices, internet, operating system, programming, data representation, advantages and applications.


011COMP-3 Programming-I Credit Hours : 3 Prerequisite: CSC-101

This knowledge area consists of those skills and concepts that are essential to programming practice independent of the underlying paradigm and programming language for the beginners. Specific topics covered include: An Overview of Computers and Programming Languages, Basic Elements of Java, Variables, Types, Operators, Branching Mechanism, Iteration and loops, Methods, and Arrays.


112COMP-3 Programming-II Credit Hours : 3 Prerequisite: 011COMP-3

This course provides the fundamental concepts of recursion techniques as an important programming concept to express the other style of iteration by showing the technique used by function or method via calling itself. Moreover, the concepts like mutable and immutable objects will be investigated where these vital concepts will give smooth introduction to the object orientation by explaining the objects in the manner of state and behavior.
An introduction to object-oriented paradigm will be introduced by explaining the class design in depth through presenting the UML legends used to graphically express the class design as well as presenting the class methods and constructors through the design along the implementation of the class design. In addition, the concept of lists and collection used in Java as an important technique which allow applying the operation over collection of data with different types as primitive or objects types of the data stored will be investigated through the arrays of objects, arrays of arrays, and engaging searching algorithms. Furthermore, the concepts and types of exceptions used over the list will be illustrating deeply.
Finally, all the concepts mentioned here will be applied using Java programming language by implanting the code using open source IDE as (NetBeans and BlueJ).


151COMP-3 Computational Geometry Credit Hours : 3 Prerequisite: None

The course begins by introducing the fundamentals of computational geometry as a new tool for modeling and designing algorithms, the application of the computational geometry in many different areas like geology and biology is also introduced. Graph theory is introduced in the next chapter including representing graphs, graph isomorphism, Euler graph, Hamilton path, shortest distance problems, adjacency matrix and distance matrix. The theory of trees is covered including binary search tree algorithm, decision tree and game tree. Tree traversal and spanning tree are also covered in the chapter.


114COMP-3 Programming in Statistics & Probability Credit Hours : 3 Prerequisite: None

This course provides an elementary introduction to statistics and probability with applications. This course also covers several topics specifically, basic definitions, graphs, measure of central tendency, measure of dispersion, theory of probability, random variables, probability distributions, correlation and linear regression.


213COMP-3 Object Oriented Programming Credit Hours : 3 Prerequisite: 112COMP-3

This course provides the fundamental concepts of object-oriented design and implementation of software systems. The list of topics includes the fundamental concepts of classes, objects, methods, object orientation techniques such as abstraction and modularization, code coupling and refactoring, encapsulation, inheritance/subtyping and polymorphism, abstract data types. Students will acquire basic knowledge on how to translate problem statement into an object-oriented software that is easy to maintain (change a feature, remove a feature, fix a bug etc.) and extend.


252COMP-3 Data Modeling and Simulation Credit Hours : 3 Prerequisite: None

This course provides an overview of models and simulations and of modeling and simulation techniques. Techniques include time-driven, event-driven dynamic models/simulations and Monte Carlo Simulation. Classification of models: discrete or continuous, stochastic or deterministic, static or dynamic. The course also provide thorough understanding of random number generation, Queuing models, Simulation of queuing systems, inventory systems input modeling and verification & validation of simulation models.


221COMP-3 Algorithms and Data Structures-I Credit Hours : 3 Prerequisite: None

This course focuses on the study and implementation of various data Structures-Arrays, Linked lists, Stacks, Queues, Trees and Graphs. The course introduces the asymptotic complexity and performance measurement of simple algorithms. The topic includes the concepts of hashing, hash-tables, implementation and analysis of Sorting Algorithms-Bubble Sort, Insertion Sort, Selection Sort and Searching algorithms- Linear Search, Binary Search.


231COMP-3 Operating Systems Credit Hours : 3 Prerequisite: None

This course introduces a detailed description about operating system objectives, functions and core concepts. Topics include operating system principles, file management systems, memory management, processes and threads, scheduling algorithms and deadlocks.


222COMP-3 Algorithms and Data Structures-II Credit Hours : 3 Prerequisite: 221COMP-3

This course provides a broad discussion and technique of non -linear data structures, with emphasis on data abstraction, rates of growth and asymptotic analysis of algorithms. The topics covered are Abstract Data Type, Linear Data Model: Arrays and Dynamic Lists, Hierarchical Data Model: Binary Trees, Heap, Binary Search Trees, AVL-Trees, Red-Black Trees, Multi-way Trees, Graphs, Graph Traversals and Hashing.


241COMP-3 Artificial Intelligence Credit Hours : 3 Prerequisite: None

This course offers basic concepts of the intelligence, innovations, achievements and advanced development in the areas of AI. It covers modern techniques for computers to represent task-relevant information and intelligent decisions system, solving problems by searching towards the achievement of goals. It covers some advanced topics namely Planning, Learning, Robotics and Multi-Agent Systems basics.


323COMP-3 Analysis and Design of Algorithms Credit Hours : 3 Prerequisite: 222COMP-3

This course provides to the students a techniques for designing and analyzing algorithms such as brute-force, divide-and conquer, decrease-and-conquer, Space and Time Trade Off(Boyer Moore Algorithm and Horspool Algorithm); They acquire some understanding on design techniques and algorithms that address an important set of well-defined problems: DFS and BFS shortest-path algorithms (Dijkstra’s and Floyd’s algorithms); transitive closure (Floyd’s algorithm); minimum spanning tree (Prim’s and Kruskal’s algorithms); topological sort. In addition, the course will provide different complexity characteristics P and NP classes, NP-completeness and reduction techniques.


315COMP-3 Visual Programming [Elective-1] Credit Hours : 3 Prerequisite: None

This course introduces the .Net framework and Visual C# language basic concepts (Statements, Exceptions, Methods, Arrays, Class, Objects, Interface, and Namespaces) to develop windows applications. This course also covers C#’s event driven programming concepts, windows forms, controls, multithreading, and data handling. Also introduces the web application development with ASP.NET.


324COMP-3 Computer Data Security and Privacy Credit Hours : 3 Prerequisite: None

This course provides an integrated, comprehensive and up-to-date coverage of topics in Computer Security. The list of topics covers the basics of Computer Security, Cryptographic Tools, User Authentication, Access Control, Malicious Software, Denial-of-Service Attacks, Intrusion Detection and Message authentication.


336COMP-3 Computer Graphics Credit Hours : 3 Prerequisite: None

In this Course Computer Graphics theory and applications will be covered. Topics taught are classified as Fundamentals of computer graphics programming, Graphics hardware and software standards, 2D geometric primitives and raster images, 3D object representations. Data structures, algorithms, and the graphics pipeline. Graphical user interfaces. Underlying concepts in computer graphics systems including games, animation, modelling, rendering and paint systems.


332COMP-3 Advanced Operating Systems Credit Hours : 3 Prerequisite: 231COMP-3

This course provides the detailed description of distributed system concepts and its applications. It includes synchronization, concurrency and distributed scheduling algorithms. It also covers the fundamental concepts, structure, characteristics, scheduling algorithms of multi-processor & real time operating system and various aspects and mechanisms for operating system security.


390COMP-3 Summer Training Credit Hours : 3 Prerequisite: None

The summer training at the faculty of computer science and information technology is an important part of student’s academic plan that is considered as a basic requirement for graduation. This program is shared among all three departments (Computer Science, Computer Engineering and Network, Information Technology and Security). The summer training includes either international or national training; Some distinguish students will be nominated for international training (outside Kingdom) on advance topic in the computer fields, other students will join national training program on any governmental or private institution that specialized in Information Technology and security services to give the students practical experience on their career.


471COMP-3 Java Programming [Elective-II] Credit Hours : 3 Prerequisite: 213COMP-3

This course aims to introduce the development of stand-alone and dynamic web applications with respect to solve real world problems using one to many tier architectures. In order to construct the stand-alone and web applications, it mainly focuses on techniques to design and implement front-end, back-end and business logics using various java-based technologies.


433COMP-3 Theory of Compilers Credit Hours : 3 Prerequisite: None

This course presents an introduction to compilers phases –analysis, synthesis, lexical analysis, regular expressions, finite automata NFA and DFA. Syntax Analysis, context-free grammar, ambiguity, top-down parsing – recursive descent and LL(K), bottom-up parsing, shift reduce parsing, introduction to LR parser, semantic analysis, syntax directed translation, intermediate code generator-three address code, storage organization, heap management, code generation, and code optimization.


442COMP-3 – Artificial Neural Networks Credit Hours : 3 Prerequisite: 241COMP-3

This course provides an introduction to artificial neural networks. It reviews biological neural networks, and presents a general framework to construct their mathematical models with a view to study their applications. It gives a historical view to the McCulloch-Pitts model, application of Rosenblatt’s Perceptron learning model in both linear and non-linear classification problems and the Widrow-Hoff’s ADALINE model. It discusses important issues in the design, training, troubleshooting, and testing of neural network applications.


495COMP-3 Final Project Credit Hours : 3 Prerequisite: None

This is a capstone course emphasizes team collaboration and application of modern software engineering approaches to software construction. The development by each team of an original, industry strength software product is the main objective of the course. The instructors will present lectures on the Unified Modeling Language (UML) and its application to object-oriented analysis and design and the teams will report on their project’s progress by giving presentations and submitting deliverables related to the project. The teams will deliver and present project parts at the following stages: topic proposal (concept), software specification (requirements), design (model), and implemented software (final product). At the end of the semester, there will be a final Project presentation where students will demonstrate and presentation the outcome and findings of the project work.