General Computer Topics, Computer Hardware and Software. Computer Data and Computer Programs, the Computer Processor, Main Memory, and Registers. Input/output Hardware, Storage Hardware. System Software (Operating System Basic Features, DOS, Windows, Unix, OS/2, and Macintosh). Application Software (Application Software Basic Features, MS Word, Excel, and Access, Specialty Applications Software). Communication Hardware, Networks, the Internet, Browsers and Email. Concepts of Programming Languages, solving problems, Data types, algorithm, and programs.
Text book
Computer Confluence : Concise Edition, George Beekman, 1998,Benjamin,Cummings
Course Code
CS 102
Course Name
Computer Programming (1)
Credit hours
4(3+1)
: 2
Prerequisites :
CS 101
Course description
General introduction to computers and Programming Languages. The elements of a typical C Program development environment. Structured programming and proper programming techniques. The Algorithm, Pseudocode, and Flowcharts. The three control structures in C: sequence structure, selection structures and repetition structures. Construct programs modularly from small functions and recursion. To use the array data structure to represent lists and tables of values. Pointers and pointer operators. To use the functions of the character and strings handling library.
Text book
C++ How to Program,H.M.Deitel,P.J.Deitel,1998:Prentice Hall
Course Code
CS 104
Course Name
Computer Programming (2)
Credit hours
4(3+1)
Level
3
Prerequisites : CS 102
Course description
Introduction to Object Oriented Programming languages, several C++ enhancements to C. What classes, objects, member functions and data members are. How to use a constructor to ensure that an object's data is initialized when the object is created. How destructors are used to perform “termination housekeeping” on an object before it is destroyed. What operator overloading is and how it makes programs more readable and programming more convenient. To redefine (overload) operators to work with objects of user-defined classes. To create classes by inheriting from existing classes and how inheritance promotes software reuse. The use of inheritance to customize existing software. What polymorphism is, how it makes programming more convenient and how it makes systems more extensible and maintainable. The formatted Input/Output and file processing. Some applications (Arrays, Queues, Linked Lists, and sorting algorithms).Prerequisites :
Text book
C++ How to Program,H.M.Deitel,P.J.Deitel,1998:Prentice Hall
Some facts on the use of computers in society and why let down the computer user, sometimes in the fields of computer learning, computer in the areas of health, in the computer industry, hard and underlying system, using the computer magazine business in business management and office automation and computer networks, computer crimes, computer security.
Text book
The Social Impact of Computer Richard S. Rosenberg, Academic Press, Inc
Course Code
CS 217
Course Name
Data Structures
Credit hours
3(3+1)
Level: 4
Prerequisites
CS 104
Course description
This course introduces the fundamental concepts of data structures and the algorithms that proceed from them. How to estimate the time required for a program. The results of careless use of recursion. Introduce the concept of Abstract Data Types (ADT). Show how to efficiently perform operations on lists. Introduce the queue ADT and its use in operating systems and algorithm design. Trees, Binary Trees, AVL Trees, Splay Trees, Tree Traversals (Revisited) and B-Trees. See several methods of implementing the hash table and compare these methods analytically. Heaps, Binary Heap, applications of Priority Queues, d-Heaps, Leftist Heaps, Skew Heaps and Binomial Queues. Some sorting algorithms insertion sort, shellsort, heapsort, mergesort, quicksort, sorting large structures, bucket sort and external sorting. Graph Definitions, representation, and the topological sort, Shortest-Path algorithms, Network Flow problems, and applications of Depth-First Search. Prerequisites
Text book
Data Structures and Problem Solving using C++, Mark Allen Weiss,2000, Addison- Wesley
Course Code
CS 216
Course Name
Logic Design
Credit hours
3(3+1)
Level: 4
Prerequisites :
None
Course description
Logic operations, truth tables, logic gates, Boolean algebra and canonical forms. K-maps, minimization of logic functions. Multilevel combinational logic. Multiplexers, and demultiplexers. Time response and hazards. Programmable logic. Tri-state and open collector gates, and combinational logic case study. Flip-flops and Latches. Finite state machines, implementation and optimization. Arithmetic Unit, Memory, Hardware description lang. and prototyping.
Text book
Textbook and references: Digital Design, M. Mano, 2nd edition. Prentice Hall Inc, 1992
Internal composition of personal computers based on Intel's x86. General review of the programming language compilation. Representation of data. Represent the numbers inside the computer. The numbering systems. The list of orders in the language of the assembly. Summons concepts and situations. Matrices stack trend. The definition of the procedure. Circulation variables and orders return. Self-replication. The definition of word processing, orders and the definition of structural data. The definition peroxide or peroxide or appeal. Input and output, including the province. Slice coding interface with languages such as the Supreme language CNN. Draft quarterly applications in real.
Text book
Assembly Language Programming for the IBM PC, Yu Marut, Latest Edition, McGraw Hill.
Course Code
CS 335
Course Name
Operating Systems
Credit hours
3(3+1)
Level: 5
Prerequisites :
CS 217
Course description
Role and purpose of operating systems, history of operating system development, functionality of a typical operating system, design issues. Structuring methods, abstractions, processes, and resources, design of application programming interfaces (APIs), and device organization, interrupts, user/system state transitions. Concurrent execution, states and state diagrams, implementation structures, dispatching and context switching, interrupt handling in a concurrent environment. Mutual exclusion problem, deadlock detection and prevention, solution strategies, models and mechanisms, producer-consumer problems, synchronization, and multiprocessor issues. Scheduling, memory management, device management, file systems, and security and protection.
Text book
Operating System Concepts, Peter B. Galvin A. Sibberchatz, 4th Edition Addition Wesley Pub. Co.
Course Code
CS 337
Course Name
Concepts of Programming Languages
Credit hours
3(3+0)
Level: 5
Prerequisites :
104CS
Course description
This course covers the design, development, and implementation of programming languages. Overview of existing programming languages concepts, comparison between their categories, and some practical examples of these languages. Language design principles, abstract syntax, evaluation mechanisms, binding, type systems, polymorphism, data encapsulation, exceptions, formal definition of programming languages, compiling techniques, abstract machine design, and run-time systems and garbage collection. Logical, functional, and object oriented programming languages.
Text book
Concepts of programming Languages, R.W. Sebesta, Addison-Wesley
Course Code
CS 351
Course Name
Running Computer Centers
Credit hours
3 ( 2+1 )
Level: 5
Prerequisites :
101CS
Course description
Organizing an information processing centers, and the details of different functions, access to information sources and management, assess the efficiency of computers, planning capabilities required with management, recruitment, training and incentives in the field of computer, respects the financial centers in information processing documentation, higher commissions for managing information processing centers, reports Flying to management, data protection and software and hardware, internal audit and control, cases of the study. Prerequisites :
Text book
مذكرات من إعداد أستاذ المقرر
Course Code
CS 383
Course Name
Definite Structures
Credit hours
3(3+0)
Level: 5
Prerequisites :
216CS
Course description
This course serves as an introduction to some of the more important concepts, techniques, and structures of discrete mathematics, providing a bridge between computer science and mathematics. Sentential and predicate languages, truth tables, and quantifiers. Methods of mathematical proof and disproof. Operations, cardinality, combinatorics, Boolean algebra and logic gates, simplification of logic circuits, and normal forms. Number theory, algorithms, counting techniques, mathematical induction, and recursion. Relations and functions. Semi groups, groups, rings, Boolean algebras and isomorphisms. Trees, directed graphs, colorings, and algorithms for traversing graphs.
Text book
Discrete mathematic and its applications, Kenneth H. Rosen, 1995 McGraw-Hill
Course Code
CS 325
Course Name
Database
Credit hours
3(3+1)
Level: 6
Prerequisites :
CS 217
Course description
This course is designed to introduce the foundations of database systems, focusing on basics such as the relational algebra and data model, query optimization, query processing, and transactions. Data modeling, conceptual models, object-oriented model, and relational data model. Mapping conceptual schema to a relational schema, entity and referential integrity, and relational algebra and relational calculus. Overview of database languages, SQL, query optimization, embedding non-procedural queries in a procedural language, and introduction to Object Query Language. Database design, functional dependency, normal forms, multivalued dependency, join dependency, and representation theory.
Text book
Fundamentals of Database Systems, R. Elmasre & S.B.Navathe 3\e,1999Benjamin Cummings.
Course Code
CS 328
Course Name
Computers Architectures
Credit hours
3(3+0)
Level: 6
Prerequisites :
CS 216 + CS 225
Course description
Fundamental building blocks, logic expressions, minimization, sum of product forms, register transfer notation, and physical considerations. Bits, bytes, and words, numeric data representation and number base s, signed and twos-complement representations, representation of nonnumeric data, and representation of records and arrays. Basic organization of the von Neumann machine, instruction fetch, decode, and execution; instruction sets and types, assembly/machine language programming, instruction formats, addressing modes, subroutine call and return mechanisms, I/O and interrupts. Memory systems, interfacing, communication, functional organization, and performance enhancements.
Text book
Computers Architectures: A Quantities Approved, J. Hennessy And D. Patterson
Course Code
CS 343
Course Name
Software Engineering
Credit hours
3(3+1)
Level: 6
Prerequisites :
CS 337
Course description
Software life-cycle and process models, process assessment models, and software process metrics. Requirements elicitation, requirements analysis modeling techniques, functional and nonfunctional requirements, prototyping, and basic concepts of formal specification techniques. Fundamental design concepts and principles, software architecture, structured design, object-oriented analysis and design, component-level design, and design for reuse. Validation planning, testing fundamentals, test plan creation and test case generation. Software maintenance, characteristics of maintainable software, reengineering, legacy systems, and software reuse.
Text book
Software Engineering, Ian Somerville, 5\e, Addison-Wesley.
Course Code
CS 363
Course Name
Artificial Intelligence
Credit hours
3(3+1)
Level: 6
Prerequisites :
CS 217+383 CS
Course description
Fundamental issues in intelligent systems. Problem-Solving Agents, searching for solutions, uninformed search strategies (breadth-first search, uniform-cost search, depth-first search, depth-limited search, iterative deepening depth-first search, and bidirectional search) and Informed search strategies (greedy best-first search, A* search, and memory-bounded heuristic search). Knowledge representation and reasoning (propositional and predicate logic, resolution and theorem proving). Genetic algorithms, simulated annealing, and local search. Machine learning, neural networks, natural language processing and expert systems (using PROLOG).
Text book
Artificial Intelligence: A Modern Approach, Russel & Norvig, 1995, Prentice-Hall
Course Code
CS 375
Course Name
Human Computer Interaction and Computer Graphics
Credit hours
3(3+1)
Level: 6
Prerequisites :
CS 217
Course description
Fundamental techniques in graphics, graphical algorithms (line generation algorithms, structure and use of fonts, parametric polynomial curves and surfaces, polygonal representation of 3D objects, introduction to ray tracing, image synthesis, sampling techniques, and anti-aliasing). Computer animation (key-frame animation, camera animation, scripting system, animation of articulated structures, motion capture, procedural animation, and deformation). Multimedia techniques, design of multimedia systems, and tools for multimedia development. Foundations of human-computer interaction, human-centered software evaluation, human-centered software development, graphical user-interface design, and graphical user-interface programming.
Text book
1. Integrated Computer Graphics by Bruce Meilhe, West Publishing Co.
2. Human Computer Interaction, 2ed. By Alan Dix et Al., Prentice Hall
Course Code
CS 338
Course Name
Compiler Construction
Credit hours
3(3+0)
Level: 7
Prerequisites :
CS 337
Course description
Introduction and an overview of compilation technology. Lexical Analysis (Scanning): regular languages/expressions, finite state machines, and building regular expressions from a finite automaton. Syntax Analysis (Parsing): Expressing Syntax, Context Free Grammars, Top-Down Parsing, Bottom-Up parsing. Semantic Analysis: Context-sensitive analysis, Attribute Grammars, Symbol Tables, Type Checking. Intermediate Representations: Properties, taxonomy, Graphical IRs, Linear IRs. The Procedure Abstraction, Linkage convention, and Run-time storage organisation. Code Shape, Instruction Selection, Register Allocation, and Instruction Scheduling. Code Optimisation, and JIT Compilation.
Text book
Introduction to Compiler Design Principles, Techniques and tools, Aho, Sethi and Ullaman, 1986 , Addison-Wesley.
Course Code
CS 422
Course Name
Computer Networks
Credit hours
3(3+1)
Level: 7
Prerequisites :
CS 335
Course description
Local Area Network and Wide Area Network technologies, token passing rings, FDDI, wireless networks, network interconnection with repeaters, bridges, and switches, DSU/CSU, xDSL and cable modems, store-and-forward, and next-hop forwarding. Router-based architecture, IP addressing, address binding with ARP, datagram encapsulation and fragmentation, link-state and distance-vector routing, Dijkstra's algorithm, network properties. Network applications: client/server concept, port demultiplexing, socket API, server concurrency, DNS, TELNET, Web technologies including HTML, HTTP, CGI, Java, RPC and middleware, and network management. Introduction to network security.
Text book
Computer Networks, A. Tanenbaum, 3\e, 1996, Prentice Hall.
Course Code
CS 426
Course Name
Advanced Database
Credit hours
3(3+1)
Level: 7
Prerequisites :
CS 325
Course description
This is an advanced course on database systems and related information technology: Logic Query Languages, Object Models, Object Query Languages, Recovery, Concurrency Control, Transactions, Information Integration, Object-Relational Databases, Object Oriented Databases, and Query Processing for Object-Oriented Databases.
Project lifecycle, Project stakeholders, Project management skills (leading, communicating, negotiating, influencing, and presenting). Change control (scope, schedule, cost, quality, risk, project team, and senior management). Project planning (definition, scope, schedule, costs, quality, resources, and risks). Contingency planning. Project reporting and controls (definition, scope, schedule, costs, quality, resources, and risks). The role of IT in organizational change. The role of IS specialists as change agents. Envision change and the change process. Diagnose and conceptualize change. Deal with the challenges of implementation and understand and cope with resistance. Deal with issues of motivation, interpersonal relations, group/team dynamics, and leadership in the change process. Manage organizational politics. The limitations of projects as organizational change initiatives.
Text book
IEEE Tutorial Project Management.
Course Code
CS 490
Course Name
Selected Topics (1)
Credit hours
3(3+0)
Level: 7
Prerequisites :
End 90 hours
Course description
Modern topics in computer science.
Text book
Journals and Magazines relevant the topics covered.
Course Code
CS 494
Course Name
Graduation Projects (1)
Credit hours
2(2+0)
Level: 7
Prerequisites :
End 90 hours
Course description
Text book
Course Code
CS 403
Course Name
Internet Technology
Credit hours
3(3+1)
Level: 8
Prerequisites :
CS 422
Course description
Communications Technology (Communication Hardware, Communication Networks), general view of Internet technologies, examples, development, and applications. Netiquette and Ethics. Publishing and browsing the web. Internet protocols TCP/IP, client/server, and WWW (definition, history, developments). Creating a home page, introduction to HTML, and writing a resume (Tags, editors, web page design). Data communications, and data security.
Introduction to Distributed Systems and Models. Networking and Internetworking Essentials. Overview of network programming Distributed Computing Technologies and Middleware. Distributed Operating Systems. Distributed Algorithms. Distributed Databases. Distributed Applications (including Internet, Web, and Mobile applications). Case Study and Selected Advanced Topics. Foundations of designing a parallel algorithms. Shared memory models. Parallel algorithms for linear algebra, fourier transform, recurrence evaluation, graph problems. Interconnection network based models. Algorithm design for networks like hypercube ,shuffle-exchanges , meshes, butterfly networks. Parallel Algorithm Complexity. Models of Parallel Processing. PRAM and Basic Algorithms. Shared-Memory Algorithms like sorting. Systolic arrays and techniques for generating them. Message routing.
Text book
Distributed Operating Systems, A. Tanenbaum, 1996, Prentice Hall