Course Catalog

CS101 Computer Programming I

Credits: 4 (3,1,2). Prerequisite: None.
The basic programming and problem solving concepts. Emphasis is on techniques of problem analysis and the development of algorithms and programs. An introduction to modern object-oriented programming concepts.


CS102 Computer Programming II

Credits: 3 (3,1,0). Prerequisite: CS 101.
An intermediate level object-oriented programming concepts. Some sophisticated uses of object-oriented concepts (inheritance, polymorphism, method overloading, and multiple inheritance of interfaces) and techniques for building systems of multiple interacting components.


CS 151 Introduction to Digital Design

Credits 3 (3,1,0). Prerequisite: CS 101.
This course is an Introduction to digital systems design. It enables the student to understand how the basic components of computers are specified, optimized and implemented using current digital electronics technology. This knowledge is a key factor in preparing the student to understand how computers work in subsequent courses.


CS 202 Computer Applications for Business

Credits: 3 (2,0,2). Prerequisite: at least 60 credit hours. (For non-IS and CS majors)
This main purpose of this course is to provide students with computer application skills especially in the areas of accounting, finance, and marketing. Applications covered include, electronic spreadsheet and its macros, statistical analysis, graphics and presentations tools, and database management. In addition, students must be proficient in word processing in order to complete graded assignments.


CS 210 Data Structures and Algorithms

Credits: 3 (3,1,0). Prerequisite: CS 102.
The fundamental data structures and their effective use in a variety of applications. Emphasis is on data structure abstraction and choice, modeling of real problems, and I implementation for obtaining an efficient algorithm for solving a given problem. The implementation and analysis of important algorithms for sorting, searching, string processing, geometric applications, graph manipulation, and matrix operations.


CS 225 Software Engineering: Design and Development

Credits: 3 (3,1,0). Prerequisite: CS 210.
An overview of software engineering (definitions, evolutions, applications). Software process models. Software life cycle. Software requirement analysis. Software documentation. Software design methodologies. Development strategies and project management.


CS 251 Introduction to Computer Organization and Assembly Language

Credits: 3 (3,1,0). Prerequisite: CS 151.
This course is an introduction to computer organization and assembly language. It describes how computers are organized and programmed at different abstraction levels. It covers a wide range of topics in both computer hardware organization and assembly code programming.


CS 285 Discrete Mathematics for Computing

Credits: 3 (3,1,0). Prerequisite: CS 210, STAT 101
Sets, functions, logic, truth tables, Boolean algebra. Algorithms, integers and matrices. Mathematical reasoning Combinatorics, discrete probability and probability theory. Discrete structures.


CS 311 Design and Analysis of Algorithms

Credits 3 (3, 1,0). Prerequisite: CS 285.
Techniques for designing algorithms, analyzing them, and proving their con-ectness Algorithm design paradigms, such as, greedy, divide-andconquer, backtracking. dynamic programming, and randomization. Time and space. complexity classes introduction to NP-completeness.


CS 320 Programming Languages: Concepts and Paradigms

Credits: 3 (3, 1,0). Prerequisite: CS 210.
Theory and implementation of modern programming languages. Language-based programming methodologies, including procedural, object-oriented, functional, and logic programming. Design and criticism of programming languages.


CS 330 Introduction to Operating Systems

Credits: 3 (3,1,0). Prerequisite: CS 210, CS251.
An introductory study of evolution, services, and structure of operating systems. It covers the basic concepts of operating system design and implementation an management of system resources such as Central Processing Unit (CPU), Input/Output (110) devices, memory, and software. Examples given from modem operating systems such as Unix and Windows-driven operating systems. The students are given practical hands-on experience in implementation and testing of some components of small multi-programmed operating systems.


CS 331 Data Communication and Computer Networks

Credits: 3 (3,1,0). Prerequisite: CS 210.
An overview (definitions, evolutions, examples and applications). Fundamentals of data communication. Network types, structures, architectures and topologies. The OSI model and its layers. TCPIIP networks and the Internet.


CS 336 Network Operations and Administration

Credits: 3 (3,0,0). Prerequisite: CS 331.
An overview of network operations. TCPIIP network management. Network planning, configuring, installing and diagnosing. Network monitoring, analysis and performance tuning. User accounts. Network security. Managing system resources.


CS 355 Computer Architecture

Credits: 3 (3,1,0). Prerequisite: CS 251.
Review of logic design fundamentals. History of computers. Representation of data. Basic processor organization, data and control paths of the simple processor, hardwired and micro-programmed control unit, RISe vs. CISC organization. Abstract view of the computer at various levels: the high-Level language, OS, assembly language and internal register-transfer level (RTL). 110 organization. Memory hierarchy and virtual memory. Examples of current microprocessors. Introduction to pipelined and parallel computing.


CS 365 Human-Computer Interaction

Credits: 3 (3,1,0). Prerequisite: CS 210.
Introduction to the concepts underlying the design. of human-computer interaction: usability, direct manipulation, systematic design methods, user conceptual models and interface metaphors, design languages and genres, human cognitive and physical ergonomics, information and interactivity structures, design tools and environments.


CS 370 Introduction to Artificial Intelligence

Credits: 3 (3,1,0). Prerequisite: CS 210.
An overview of Artificial Intelligence (definitions, evolutions and applications). Problem solving. Knowledge representation methods and techniques. Structures and strategies for state space search Heuristic search techniques.


CS 381 Systems Programming

Credits: 3 (2,0,2). Prerequisite: CS 330.
The course covers the following topics Systems programming at hardware or operating system levels. The software for systems programming (e.g., C++ builder). Shell! Windows Interface programming Design and implementation of applications! system's functions (such as interrupt and event handling, timer handling, signals, device drivers, process and thread creation and manipulation, etc.) and their integration with contemporary operating systems (either Windows-based or commanddriven operating systems). Debugging tools.


