Program Description
Faculty Mission
The faculty mission aims to sustain excellence in the creation and dissemination of knowledge by:
1. Teaching and Research in basic and applied sciences
2. Scholarly publication in basic and applied sciences
3. Centrality of the Faculty within the University will be strengthened by excellence of our academic programs
and our strategic collaborations with all faculties across the University.
Computer Science Program Mission
The mission of the Computer Science program can be summarized as follows:
1. Produce highly professionals in computer science that are committed to lifelong learning
2. Make positive contributions to society
3. Achieve the national development goals through fostering an academic environment ideal for knowledge
development, research, and innovation in the field of Computer science.
Program Educational Objectives (PEO)
A few years after graduation, graduates of the computer science program will:
I. Have established a broad knowledge of computer science and mathematics to design innovative computer
related solutions for real world problems.
II. Have demonstrated effective teamwork, oral and written communication skills as well as collaborative skills
and have contributed to society by behaving ethically and responsibly.
III. Be successfully employed or accepted into a graduate program, and demonstrate professional development
and lifelong learning throughout their careers
Student Outcomes
Our CS program student outcomes are consistent with the ABET Criterion for Computer Science programs. The program enables students to achieve, by the time of graduation:
(a) An ability to apply knowledge of computing and mathematics appropriate to the discipline
(b) An ability to analyze a problem, and identify and define the computing requirements appropriate its solution
(c) An ability to design, implement, and evaluate a computerbased system, process, component, or
program to meet desired needs
(d) An ability to function effectively on teams to accomplish a common goal
(e) An understanding of professional, ethical, legal, security and social issues and responsibilities
(f) An ability to communicate effectively with a range of audiences
(g) An ability to analyze the local and global impact of computing on individuals, organizations, and society
(h) Recognition of the need for and an ability to engage in continuing professional development
(i) An ability to use current techniques, skills, and tools necessary for computing practice
(j) An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the
modeling and design of computerbased systems in a way that demonstrates comprehension of the tradeoffs
involved in design choices.
(k) An ability to apply design and development principles in the construction of software systems of varying
complexity.
Career Opportunities
The rapid development in the world of computer, including the introduction of new applications and the use of computer technologies in all domains of public and private organizations, academics, industry and research has led to more job vacancies for computer scientists. In particular, they may work as:
System Programmer, System Analyst, System Administrator, Internet Applications Programmer, User Interface Designer, Database Analyst, Database Administrator, Network Administrator, Computer Game Designer/Programmer, Computer Science Researcher and Computer Science Instructor.
Academic Staff:
Chairperson: Prof. Mohammad N. Abdulrahim
Professors: Prof. Ali ElZaart
Associate Professors: Dr. Imad Al Ashmawy, Dr. Toufic El Arwadi, Dr. Noura Yassin, Dr. Abdullah alChakik
Assistant Professors: Dr. Ahmed Sherif, Dr. Wassim ElHajj Chehade, Dr. Maher Jneid, Dr. May Itani, Dr. Lama Affara
Mission :
The mission of the Computer Science program is to produce highly qualified professionals in computer science that are committed to lifelong learning, and make positive contributions to society. This will lead to achieve the national development goals through fostering an academic environment ideal for knowledge development, research, and innovation in the field of Computer science.
Objectives:
A few years after graduation, graduates of the computer science program will:
 Have established a broad knowledge of computer science and mathematics to design innovative computerrelated solutions for real world problems.
 Have demonstrated effective teamwork, oral and written communication skills as well as collaborative skills and have contributed to society by behaving ethically and responsibly.
 Be successfully employed or accepted into a graduate program, and demonstrate professional development and lifelong learning throughout their careers
