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.