Course Code: CSC 107
Course Title: Introduction to Computing
Credit hours: 3
(Lectures, Lab, Tutorial): 2,2,0
Level (Semester): 1
Prerequisites: None
Description of Course Contents:
Computer generations (components, classifications, and capabilities); Computer processing (Data representation: binary system. Bit, byte, ASCII coding); Data processing (Flow of control, batch and interactive Processing types); Generations of programming languages; The Computing Disciplines (Computer Science, Computer Engineering, and information systems); Systems software (DOS, MS-Windows, and Unix/Linux +X-Windows); Software packages (MS-Word, MS-Excel, Netscape/Explorer, Email packages, telnet, FTP, and the Emacs Text Processor; Tools for web page construction.
Course Code : CSC 112
Course Title : Computer Programming I
Credit Hours : 3
( Lec, Lab, Tutorial ): 2,2,1
Level (Semester) : 1
Prerequisites : None
Description Of Course Contents:
Introduction to computers; Simple types, variables and statements; Input output statements; Conditional statements; Iteration statements; Functions and procedures; Recursion; One-dimensional array problems; Two-dimensional arrays.
_________________________________________________________________
Course Code : CSC 113
Course Title : Computer Programming II
Credit Hours : 4
( Lec, Lab, Tutorial ): 3,2,1
Level (Semester) : 2
Prerequisites : CSC 112
Description Of Course Contents:
Introduction to OO (Procedural programming, OO programming, Differences between Procedural programming and OO programming, OO Program Structure and design methodology); Classes (ADT, Constructors, Destructors, attributes, methods); Objects, Overloading, Inheritance, polymorphism, I/O System and built-in classes (I/O basics, Formatted I/O, I/O manipulators, File I/O basics, binary, random access, Built-in classes); Applications and Examples (Arrays, Linked list, Stack, Queue); Program Style (definition/ declaration/ specification/ implementation/ comment/ Naming)
Course Code: CSC 212
Course Title: Data Structures
Credit hours: 3
(Lectures, Lab, Tutorial): 3,0,1
Level (Semester): 3
Prerequisites: CSC 113
Description of Course Contents:
Introduction to Problem Solving (Problem solving, modular design, abstraction and information hiding, OO design. Key issues in programming: modularity, modifiability, ease of use, fail-safe programming, style, debugging.); Recursion; Abstract Data Types; Linked Lists; Stacks; Queues; Algorithm Efficiency (Measuring the efficiency of Algorithms: execution time of algorithms; algorithm growth rates, order-of-magnitude analysis (big O notation)); Sorting (Selection Sort, Bubble Sort, Insertion Sort, Merge Sort, Quick Sort); Trees (Terminology The ADT Binary Tree (traversals of a BT, representations of a BT); The ADT Binary Search Tree; The ADT Balanced Search Tree (2-3 Trees, 2-3-4 Trees); AVL Trees; Tables and Priority Queues (The ADT Table The ADT Priority Queue (a variation of the ADT Table, Heaps, a heap implementation of the ADT PQ); Hashing (Hash functions, resolving collisions, efficiency of hashing, designing a good hash function); Graphs (Terminology, Graphs as ADTs, implementing graphs, Graph Traversals: Depth-First Traversal, Breadth-First Traversal, Applications of Graphs).
_______________________________________________________________________________
Course Code : CSC 222
Course Title : Computer Organization and Assembly Language
Credit Hours : 3
(Lectures, Lab, Tutorial): 2, 2, 1
Level (semester): 3
Prerequisite : CSC 113
Description of Course Contents :
Introduction to basic computer organization and how the computer works; The Internal organization of the Intel x86-based PCs; Overview of Assembly language programming; Data Representation: Machine representations of numbers, and Numbering Systems; Assembly Language Instruction set; Addressing concepts and addressing modes; Arrays and hardware stack; Procedure Definition, Parameter passing, and return instructions; Recursion; String definition and String manipulation instructions, and structured data definition; Macro Definition and Macro calls; Input/Output including interrupt handling; Interfacing Assembly code segment with higher-level languages such as Pascal or C; A semester project in real-life applications .
______________________________________________________________________________________
Course Code : CSC 227
Course Title : Operating Systems
Credit Hours : 3
( Lec, Lab, Tutorial ): 3,0,1
Level (Semester) : 4
Prerequisites : CSC 212 and CSC 222
Description Of Course Contents:
Introduction; Operating System services; CPU Scheduling; Disk Scheduling; Memory Management; Process synchronization.
_______________________________________________________________________
Course Code : CSC 235
Course Title : Programming Languages
Credit Hours : 3
( Lec, Lab, Tutorial ): 3,0,1
Level (Semester) : 4
Prerequisites : CSC 212
Description Of Course Contents:
Study of programming Languages; Language Design Issues; Language Translation Issues (Syntax, Stages in translation, Formal Translation Models, Finite State Automata, Context-free grammars); Data Types; Abstraction and Inheritance; Sequence Control; Subprogram Control and Implementation; Advances in Language Design (Exceptions, co-routines, Parallel Programming, Concurrent execution, Tasks, Synchronisation); Overview of non-imperative Languages (Functional programming, Logic Programming, Object-Oriented Programming).
_______________________________________________________________________________
Course Code : CSC 281
Course Title : Discrete Mathematics for Computer Science
Credit Hours : 3
( Lec, Lab, Tutorial ): 3,0,1
Level (Semester) : 4
Prerequisites : CSC 212, STAT 324, and MATH 151
Description Of Course Contents:
Foundations (logic, sets, and functions). Growth of functions. Algorithms, integers, and matrices. Mathematical reasoning (methods of proof, mathematical induction, recursive definitions and algorithms). Combinatorics (counting techniques, permutations and combinations), discrete probability and probability theory. Discrete structures (sets, relations, graphs and trees).
Course Code: CSC 305
Course Title: Ethical and Social Issues in Computing
Credit hours: 3
(Lectures, Lab, Tutorial): 3,0,1
Level (Semester): 6
Prerequisites: CSC 107
Description of Course Contents:
Proliferation of Computers in our World; Computers and the Human Imagination; Brief History and Criticism: From the Chip to the Internet; Computers and the Business World; Medicine and Computers; Computers and Education; Computers and the Government Machine; Computers and the Law; Privacy versus Freedom of Information; Employment and Unemployment; Computers in the Banking Industry: Electronic Transactions; The Information Society; Ethics and Professionalism.
_______________________________________________________________________________
Course Code : CSC 311
Course Title : Design and Analysis of Algorithms
Credit Hours : 3
( Lec, Lab, Tutorial ): 3,0,1
Level (Semester) : 5
Prerequisites : CSC 281
Description Of Course Contents:
Models of Computations (includes a brief look at Turing machines). Mathematical foundations. Techniques for designing and analyzing algorithms. Sorting, order statistics, and hashing. Algorithm design paradigms, such as, greedy, divide-and-conquer, backtracking, dynamic programming, and randomization. Search Methods. Graph Algorithms. Time and space complexity classes. Introduction to NP-completeness.
________________________________________________________________________
Course Code: CSC327
Course Title: Systems Programming
Credit hours: 3
(Lectures, Lab, Tutorial): 3,0,1
Level (Semester): 5
Prerequisites: CSC 222
Description of Course Contents:
C++ builder and the essentials of visual and Windows systems programming, introduction to windows API, Windows message processing functions, Windows system information functions, memory management functions, process and thread manipulation, handling dynamic link libraries, registry manipulation, clipboard manipulation, timer functions, handling modems and peripherals.
_______________________________________________________________________________
Course Code : CSC 329
Course Title : Computer Networks
Credit Hours : 3
( Lec, Lab, Tutorial ): 3,0,1
Level (Semester) : 6
Prerequisites : CSC 227
Description of Course Contents:
Use of Computer networks; Network topologies; Layered network architectures, Study of all different layers (functions, services, protocols); Local area networks; Internetworking; Data security; Some applications.
_______________________________________________________________________________
Course Code: CEN 333
Course Title: Computer Architecture for Computer Scientists
Credit hours: 3
(Lectures, Lab, Tutorial): 3,0,1
Level (Semester): 4
Prerequisites: CSC 222
Description of Course Contents:
Fundamentals of Computer Design (Introduction, definition of performance, quantitative principles). Performance and Cost (Introduction, performance, and cost), Instruction Set Design (Introduction, instruction set architectures, operand storage in memory, memory addressing, operations in the instruction set, and the role of high-level language and compilers. Instruction Set Examples. Basic Processor Implementation Techniques (Introduction, processor datapath, basic steps of execution, hardware control, microprogrammed control, interrupts). Pipelining (Definition, Basic pipeline, pipeline hazards, difficulties). Memory-Hierarchy Design (Principle of locality, general principles of memory hierarchy, caches, main memory, and virtual memory). Input/Output (Introduction, predicting system performance, I/O performance measures types of I/O devices, and Buses). Future Directions (SIMD, MIMD, special-purpose processors, future directions for compilers) .
______________________________________________________________________________________
Course Code: CSC 336
Course Title: Compiler Construction
Credit hours: 3
(Lectures, Lab, Tutorial): 3,0,1
Level (Semester): 6
Prerequisites: CSC 235
Description of Course Contents:
The course introduces the main theories, algorithms and tools for compiler construction. It covers the topics: lexical analysis, (regular expressions and finite automata, Lex), syntax analysis (context-free grammar, Yacc), top-down and bottom-up parsing techniques, semantic analysis, intermediate code generation, run-time system, code generation, and introduction to code optimization. The students are expected to write a complete compiler for a very simple high level programming language.
______________________________________________________________________________________
Course Code: CSC342
Course Title: Software Engineering
Credit hours: 3
(Lectures, Lab, & Tutorial): 3,0,1
Level (Semester): 5
Prerequisites: CSC 212
Description of Course Contents:
The software process, the software product, software process models: the waterfall model, the spiral model, etc., software methodologies: classical and object-oriented methodologies, applying software process models and methodologies (all phases) using a practical project, configuration management, software quality assurance, software testing, software reliability and software metrics.
_______________________________________________________________________________
Course Code: CSC 361
Course Title: Artificial Intelligence
Credit hours: 3
(Lectures, Lab, Tutorial): 3,0,1
Level (Semester): 6
Prerequisites: CSC 212
Description of Course Contents:
Introduction to AI; Knowledge Representation (Semantic Networks, Frames, Propositional and Predicate Logic); Resolution and Basic Inference Rules; Problem Spaces and Search Techniques (Blind Search: Depth-First Search, Breadth-First Search, Depth-Limited Search, Iterative Deepening Search; Heuristic Search: Greedy Search, A*-Search, Hill Climbing), Constraint Satisfaction Problems; (Some of the following) Applications: Game Playing, Machine Learning, Natural Language Processing, Expert Systems; Neural Networks; Genetic Algorithms.
The programming language Prolog will be introduced in the Lab sessions .
_______________________________________________________________________________
Course Code : CSC 380
Course Title : Fundamentals of Database Systems
Credit Hours : 3
( Lec, Lab, Tutorial ): 3,0,1
Level (Semester) : 5
Prerequisites : CSC 212
Description of Course Contents:
File Organization, indexing techniques, Database Concepts and Architecture, ER model, Relational model and Algebra, SQL, Normalization, Functional dependencies, Introduction to EER, Introduction to OODBMS (Concepts, ODL, OQL).
______________________________________________________________________________
Course Code : CSC 383
Course Title : Advanced Database Management Systems
Credit Hours : 3
( Lec, Lab, Tutorial ): 3,0,1
Level (Semester) : 6
Prerequisites : CSC 380
Description Of Course Contents:
The System Catalog; Query processing and Query optimization techniques; Concurrency Control techniques; Back-up and Recovery techniques; Security, Development of Database Management Systems. Advanced Database Models.
________________________________________________________________________
Course Code: CSC 428
Course Title: Computer Arabization
Credit hours: 3
(Lectures, Lab, Tutorial): 3,0,1
Level (Semester): 7
Prerequisites: CSC 327
Description of Course Contents:
System Arabization level (screen Arabization, keyboard Arabization, printer Arabization, font and codepage manipulation, creating visual Arabic interfaces, etc.); Introduction to Arabic natural language processing (Arabic morphological analysis, Arabic syntax and semantics, Classical models, Applications); Applying neural networks in Arabic natural language processing (neural networks for Arabic morphological analysis, neural networks for syntactic analysis); The phonetic properties of the Arabic language (Arabic allophones, isolating Arabic allophones, characterization of Arabic allophones, using Arabic allophones in some applications); Applications.
Course Code : CSC 429
Course Title: Computer Security
Credit hours: 3
(Lectures, Lab, Tutorial): 3,0,1
Level (Semester): 8
Prerequisites: CSC 329
Description of Course Contents:
Security principles, models, and attacks. Cryptography, public-key and secret-key cryptography. Authentication and digital signatures. Key management and cryptographic protocols. Building secure systems. Security in operating Systems. Security in computer networks. Management and analysis of security. Computer security policy. Intrusion detection and incident response.
Course Code: CSC 457
Course Title: Internet Technologies
Credit hours: 3
(Lectures, Lab, and Tutorial): 3,0,1
Level (Semester): 7
Prerequisites: CSC 329
Description of Course Contents:
An overview of Internet technologies (definitions, evolutions, examples, and, applications). Publishing and browsing technologies. Internet tools. TCP/IP and Client/server architectures. WWW, HTTP and HTML for text, images, links and forms. Database connectivity and indexing. Web-based applications development: CGI scripting, Java, and PERL. WEB site development. Security, and privacy.
_______________________________________________________________________________
Course Code : CSC 458
Course Title : Distributed Systems and Parallel Processing
Credit Hours : 3
( Lec, Lab, Tutorial ): 3,0,1
Level (Semester) : 7
Prerequisites : CSC 227
Description Of Course Contents:
Introduction to parallel systems; Processes and processors; Parallel architectures (multi-computer, multi-processor); Interconnection networks; Communication in parallel systems; Parallel programming paradigms; Performance of Parallel systems (speedup, efficiency, etc.); Examples of parallel programming; ; Introduction to distributed systems; Distributed algorithms; Distributed systems models; Synchronization and Termination detection in distributed systems.
Course Code : CSC 477
Course Title : Graphics and Human Computer Interaction
Credit Hours : 3
( Lec, Lab, Tutorial ): 3,0,1
Level (Semester) : 7
Prerequisites : CSC 212
Description Of Course Contents:
2-D Computer Graphic Algorithms; Geometric Transformations; Representation of Curves and Surfaces in form, Shade and Design. Cartoons, Human Factory and Relevant Technology effecting Man-machine relation types and shapes of such interaction. Utility Principles and the Dialogue Principle and its Design Supporting Applications.
Course Code : CSC 483
Course Title : Information Retrieval and Web Databases
Credit Hours : 3
( Lec, Lab, Tutorial ): 3,0,1
Level (Semester) : 8
Prerequisites : CSC 383
Description of Course Contents:
Introduction to distributed databases and client server environment, databases on the web. mobile databases, multimedia databases, Geographical Information Systems (GIS), digital libraries. Querying and indexing the worldwide web. Information Retrieval: an overview, IR techniques, IR system, IR languages, documents indexing, accessing, IR measures, and IR applications to WWW.
_________________________________________________________________________
Course Code: CSC 493
Course Title: Selected Topics in Computer Science
Credit hours: 3
Level (Semester): 8
Prerequisites: Level 7
Description of Course Contents:
This course aims at introducing the students to a different area of Computer Science. This will be achieved by exposing them to new tools, techniques, and research in Computer Science.
______________________________________________________________________
Course Code: CSC 496
Course Title: Graduation Project I
Credit hours: 2
Level (Semester): 7
Prerequisites: Advisor Consent
Description of Course Contents:
The graduation project consists of a sequence of two courses: CSC 496 and CSC 497. In this project, the student is expected to develop a software for a specific problem by applying previously learned concepts and methods during the course of the project. In CSC 496, the student is typically expected to study the problem, perform the analysis, determine the requirements, and design the solution. The student will deliver a report at the end of the semester. The project topic may be provided by the department or by the student, subject to the department approval.
________________________________________________________________________
Course Code: CSC 497
Course Title: Graduation Project II
Credit hours: 4
Level (Semester): 8
Prerequisites: CSC 496
Description of Course Contents:
The student will continue the software development of his project problem of CSC 496. In this course, the student is expected to deliver a detailed report including all the software development phases.