Learning Outcomes :
Our CS program learning outcomes are consistent with the ABET criteria for Computer Science programs. The program enables students, by the time of graduation, to achieve:
 An ability to apply knowledge of computing and mathematics appropriate to the discipline.
 An ability to analyze a problem, and identify and define the computing requirements appropriate to its solution.
 An ability to design, implement and evaluate a computerbased system, process, component, or program to meet desired needs.
 An ability to function effectively on teams to accomplish a common goal.
 An understanding of professional, ethical, legal, security and social issues and responsibilities.
 An ability to communicate effectively with a range of audiences.
 An ability to analyze the local and global impact of computing on individuals, organizations and society.
 Recognition of the need for and an ability to engage in continuing professional development.
 An ability to use the current techniques, skills and tools necessary for computing practice.
 An ability to apply mathematical foundations, algorithmic principles, and computer science theory in the modeling and design of computerbased systems in a way that demonstrates comprehension of the tradeoffs involved in design choices.
 An ability to apply design and development principles in the construction of software systems of varying complexity.
Degree Requirements :
To obtain the Bachelor Degree in Computer Science, students must successfully complete a total of 100 credit hours + IC3, where the standard duration of study is 6 semesters. There is one general semester of study for the students of the Computer Science Program.
Career Opportunities:
The rapid development in the world of computer, including the introduction of new applications and the use of computer technologies in all domains of public and private organizations, academics, industry and research has led to more job vacancies for computer scientists. In particular, they may work as:
System Programmer, System Analyst, System Administrator, Internet Applications Programmer, User Interface Designer, Database Analyst, Database Administrator, Network Administrator, Computer Game Designer/Programmer, Computer Science Researcher and Computer Science Instructor.
Program Overview:
I. University Requirements 
Credits 
* University Mandatory Courses 
5 
* University Elective Courses 
11 
II. Program Requirements 
Credits 
Faculty Core Courses 
17 
Major Core Courses 
50 
Departmental Elective Courses 
9 
General Science Electives (MATH, PHYS, CHEM)

8 
Total 
100 
A total of 16 credits is required as General University Requirements:  5 credits are selected from the University Mandatory courses list
 4 credits from social sciences list
 4 credits from humanities list
 3 credits from other lists of the university elective courses + IC3.
Laboratories:
The program utilizes a number of wellequipped laboratories for practical work and research.
The Laboratories serving the program are:
 3 Undergraduate Computer Labs
 1 Research Computer Lab