CS 412 Theory of Computation

Credits: 3 (3,1,0). Prerequisite: CS 210
Foundations: sets relations and languages. Finite Automata. Context-free Languages. Turing Machines. Desirability and computability. Computational Complexity and NP-completeness.


CS 425 Advanced Software Engineering

Credits: 3 (3,1,0). Prerequisite: CS 251.
Review of logic design fundamentals. History of computers. Representation of data. Basic processor organization, data and control paths of the simple processor, hardwired and micro-programmed control unit, RISe vs. CISC organization. Abstract view of the computer at various levels: the high-Level language, OS, assembly language and internal register-transfer level (RTL). 110 organization. Memory hierarchy and virtual memory. Examples of current microprocessors. Introduction to pipelined and parallel computing.


CS 430 Advanced Operating Systems

Credits: 3 (3,0,0). Prerequisite: CS 330.
A study of advanced concepts in operating systems, such as management of concurrent processes, security and protection of computer systems, distributed file systems and virtual memory. Students are given a practical hands-on experience in programming concurrent applications.


CS 432 Computer-Data Security and Privacy

Credits: 3 (3,0,0). Prerequisite: CS 331, CS 340 or IS 223.
An overview (definitions, motivations and applications). Security and privacy solution components: policy, principles, mechanism and assurance. Database, network and Internet security. Authentication, access control, auditing intrusion detection and threats. Routing, TCP/IP, Firewalls, client/server issues and cryptography.


CS 433 Internet Technologies

Credits: 3 (3,0,0). Prerequisite: CS 331.
Internet technologies such as publishing and browsing technologies, Internet protocols, standards and languages.


CS 435 Distributed Systems

Credits: 3 (3,0,0). Prerequisite: CS 330, CS 331.
An overview (definitions, evolutions and trends, applications). Distributed system architectures .Client-server systems. Distributed data and object, and transaction management. Distributed operating systems Distributed algorithms and protocols.


CS 437 Introduction to Parallel Computing

Credits: 3 (3,0,0). Prerequisite: CS 311.
An overview of parallel computing (definitions, evolutions, applications, and issues). Models of parallel computers: paraIIel architectures, idealized parallel computer, and interconnection networks. Basic communication operations. Performance and scalability of parallel systems. MPI/PVM standard. Parallel applications and programming.


CS 440 Database Management Systems: Design and Implementation

Credits: 3 (3,0,0). Prerequisite: CS 340.
An overview of a database management system. Different logical data models relational, hierarchical, network and object-oriented. Architectures and components of relational database management system.


CS 462 Topics in Multimedia

Credits: 3 (3,0,0). Prerequisite: CS 360, CS 365.
Introduction to applications and techniques in multimedia. A study of the principles and practice in computer-enhanced multimedia. Developing the skills to produce multimedia products by learning and presenting information incorporating graphics, animation, video, sound and text.


CS 470 Advanced Artificial Intelligence

Credits: 3 (3,0,0). Prerequisite: CS 370.
Advanced topics in artificial intelligence. Knowledge-based systems, natural language processing, automated reasoning. Machine learning.


CS 476 Natural Language Processing

Credits: 3 (3,0,0). Prerequisite: CS 370.
An introduction to natural language processing: representation, parsing, natural language generation, and the interaction between long-term knowledge and understanding. Arabic language processing.


CS 483 Computer Arabization

Credits: 3 (3,0,0). Prerequisite: Instructor consent.
Introduction to areas of computer Arabization, including: layout, characters shapes and processing, Arabic code pages, Arabic language structure and features.


CS 489 Selected Topics in Computer Science

Credits: 3 (3,0,0). Prerequisite: Instructor consent.
This course covers topics in the computer science discipline, which are not covered by the other computer science courses. The students are encouraged to propose topics for this course.


CS 490 Internship in Computer Science

Credits: 3. Prerequisite: Advisor consent.
The student is asked to spend 2 months (around 300 working hours) in an approved company or institute. It is up to the student to choose the place he wishes to enroll in butb nevertheless, prior approval of the department is required. This course has normal grading (A, B, etc.).


CS 492 Cooperative Education

Credits: 10. Prerequisite: Department consent
This course is an elective (on the student part) and selective (on the department part) track, subject to the approval of the department. It carries a 10 credit hours weight and has normal grading (A, B, etc.). Students who are allowed to take this track will be waived from the following courses: CS 490, CS 498, CS 499, and a free-elective course. Typically a co-op program will last 7 months (at least 1200 working hours) and will span one summer and one regular semester. Prior approval of the department is required. Furthermore, close supervision by both the department and the company is maintained to ensure that the student is following the proposed work plan.


CS 494 Industry Link

Credits: 3. Prerequisite: Department consent.
This is an elective course that follows a pre-planned program administered by the college/department. It involves spending a specified period of time in several local and possibly outside computing institutions and companies and/or enrolling in their orientation programs. This course has normal grading (A, B, etc.).


CS 498 Senior Project I

Credits: 3. Prerequisite: Instructor consent, and completion of 90 credit hours.
A software project applying previously learned concepts and methods, substantial and suitable in nature, under the supervision of a faculty member. The senior project consists of a sequence of two courses: CS 498 and CS 499. In CS 498, the student is typically expected to study the problem, analyze and detennine the requirements and design the solution.


CS 499 Senior Project II

Credits: 3. Prerequisite: CS 498.
This course is a continuation of CS 498. The student is typically expected to carry the implementation, testing, evaluation and tuning phases in this course.