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

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
    Course Specifications 

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.

 

112COMP-3 Programming-I Credit Hours : 3 Prerequisite: COMP-111
    Course Specifications 

This course is designed to provide students with an overview of essential concepts and principles of programming. Programming basics will be explored using the Java programming language. Specific topics covered included are:-An Overview of Computers and Programming Languages, Basic Elements of Java, Variables, Types, Operators, Branching mechanism, Iteration and loops, Methods and Arrays.

 

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

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.

 

213COMP-3 Programming-II Credit Hours : 3 Prerequisite: 112COMP-3
    Course Specifications 

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
    Course Specifications 

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
    Course Specifications 

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.

 

ITEC-211 Database Concepts and Design Credit Hours : 3 Prerequisite: None
    Course Specifications 

This course aims to discuss the basic concepts and designs of the database. It covers topics such as database system architecture, data model, levels of abstraction, data independence, and concurrency control. It focuses on how to design databases for given problems, and how to use database effectively, including ER modelling, key and participation constraints, weak entities, class hierarchies, aggregation and conceptual DB design sing the ER model. Relational model: creating and modifying relation using query language, enforcing integrity constraints, ER o relational and view. Schema refinement and normal forms: Functional dependencies, reasoning about functional dependencies, normal forms, decompositions, and normalization. Relational Queries: Relation algebra operation and commercial query languages. Students will be trained on one of the software tools: Oracle, Sybase, and DB2.

 

214COMP-3 Object Oriented Programming Credit Hours : 3 Prerequisite: 213COMP-3
    Course Specifications 

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.

 

231COMP-3 Digital Desgin Credit Hours : 3 Prerequisite: None
    Course Specifications 

This course provides basic concepts of digital systems, review of core design components and circuit design principles. It covers the principles and methodology of digital logic design at the gate and switch level, including both combinational and sequential logic elements. It covers the topics of number system, Boolean algebra and switching theory, combinational circuits design using multiplexers, decoders, comparators and adders.

 

ITEC-251 Data Communication and Computer Networks Credit Hours : 3 Prerequisite: None
    Course Specifications 

This is an entry-level course in data communication and networking. This course explains the students with the fundamentals of data communications and networking in detail. The topics include fundamentals of data communications: essential elements of data communications: simplex, half-duplex and full duplex transmission, basic concepts of networking: network criteria, network applications and benefits. Configurations, and categories of networks: line configuration, network topologies (mesh, star, tree, bus, ring, hybrid), internetwork or internet, types of network connection, intranet, and extranet. Introduction to OSI and TCP/IP network models: The OSI Model, The OSI layers, TCP/IP Protocol Suite in detail. Physical layer and media: analog and digital signals, periodic and non-periodic signals, signal parameters, time and frequency domains concepts, transmission impairment, transmission media: guided media, unguided media, circuit, and packet switching. Data link layer control: framing, error control and flow control, error detection and correction techniques: VRC, LRC, CRC, checksum, and hamming code techniques. Wired LAN (Ethernet), IP addressing, subnetting, supernetting. networking and internetworking devices, and VLANs. Students will be trained on the existing components and products related to Cisco such as wireless networking, switches, routers, bridges, gateways, repeaters, hubs, cellular communication, and satellite communication.

 

315COMP-3 Web Programming Credit Hours : 3 Prerequisite: None
    Course Specifications 

This course aims to provide fundamental concepts of designing a web page and developing static as well dynamic web sites for UG level students. Some of the most popular web related techniques such as HTML, CSS and PHP are included in order to design and develop real world web applications.

 

321COMP-3 Data Structures and Algorithms Credit Hours : 3 Prerequisite: None
    Course Specifications 

This course focuses on the study and implementation of various data Structures-Arrays, Linked lists, Stacks, Queues, Trees and Graphs. The course introduces 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.

 

332COMP-3 Computer Architecture Credit Hours : 3 Prerequisite: None
    Course Specifications 

This course is about the structure and basic function of computers. Its purpose is to present, as clearly and completely as possible, the nature and characteristics of modern-day computer systems. This course cover all aspects of computer, from the underlying integrated circuit technology used to construct computer components, to the increasing use of parallel organization concepts. This course also focuses on different elements of Computer Organization and Major components which include processor, memory, I/O, control unit, registers, ALU, and instruction execution unit. It also discusses control signals for the operation and coordination of all processor components.

 

316COMP-3 Principles of Programming Languages Credit Hours : 3 Prerequisite: None
    Course Specifications 

This course aims to introduce the basic principles of syntax, semantic, theory and computational behavior of programs in terms of investigating how the programming languages are. It discusses the concepts of datatypes, type-checking, binding and their scope in various programming languages including the concepts of subprograms. It also discusses the basic concepts of functional and logic programming languages.

 

324COMP-3 Graph Theory and Applications Credit Hours : 3 Prerequisite: None
    Course Specifications 

The course covers basic of Graph theory and applications in the field of computing science. The areas that will be studied are graphs, trees and networks. Topics related to graphs will include graph models, graph isomorphism, connectivity and traversability, planarity, distance in graphs, digraphs and networks. Tree related topics will include properties of trees, tree traversal, minimum spanning trees and use of trees in sorting and prefix codes. Algorithms on networks such as shortest path algorithm, minimal spanning tree algorithm and min-flow max-cut algorithm.

 

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

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
    Course Specifications 

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.

 

333COMP-3 Operating Systems Credit Hours : 3 Prerequisite: None
    Course Specifications 

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.

 

322COMP-3 Design & Analysis of Algorithms Credit Hours : 3 Prerequisite: None
    Course Specifications 

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, NPcompleteness and reduction techniques.

 

324COMP-3 Computer Data Security & Privacy Credit Hours : 3 Prerequisite: None
    Course Specifications 

This course provides 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, Denialof-Service Attacks, Intrusion Detection and Message authentication.

 

371COMP-3 Software Engineering Credit Hours : 3 Prerequisite: None
    Course Specifications 

Software engineering is a major branch of computing science that deals with the development of software systems as practical and cost-effective solutions for individuals and society. This course covers the fundamentals of software engineering like software life cycle, requirements engineering, system development paradigm, and system modeling using UML. It also covers software verification & validation, important implementation issues, open-source development, and concepts of software re-engineering. The course has a strong technical relation with graduation project providing the opportunity to practice software engineering knowledge, skills, and practices in a realistic development setting with a real client.

 

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

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
    Course Specifications 

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
    Course Specifications 

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
    Course Specifications 

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.

 

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

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
    Course Specifications 

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
    Course Specifications 

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
    Course Specifications 

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
    Course Specifications 

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
    Course Specifications 

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
    Course Specifications 

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.

 

     
Rating