Student Enrollment History:
Academic Years 
2013/2014: 54 
2014/2015: 66 
2015/2016: 65 
2016/2017: 78 
2017/2018: 82 
Student Graduation History:
Academic Years 
2013/2014: 20 
2014/2015: 13 
2015/2016: 15 
2016/2017: 22 
2017/2018: 16 
Study Plan:
A study of the fundamental concepts of chemistry including matter and measurement, atoms, molecules, ions, moles, nomenclature, atomic and molecular weights. Stoichiometry. Chemical reactions, quantitative calculations. Periodic table, atomic structure, periodic properties of the elements, chemical bonding, molecular structure. The gaseous, liquid, and solid states of matter. Properties of solutions, aqueous reactions and solution stoichiometry. Thermochemistry, chemical thermodynamics, chemical kinetics, chemical equilibrium, acids, bases and ionic equilibria, electrochemistry, nuclear chemistry and coordination chemistry.
Selected experiments illustrate the topics discussed in CHEM 241. Coreq.: CHEM 241.
Introduction to computer hardware and software. Binary system and data representation. The software lifecycle. Flow charts and IPOcharts. Introduction to computer programming and problem solving. Structured high level language programming with an emphasis on procedural abstraction and good programming style. The basic looping and selection constructs arrays, functions, parameter passing and scope of variables.
Multivariable functions, partial derivatives, polar, cylindrical and spherical coordinates, indefinite and definite integrals, methods of integration, multiple integrals, sequences and series, power series, vector field integration.
Physics and measurement: standards of length, mass, and time; Nonviscous fluids, Pascal’s principle, Bernoulli’s equation, Viscous flow of fluids and Poiseuille’s law; Temperature, heat and thermal properties of matter; Heat transfer by conduction, convection and radiation; Reflection, refraction and image formation by the eye and camera; Sound waves; Moduli of Elasticity: Young, shear and bulk and relation among them; Elastic properties of materials; Coulomb's law and the electric field; Electric flux and Gauss’s law, Electric potential and potential energy; Capacitance and dielectrics; Magnetism: magnetic forces, magnetic dipole; Magnetic flux and Gauss law in magnetism.
): Experimental work related to the topics discussed in PHYS 243. Coreq.: PHYS 243.
Object oriented concepts and techniques for analysis, design, and implementation. Topics include methods and parameters passing, recursive methods, objects and classes, UML representation of classes, abstraction, encapsulation, information hiding, message passing, overloading, classes relationships (aggregation, composition), inheritance, overriding, polymorphism, abstract classes, interfaces, Exception handling, Files. Prereq.: CMPS 241.
An introduction to digital electronics, integrated circuits, numbering systems, Boolean algebra, gates, flipflops, multiplexers, sequential circuits, combinational circuits, and computer architecture. Introduction to hardware description language and programmable logic devices.
The course covers different techniques and technologies for developing dynamic web sites. Topics include introduction to internet infrastructure, PHP as the serverside scripting language, the MySQL database, JavaScript, DHTML, XML and AJAX for enriching web services, and page layout with HTML and CSS. This course includes a team project to deploy a dynamic website. Prereq.: CMPS 241.
The course introduces basic discrete structures that are backbones of computer science. In particular, this class is meant to introduce logic, proofs, sets, relations, functions, sequences, summations, counting techniques with an emphasis on applications in computer science. Prereq.: CMPS 241.
Basic concepts in statistics (mean, variance and frequency distribution), Random variables, discrete probability, conditional probability, independence, expectation, standard discrete and continuous distributions, central limit theorem, regression and correlation, confidence intervals.
This course introduces the principles of computer organization and the basic architecture concepts. Topics include data representation, instruction set architectures, RISC processors, introduction to the MIPS instruction set, measuring performance, designing a simple processor, a single cycle datapath implementation, a multicycle implementation, Control Unit Design, Pipelining, cache design. Prereq.: CMPS 244.
The course covers advanced topics in discrete structures. Topics include Recurrence Relations, some topics from Graph Theory: Paths, Components, Connectivity, Euler Paths, Hamiltonian Paths, Isomorphism of Graphs, Trees and topics from Number Theory including computer arithmetic with large integers and Cryptography. Prereq.: CMPS 248.
Fundamental concepts of data structures. Performance measurement of algorithms. Specification, representation and implementation of linear and nonlinear data structures: arrays, lists, stacks, queues, priority queues, trees, heaps, hash tables and graphs. Prereq.: CMPS 242.
A rigorous introduction to linear algebra with emphasis on proof and conceptual reasoning, matrices, determinants, system of linear equations, vector spaces, linear transformations and their matrix representation, linear independence, bases and dimension, ranknullity, brief discussion on inner product, projections, orthonormal bases, eigenvalues, eigenvectors, diagonalization.
Data models and database systems architectures. Conceptual data modeling using entityrelationship diagrams (ERD and Enhanced ERD). The relational database model. Mapping conceptual data models into physical relational design. Theory of functional dependencies and normalization. Relational algebra and tuple relational calculus. Data definition and retrieval using SQL language. Prereq.: CMPS 242
Different phases of largescale software development with emphasis on analysis, design, testing, and documentation. Topics include: introduction to software engineering, ethics in software engineering, development processes, requirements developments, object oriented analysis and design using UML, architectural design, testing, and project management. Students work in groups on realistic projects to apply covered techniques. Prereq.: CMPS 242.
This course is an introduction to the fundamental models of computation used throughout computer science. Topics include deterministic finite automata (DFA), regular languages, nondeterministic finite automata (NFA), equivalence of NFAs and DFAs, closure properties, regular expressions, the pumping lemma, pushdown automata, context free languages, context free grammar, ambiguity, Chomsky normal form, Turing machines, decidability, the halting problem and topics related to time complexity, P, NP and NPCompleteness. Prereq.: CMPS 248.
Solutions of nonlinear equations in one variable: Bisection, Newton, Fixed point and Secant methods, interpolation and approximation: Lagrange Polynomial, divided differences, Hermite interpolating polynomial, numerical differentiation and integration (quadrature formulas), direct method for solving linear system, numerical methods for solving nonlinear systems of equations, numerical solutions of ODEs. Prereq.: MATH 241.
A systematic study of algorithms and their complexity. Topics include techniques for designing efficient computer algorithms, proving their correctness, analyzing their runtime complexity; as well as Divide and Conquer algorithms, Greedy algorithms, Dynamic Programming algorithms, Sorting and Searching algorithms (Binary search, Radix sort, Bucket sort, Count Sort, Insertion sort, Merge sort, Quick sort and Heap sort), Order statistics, Graph algorithms (Graph traversal, Minimum spanning trees and Shortest path problems). Prerequisites: CMPS 347 & CMPS 345
In this course, students choose a senior project subject; define problem statements and system requirements, make feasibility study, define design and time table schedule. In this course, students must deliver a preliminary report and present the project report at the end of the semester.
This course will define, analyze and evaluate important concepts found in current programming languages. Its goals are to build an ability to evaluate and compare programming languages, both from the user's and implementor's view. Topics include: syntax, operational semantics, scope of objects and time of binding, type checking, module mechanisms (e.g., blocks, procedures, coroutines), data abstraction, data types, expressions, control structures, subprograms, implementation of subprograms, functional programming, logic programming and objectoriented programming languages. This course includes a team project to learn a novel programming language and use it in implementing an application. Prereq.: CMPS 347.
Fundamental principles in computer networks are applied to obtain practical experience and skills necessary for designing and implementing computer networks, protocols, and network applications. Various network design techniques, simulation techniques, and UNIX network programming are covered. Prereq.: CMPS 347
General Science Electives (MATH, PHYS, CHEM)
Operating systems concepts and functions. Operating systems structures and system Calls. Processes and threads scheduling. Interprocess communication. CPU scheduling algorithms. Process synchronization. Deadlocks. Main memory management. Virtual memory management. File management. I/O subsystem and device management. Selected topics in networking, protection and security, distributed systems. Prereq.: CMPS 347
This course is the continuation of the senior project I. Senior project II course offers students an opportunity to assemble their knowledge acquired throughout their BS curriculum to realize a final project. In this course, students must deliver a software product and final senior project report, which passes through the requirements, analysis, design, implementation, testing, and evaluation stages. Students must present the senior project report at the end of the semester. Prereq.: CMPS 443
General Science Electives (MATH, PHYS, CHEM)
Course Code 
Course Title 
Credits 
Hours Distribution 
Course Type 
First Semester 
CHEM241 
Principles of Chemistry 
3 
(3Crs.:3Lec) 
FC 
CHEM241L 
Principles of Chemistry Laboratory 
1 
(1Cr.:3Lab) 
FC 
CMPS241 
Introduction to Programming 
3 
(3Crs.:2 Lec.,2Lab) 
FC 
MATH241 
Calculus and Analytical Geometry 
3 
(3Crs.:3Lec) 
FC 
PHYS243 
General Physics 
3 
(3Crs.:3Lec) 
FC 
PHYS243L 
General Physics Laboratory 
1 
(1Cr.:3Lab) 
FC 
 
University Requirements 
3 
(3crs.) 
CUR 
Second Semester 
CMPS242 
Object Oriented Programming 
3 
(3Crs.:2Lec,3Lab) 
MJC 
CMPS244 
Digital Circuits 
3 
(3Crs.:2 Lec,3Lab) 
MJC 
CMPS246 
Web Programming 
3 
(3Crs.:2 Lec,3Lab): 
MJC 
CMPS248 
Discrete Structures I 
3 
(3Crs.: 2Lec, 3Lab) 
MJC 
MATH242 
Probability and Statistics 
3 
(3Crs.:2Lec.,2 Lab) 
FC 
 
University Requirements 
2 
(2crs.) 
CUR 
Third Semester 
CMPS343 
Computer Organization & Architecture 
3 
(3Crs.:2Lec,3Lab) 
MJC 
CMPS345 
Discrete Structures II 
3 
(3Crs.:2Lec,3Lab) 
MJC 
CMPS347 
Data Structures 
3 
(3Crs.:2Lec,3Lab) 
MJC 
MATH341 
Linear Algebra 
3 
(3Crs.: 3Lec.,1 Lab) 
MJC 
 
University Requirements 
2 
(2crs.) 
CUR 
 
Elective (Departmental) 
3 
(3crs.) 
DE 
Fourth Semester 
CMPS342 
Database Systems 
3 
(3Crs.:2Lec,3Lab) 
MJC 
CMPS344 
Software Engineering 
3 
(3Crs.:2Lec,3Lab) 
MJC 
CMPS346 
Theory of Computation 
3 
(3Crs.:2 Lec,2 Tut) 
MJC 
MATH348 
Numerical Methods 
3 
(3Crs.:2Lec.,2 Lab) 
MJC 
 
University Requirements 
2 
(2crs.) 
CUR 
 
Elective (Departmental) 
3 
(3crs.) 
DE 
Fifth Semester 
CMPS441 
Fundamentals of Algorithms 
3 
(3Crs.:2 Lec,3Lab) 
MJC 
CMPS443 
Senior Project I 
1 
(1Cr.:1Lec,0Lab) 
MJC 
CMPS445 
Concepts of Programming Languages 
3 
(3Crs.:2Lec,3Lab) 
MJC 
CMPS447 
Computer Networks 
3 
(3Crs.:2Lec,3Lab) 
MJC 
 
University Requirements 
3 
(3crs.) 
CUR 
 
Elective (General Science) 
4 
(4crs.) 
GSE 
Sixth Semester 
CMPS442 
Operating Systems 
3 
(3Crs.:2 Lec,3Lab) 
MJC 
CMPS444 
Senior Project II 
1 
(1Cr.:1Lec,0Lab) 
MJC 
 
University Requirements 
4 
(4crs.) 
CUR 
 
Elective (Departmental) 
3 
(3crs.) 
DE 
 
Elective (General Science) 
4 
(4crs.) 
GSE 
Departmental Elective(DE)
Technology and Humanity, Social and Political impacts of computers. Privacy and Information: wiretapping and encryption, internet security, communication in cyberspace, censorship. Protecting software and their intellectual property: patent, cyberspace copyright. Computer crimes.
Mapping. Affordances. Constraints. Seven Stages of Action. Schneiderman's 8 Golden Rules. Information Visualization. Model Human Processor. Keystroke Level Model. Fitt's law. Input devices (Keyboard, Pointing, Voice). Output devices (Displays, Color, Sound). Interaction Styles (direct manipulation, menu selection, formfillin, command languages) .Windows. Icons. Menus. Dialogue Boxes. Concepts (grids, simplicity, consistency, white space).Context Sensitive Help. Tutorials. Reference Material. Cognitive Walkthrough. Heuristic Evaluation. Expert Reviews. Controlled Experiments (subjects, dependant & independent variables, statistics). Synchronous / Asynchronous tools. Audio / Video. Shared Workspaces. Prereq.: CMPS 242.
The goal of the course is to introduce the student to theoretical foundations and modern applications in Digital Image Processing. Topics include image digitization and representation, image enhancement in spatial and frequency domain, image segmentation, edge detection, features extraction and classification. Prereq.: CMPS 242.
Compiler functions. Language elements. BNF grammars, regular expressions. Finite state machines. Lexical analyzers. Context free grammars. Grammar ambiguity problem. Parse trees. Parsing methods (Topdown, recursive descent, LL, LR). Symbol table construction. Code generation. Code optimization techniques. Prereq.: CMPS 347.
Language essentials for file processing. Access methods, processing algorithms; I/O devices; sequential files, indexed and tree structured files (BTrees), Hashed files. Prereq.: CMPS 347.
Raster and vector graphics system. Video display devices. Physical and logical input devices. Issues facing the developer of graphical systems. Hierarchy of graphics software. User interface. Halftoning. Font generation: outline vs. bitmap. Representation of polyhedral objects. Scan conversion of 2D primitive, forward differencing. Tessellation of curved surfaces. Homogeneous coordinates. Affine transformations (scaling, rotation, translation).Viewing transformation. Clipping. Hidden surface removal methods. Zbuffer and frame buffer, color channels (a channel for opacity).Color models (RGB, HVS, CYM).Light source properties; material properties; ambient, diffuse, and specular reflections. Phong reflection model. Rendering of a polygonal surface, flat shading, Gouraud shading, and Phong shading. Texture mapping, bump texture, environment map. Ray tracing. Image synthesis, sampling techniques, and antialiasing. Parametric polynomial curves and surfaces. Implicit curves and surfaces. Bézier curves and surfaces, control points, de Casteljau algorithm. Bspline curves and surfaces, local editing, knots, control points. NURBS curves and surfaces. Constructive Solid Geometry (CSG) for solid modeling. Boundary Representation of solids (BRep). Prereq.: CMPS 347.
Critical aspects of the software lifecycle, Quality of software system, Techniques and approaches to software design, quality and reliability, Domain Engineering and Software Reuse. Prereq.: CMPS 344.
This course introduces and studies the concepts, issues, tasks and techniques of data mining. Topics include data preparation and feature selection, decision tables, decision trees, classification rules, association rules, clustering, statistical modeling, and linear models. Prereq.: CMPS 342 & Math 242.
Definitions of intelligent systems. Optimality vs. speed tradeoff. Problem spaces. Bruteforce search (DFS, BFS, uniform cost search). Heuristic search (bestfirst, A*, IDA*).Local search (hillclimbing, simulated annealing, genetic search).Gameplaying methods (minimax search, alphabeta pruning).Constraint satisfaction (backtracking and heuristic repair).Representation of space and time. Predicate calculus and resolution. Logic programming and theorem proving. Design and development of knowledgebased systems. Knowledge representation mechanisms. Tools for knowledgebased system development. Prereq.: CMPS 347 & CMPS 345.
Elementary set theory. Propositional logic. Propositional logic reasoning using resolution. Normal forms, clauses, resolution. Firstorder/predicate logic introduction. Quantifiers, first order models, validity and satisfiability. Firstorder reasoning using unrestricted resolution. Normal forms, clauses, Skolemization. Elimination of quantifiers, unification, resolution, simplification techniques. Orderings. Wellfounded orderings, lexicographic combinations of orderings, multisets, multiset orderings, reduction orderings, lexicographic path orderings. Refutational completeness of propositional resolution. Herbrand interpretations, soundness, clause orderings, construction of candidate models, reduction of counterexamples, model existence theorem, refutational completeness, compactness of propositional logic. Refutational completeness of firstorder resolution. Horn clauses, SLD resolution. Prereq.: CMPS 445 & CMPS 248.
General concepts and applied methods of computer security, especially as they relate to confidentiality, integrity, and availability of information assets. Topics include system security analysis, access control and various security models, identification and authentication, protection against external and internal threats, communication protocols and internet security. Prereq.: CMPS 447.
Selected recent topics in computer science. Course content will vary from year to year.
Course Code 
Course Title 
Credits 
Hours Distribution 
Course Type 
CMPS325 
Computer and Society 
3 
(3Crs.:2Lec,3Lab) 
DE 
CMPS326 
Introduction to HumanComputer Interaction 
3 
(3Crs.:2Lec,3Lab) 
DE 
CMPS327 
Image Processing 
3 
(3Crs.:2 Lec,3Lab) 
DE 
CMPS348 
Compiler Construction 
3 
(3Crs.:2Lec,3Lab) 
DE 
CMPS349 
File Structures 
3 
(3Crs.:2 Lec,3Lab) 
DE 
CMPS450 
Computer Graphics 
3 
(3Crs.:2 Lec,3Lab) 
DE 
CMPS451 
Software Design and Quality 
3 
(3Crs.:2Lec,3Lab) 
DE 
CMPS452 
Introduction to Data Mining 
3 
(3Crs.:2Lec,3Lab) 
DE 
CMPS453 
Artificial Intelligence 
3 
(3Crs.:2Lec,3Lab) 
DE 
CMPS454 
Logic and Automated Reasoning 
3 
(3Crs.:2Lec,3Lab) 
DE 
CMPS455 
Computer Security 
3 
(3Crs.:2Lec,3Lab) 
DE 
CMPS456 
Topics in Computer Science 
3 
(3Crs.:2Lec,3Lab) 
DE 