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:
Outcome (1): Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions.
Outcome (2): Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline.
Outcome (3): Communicate effectively in a variety of professional contexts.
Outcome (4): Recognize professional responsibilities and make informed judgments in computing practice, taking into account legal, ethical, diversity, equity, inclusion, and accessibility principles consistent with the mission of the institution.
Outcome (5): Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline.
Outcome (6): Apply computer science theory and software development fundamentals to produce computing-based solutions
Accreditation
The Computer Science Program (Debbieh campus) in the Faculty of Science is accredited by the Computing Accreditation Commission (CAC) of ABET, which is the board assigned for accrediting computing programs in the United States of America and internationally.
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 Yassine El-Zaart, Prof. Toufic Anis El Arwadi
Associate Professors: Dr. Noura Mohammad Yassin, Dr. Abdullah al-Chakik, Dr. Maher Jneid
Assistant Professors: Dr. May AbdelHafiz Itani, Dr. Lama Ahmad Affara, Dr. Julie Imad Bou Daher, Dr. Mahmoud Ahmad Al Skafi, Dr. Layal Imad Abou Daher, Dr. Bilal Ezzedine Nakhal, Dr. Mohammad AlSaleh, Dr. Majdi Hamza Awad, Dr. Mohammad Ahmad Daher, Dr. Nader Yasser Bakir, Dr. Rabih Kamal Damaj
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.
The Software Development track: creating and design pioneering applications and systems, shaping the digital future.
The Cybersecurity track: safeguarding critical information and system infrastructure from evolving threats.
The Artificial Intelligence and Data Science track: analyzing and interpreting complex data and developing intelligent systems that unlock insights that boost decision-making in various industries.
Program Overview:
The undergraduate curriculum for the degree of Bachelor of Science in Computer Science consists of 100 credit hours of course work, where the standard duration of study is six semesters. Upon completing the university and program requirements, students graduating from the program may attain a general computer science degree or a computer science degree with a track specialization as per below.
- Computer Science
Software Development Track
- Computer Science
Cybersecurity Track
- Computer Science
Artificial Intelligence and Data Science Track
Computer Science Program |
I. University Requirements* |
Credits |
University Mandatory Courses |
5 |
University Elective Courses |
11 |
II. Program Requirements |
Credits |
Faculty Core Courses |
17 |
Major Core Courses |
53 |
Departmental Elective Courses** |
9 |
General Science Electives (MATH, PHYS, CHEM)
|
5 |
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 and 3 credits from other lists of the university elective courses + IC3 (Internet and Computing Core Certified).
** Students who want to graduate under a specific track must take all the Departmental electives from the desired track, otherwise they may freely select the Departmental electives.
Faculty Core Courses:
Courses |
Crs. |
Pre-Co/requisites |
MATH |
241 |
Calculus and Analytical Geometry |
3 |
|
CHEM | 241 | Principles of Chemistry | 3 |
|
CHEM | 241L | Principles of Chemistry Laboratory | 1 | Co-requisite: CHEM241 |
PHYS | 243 | General Physics | 3 |
|
PHYS | 243L | General Physics Laboratory | 1 | Co-requisite: PHYS243 |
CMPS | 241 | Introduction to Programming | 3 |
|
MATH | 242 | Probability and Statistics | 3 |
|
Courses | Crs. | Pre-Co/requisites |
CMPS | 242 | Object Oriented Programming | 3 | Pre-requiiste: CMPS 241 |
CMPS | 244 | Digital Circuits | 3 |
|
CMPS | 246 | Web Programming | 3 | Pre-requiiste: CMPS 241 |
CMPS | 248 | Discrete Structures I | 3 | Pre-requiiste: CMPS 241 |
CMPS | 347 | Data Structures | 3 | Pre-requiiste: CMPS 242 |
CMPS | 343 | Computer Organization & Architecture | 3 | Pre-requiiste: CMPS 244 |
CMPS | 345 | Discrete Structures II | 3 | Pre-requiiste: CMPS 248 |
MATH | 341 | Linear Algebra | 3 |
|
CMPS | 342 | Database Systems | 3 | Pre-requisite: CMPS 242 |
CMPS |
344 |
Software Engineering |
3 |
Pre-requisite: CMPS 242 |
CMPS |
346 |
Theory of Computation |
3 |
Pre-requisite: CMPS 248 |
MATH |
348 |
Numerical Methods |
3 |
Pre-requisite: MATH 241 |
CMPS |
441 |
Fundamentals of Algorithms |
3 |
Pre-requisite: CMPS 347 & CMPS 345 |
CMPS |
445 |
Concepts of Programming Languages |
3 |
Pre-requisite: CMPS 347 |
CMPS |
447 |
Computer Networks |
3 |
Pre-requisite: CMPS 347 |
CMPS |
443 |
Senior Project I |
1 |
|
CMPS |
442 |
Operating Systems |
3 |
Pre-requisite: CMPS 347 |
CMPS |
444 |
Senior Project II |
3 |
Pre-requisite: CMPS 443 |
CMPS |
455 |
Computer Security |
3 |
Pre-requisite: CMPS 447 |
Tracks
The Computer Science program provides a track option. Students must complete all major core courses included in the study plan and choose three elective courses from one declared track. All track core courses are major core courses included in the study plan of computer science program.
- Software Development
- Cybersecurity
- Artificial Intelligence and Data Science
Students not joining a track can freely select their Departmental elective courses.
Computer Science:
The Faculty of Science in Computer Science offers the Bachelor of Science after completing all university requirements, faculty requirements, general science electives, and major core courses, in addition to 3 of the offered departmental electives.
Students not joining a track can freely select their Departmental elective courses.
Track 1: Software Development:
A student has to choose 9 credits out of the following list of Departmental Elective courses:
Departmental Elective Courses |
Credits |
Pre-co/requisites |
CMPS |
326 |
Introduction to Human-Computer Interaction |
3 |
|
CMPS |
352 |
Mobile App Development |
3 |
Pre-req: CMPS342 |
CMPS |
461 |
Advanced Web Development |
3 |
Pre-req: CMPS246 & CMPS342 |
CMPS |
463 |
Game Design & Development |
3 |
Pre-req: CMPS347 |
CMPS |
462 |
Distributed Systems |
3 |
Pre-req: CMPS447 |
CMPS |
464 |
Competitive Programming |
3 |
Pre-req: CMPS441 |
Track 2: Cybersecurity:
A student has to choose 9 credits out of the following list of Departmental Elective courses:
Departmental Elective Courses |
Crs. |
Pre-co/requisites |
CMPS |
325 |
Computer and Society |
3 |
None |
CMPS |
354 |
Machine Learning for Cybersecurity |
3 |
Pre-req: MATH242, CMPS347 |
CMPS |
465 |
Cloud and Edge Computing |
3 |
Pre-req: CMPS447 |
CMPS |
467 |
Internet of Things |
3 |
Pre-req: CMPS447 |
CMPS |
466 |
Blockchain |
3 |
Pre-req: CMPS455 |
CMPS |
468 |
Malware Analysis and Reverse Engineering |
3 |
Pre-req: CMPS343, CMPS455 |
Track 3: Artificial Intelligence and Data Science:
A student has to choose 9 credits out of the following list of Departmental Elective courses:
Departmental Elective Courses |
Crs. |
Pre-co/requisites |
CMPS |
452 |
Introduction to Data Mining |
3 |
Pre-req: CMPS342 & MATH242 |
CMPS |
453 |
Artificial Intelligence |
3 |
Pre-req: CMPS347 & CMPS345 |
CMPS |
356 |
Introduction to Data Science |
3 |
Pre-req: MATH242 |
CMPS |
469 |
Big Data and Data Analytics |
3 |
Pre-req: MATH242 & CMPS342 |
CMPS |
470 |
Deep Learning |
3 |
Pre-req: CMPS347 |
CMPS |
472 |
Applied Artificial Intelligence |
3 |
Pre-req: CMPS347 & CMPS342 |
Student Enrollment History:
Academic Years |
2013/2014: 54 |
2014/2015: 66 |
2015/2016: 65 |
2016/2017: 78 |
2017/2018: 82 |
2018/2019: 127 |
2019/2020: 172 |
2020/2021: 259 |
2021/2022: 531 |
Student Graduation History:
Academic Years |
2013/2014: 20 |
2014/2015: 13 |
2015/2016: 15 |
2016/2017: 22 |
2017/2018: 16 |
2018/2019: 19 |
2019/2020: 34 |
2020/2021: 41 |
2021/2022: 62 |
Study Plan:
Course Code |
Course Title |
Credits |
Hours Distribution |
Course Type |
First Semester |
CHEM241 |
Principles of Chemistry |
3 |
(3Crs.:3Lec) |
FC |
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, ionic equilibria, and nuclear chemistry.
CHEM241L |
Principles of Chemistry Laboratory |
1 |
(1Cr.:3Lab) |
FC |
Selected experiments illustrate the topics discussed in CHEM 241. Co-req.: CHEM 241.
CMPS241 |
Introduction to Programming |
3 |
(3Crs.:2 Lec.,2Lab) |
FC |
This course consists of an Introduction to computer hardware and software. Binary system and data representation. The software life-cycle. Flow charts and IPO-charts. 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. * The practical part of this course, provided by the department of Mathematics and Computer Science, will be adjusted accordingly for the group of Biology/Biochemistry students enrolled in the Computational Biology track. The labs will provide direct application to biomedical informatics systems.
MATH241 |
Calculus and Analytical Geometry |
3 |
(3 Cr.: 3Lec.,0 Tut., 0 Lab.) |
FC |
Transcendental functions, Techniques of integration, Improper integrals, Conic sections, Sequences and series, Power series, Taylor and Maclaurin series
Pre-requisite: none.
PHYS243 |
General Physics |
3 |
(3Crs.:3Lec) |
FC |
Physics and measurement: standards of length, mass, and time; Non-viscous 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.
PHYS243L |
General Physics Laboratory |
1 |
(1Cr.:3Lab) |
FC |
Experimental work related to the topics, discussed in PHYS 243. Co-req.: PHYS 243.
------- |
University Requirements |
2 |
(2crs.) |
CUR |
Second Semester |
CMPS242 |
Object Oriented Programming |
3 |
(3Crs.:2Lec,3Lab) |
MJC |
This course focuses on 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 and information hiding, message passing, methods overloading and overriding, classes relationships (aggregation, composition), inheritance, polymorphism, abstract classes, interfaces, Exception handling, Files. Pre-Req: CMPS241. * The practical part of this course, provided by the department of Mathematics and Computer Science, will be adjusted accordingly for the group of Biology/Biochemistry students enrolled in the Computational Biology track. Topics covered in this course laboratory include: the programming environment, object-oriented approaches to program design and development, object concepts and class design, testing, inheritence and polymorphism, and exceptions
CMPS244 |
Digital Circuits |
3 |
(3Crs.:2 Lec,3Lab) |
MJC |
An introduction to digital electronics, integrated circuits, numbering systems, Boolean algebra, gates, flip-flops, multiplexers, sequential circuits, combinational circuits, and computer architecture. Introduction to hardware description language and programmable logic devices.
CMPS248 |
Discrete Structures I |
3 |
(3Crs.: 2Lec, 3Lab) |
MJC |
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. Pre-req.: CMPS 241.
MATH242 |
Probability and Statistics |
3 |
(3 Crs.: 3 Lec.,0 Tut., 2 Lab.) |
FC |
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.
Pre-requisite: none.
------- |
Elective (University) |
3 |
(2crs.) |
CUR |
------- |
University Requirements |
3 |
(2crs.) |
CUR |
Third Semester |
CMPS246 |
Web Programming |
3 |
(3Crs.:2 Lec,3Lab): |
MJC |
The course covers different techniques and technologies for developing dynamic web sites. Topics include introduction to internet infrastructure, PHP as the server-side 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. Pre-req.: CMPS 241.
CMPS342 |
Database Systems |
3 |
(3Crs.:2Lec,3Lab) |
MJC |
Data models and database systems architectures. Conceptual data modeling using entity-relationship diagrams (ERD and Enhanced ERD). The relational database models. 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. Pre-req.: CBIO 301 and CMPS 242. * The practical part of this course, provided by the department of Mathematics and Computer Science, will be adjusted accordingly for the group of Biology/Biochemistry students enrolled in the Computational Biology track. Students will devise efficient solutions to real-world data management problems on realistic data sets. Performance tuning of relational databases, querying graph-structured databases, querying streaming databases, indexing high-dimensional data, managing uncertainty in databases, information retrieval in databases, and implementation of database internals. Students will use an open-source database management system and a programming language API
CMPS345 |
Discrete Structures II |
3 |
(3Crs.:2Lec,3Lab) |
MJC |
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. Pre-req.: CMPS 248.
CMPS347 |
Data Structures |
3 |
(3Crs.:2Lec,3Lab) |
MJC |
Fundamental concepts of data structures. Performance measurement of algorithms. Specification, representation and implementation of linear and non-linear data structures: arrays, lists, stacks, queues, priority queues, trees, heaps, hash tables and graphs. Pre-req.: CMPS 242.
MATH341 |
Linear Algebra |
3 |
(3 Crs.: 3 Lec.,0 Tut., 1 Lab.) |
MJC |
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, rank-nullity, brief discussion on inner product, projections, orthonormal bases, eigenvalues, eigenvectors,diagonalization. .
Pre-requisite:none.
------- |
University Requirements |
2 |
(2crs.) |
CUR |
Fourth Semester |
CMPS344 |
Software Engineering |
3 |
(3Crs.:2Lec,3Lab) |
MJC |
Different phases of large-scale 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. Pre-req.: CMPS 242.
CMPS346 |
Theory of Computation |
3 |
(3Crs.:2 Lec,2 Tut) |
MJC |
This course is an introduction to the fundamental models of computation used throughout computer science. Topics include deterministic finite automata (DFA), regular languages, non-deterministic 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 NP-Completeness. Pre-req.: CMPS 248.
CMPS447 |
Computer Networks |
3 |
(3Crs.:2Lec,3Lab) |
MJC |
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. Pre-req.: CMPS 347
MATH348 |
Numerical Methods |
3 |
(3 Crs.: 2Lec.,0 Tut., 2 Lab.) |
MJC |
The course aims to provide 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. Pre-requisite:MATH 241
------- |
University Requirements |
2 |
(2crs.) |
CUR |
------- |
Elective (Departmental) |
3 |
(3crs.) |
DE |
Fifth Semester |
CMPS441 |
Fundamentals of Algorithms |
3 |
(3Crs.:2 Lec,3Lab) |
MJC |
A systematic study of algorithms and their complexity. Topics include techniques for designing efficient computer algorithms, proving their correctness, analyzing their run-time 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). Pre-req.: CMPS 347 & CMPS 345
CMPS443 |
Senior Project I |
1 |
(1Cr.:1Lec,0Lab) |
MJC |
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.
CMPS445 |
Concepts of Programming Languages |
3 |
(3Crs.:2Lec,3Lab) |
MJC |
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 object-oriented programming languages. This course includes a team project to learn a novel programming language and use it in implementing an application. Pre-req.: CMPS 347.
CMPS455 |
Computer Security |
3 |
(3Crs.:2Lec,3Lab) |
MJC |
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. Pre-req.: CMPS 447.
------- |
General Science Electives (MATH, PHYS, CHEM)
Elective (General Science) |
3 |
(4crs.) |
GSE |
------- |
Elective (Departmental) |
3 |
(3Crs.:2 Lec,3Lab) |
DE |
Sixth Semester |
CMPS343 |
Computer Organization & Architecture |
3 |
(3Crs.:2Lec,3Lab) |
MJC |
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 multi-cycle implementation, Control Unit Design, Pipelining, cache design. Pre-req.: CMPS 244.
CMPS442 |
Operating Systems |
3 |
(3Crs.:2 Lec,3Lab) |
MJC |
Operating systems concepts and functions. Operating systems structures and system Calls. Processes and threads scheduling. Inter-process 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. Pre-req.: CMPS 347
CMPS444 |
Senior Project II |
1 |
(1Cr.:1Lec,0Lab) |
MJC |
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. Pre-req.: CMPS 443
------- |
University Requirements |
4 |
(4crs.) |
CUR |
------- |
Elective (Departmental) |
3 |
(3crs.) |
DE |
------- |
General Science Electives (MATH, PHYS, CHEM)
Elective (General Science) |
2 |
(4crs.) |
GSE |
Departmental Elective(DE)
Course Code |
Course Title |
Credits |
Hours Distribution |
Course Type |
CMPS325 |
Computer and Society |
3 |
(3Crs.:2Lec,3Lab) |
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.
CMPS326 |
Introduction to Human-Computer Interaction |
3 |
(3Crs.:2Lec,3Lab) |
DE |
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, form-fill-in, 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. Pre-req.: CMPS 242.
CMPS327 |
Image Processing |
3 |
(3Crs.:2 Lec,3Lab) |
DE |
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. Pre-req.: CMPS 242.
CMPS348 |
Compiler Construction |
3 |
(3Crs.:2Lec,3Lab) |
DE |
Compiler functions. Language elements. BNF grammars, regular expressions. Finite state machines. Lexical analyzers. Context free grammars. Grammar ambiguity problem. Parse trees. Parsing methods (Top-down, recursive descent, LL, LR). Symbol table construction. Code generation. Code optimization techniques. Pre-req.: CMPS 347.
CMPS349 |
File Structures |
3 |
(3Crs.:2 Lec,3Lab) |
DE |
Language essentials for file processing. Access methods, processing algorithms; I/O devices; sequential files, indexed and tree structured files (B-Trees), Hashed files. Pre-req.: CMPS 347.
CMPS352 |
Mobile App Development |
3 |
(3Crs.:2 Lec,3Lab) |
DE |
This course will explore the development of cross-platform mobile web applications using various frameworks that can be converted to native applications for different mobile operating systems. The course focuses on the design of mobile device user interfaces, access to mobile device APIs (including accelerometers, PS, compass, or cameras) and power management problems. Furthermore, the students will learn about system integration of web and mobile systems, software development, and management principles. Pre-req.: CMPS342
CMPS354 |
Applied Machine Learning for Cybersecurity |
3 |
(3Crs.:2Lec,3Lab) |
DE |
This course is an advanced-level course that focuses on the application of machine learning techniques in the field of cybersecurity. Students will explore the fundamental principles of machine learning and its relevance to cybersecurity. They will learn about different types of cyber threats, such as malware, attempted intrusion, phishing and data breaches, and will understand how machine learning can be used for data protection and threat mitigation. Pre-req.: MATH242 & CMPS347
CMPS356 |
Introduction to Data Science |
3 |
(3Crs.:2Lec,3Lab) |
DE |
This course provides students with a comprehensive introduction to the dynamic and rapidly evolving field of data science. Through a combination of theoretical lectures, hands-on exercises, and practical applications, students will gain a foundational understanding of key concepts and methodologies essential for working with data effectively. Topics include: data acquisition, data pre-processing, data preparation, feature extraction, data analysis, pattern recognition, data visualization, and data ethics and privacy.. Pre-req.: MATH242.
CMPS450 |
Computer Graphics |
3 |
(3Crs.:2 Lec,3Lab) |
DE |
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. Half-toning. 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. Z-buffer 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 anti-aliasing. Parametric polynomial curves and surfaces. Implicit curves and surfaces. Bézier curves and surfaces, control points, de Casteljau algorithm. B-spline curves and surfaces, local editing, knots, control points. NURBS curves and surfaces. Constructive Solid Geometry (CSG) for solid modeling. Boundary Representation of solids (B-Rep). Pre-req.: CMPS 347.
CMPS451 |
Software Design and Quality |
3 |
(3Crs.:2Lec,3Lab) |
DE |
Critical aspects of the software lifecycle, Quality of software system, Techniques and approaches to software design, quality and reliability, Domain Engineering and Software Reuse. Pre-req.: CMPS 344.
CMPS452 |
Introduction to Data Mining |
3 |
(3Crs.:2Lec,3Lab) |
DE |
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. Pre-req.: CMPS 342 & Math 250. * The practical part of this course, provided by the department of Mathematics and Computer Science, will be adjusted accordingly for the group of Biology/Biochemistry students enrolled in the Computational Biology track. The laboratory part features an introduction to popular data mining problems and algorithms, reaching from classification to clustering. Based on these techniques, we examine how these algorithms can be used to study gene expression, protein function or the structure of biological networks.
CMPS453 |
Artificial Intelligence |
3 |
(3Crs.:2Lec,3Lab) |
DE |
Definitions of intelligent systems. Optimality vs. speed tradeoff. Problem spaces. Brute-force search (DFS, BFS, uniform cost search). Heuristic search (best-first, A*, IDA*).Local search (hill-climbing, simulated annealing, genetic search).Game-playing methods (minimax search, alpha-beta 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 knowledge-based systems. Knowledge representation mechanisms. Tools for knowledge-based system development. Pre-req.: CMPS 347 & CMPS 345.
CMPS454 |
Logic and Automated Reasoning |
3 |
(3Crs.:2Lec,3Lab) |
DE |
Elementary set theory. Propositional logic. Propositional logic reasoning using resolution. Normal forms, clauses, resolution. First-order/predicate logic introduction. Quantifiers, first order models, validity and satisfiability. First-order reasoning using unrestricted resolution. Normal forms, clauses, Skolemization. Elimination of quantifiers, unification, resolution, simplification techniques. Orderings. Well-founded orderings, lexicographic combinations of orderings, multi-sets, multi-set orderings, reduction orderings, lexicographic path orderings. Refutational completeness of propositional resolution. Herbrand interpretations, soundness, clause orderings, construction of candidate models, reduction of counter-examples, model existence theorem, refutational completeness, compactness of propositional logic. Refutational completeness of first-order resolution. Horn clauses, SLD resolution. Pre-req.: CMPS 445 & CMPS 248
CMPS456 |
Topics in Computer Science |
3 |
(3Crs.:2Lec,3Lab) |
DE |
Selected recent topics in computer science. Course content will vary from year to year.
CMPS461 |
Advanced Web Development |
3 |
(3Crs.:2 Lec,3Lab) |
DE |
This course focuses on the integration of client-side and server-side programming and explores advanced concepts of web programming in depth. Students explore topics such as JavaScript, NodeJS, React, design models, databases (both relational and non-relational), web security, web services, cloud deployment, and scalability and performance considerations. The course emphasizes on practical experience to ensure the practical application of the concepts learned. During the course, students will develop expertise in software development and management, with particular emphasis on web systems. Pre-req.: CMPS246 & CMPS342
CMPS462 |
Distributed Systems |
3 |
(3Crs.:2 Lec,3Lab) |
DE |
This course introduces integrated systems. The topics covered include distributed systems, distributed systems models, network architectures, protocols, process-to-process communication, client-server models, group communication, TCP sockets, remote procedure calls, distributed objects, remote initiation, distributed file systems, file service architectures, name services, directory and discovery services, distributed synchronization and coordination, and distributed multimedia systems. Pre-req.: CMPS447
CMPS463 |
Game Design and Development |
3 |
(3Crs.:2 Lec,3Lab) |
DE |
This course focuses on the integration of client-side and server-side programming and explores advanced concepts of web programming in depth. Students explore topics such as front-end and back-end frameworks, design models, relational and non-relational databases, web security, web services, cloud deployment, and scalability and performance considerations. The course emphasizes practical experience to ensure the practical application of the concepts learned. During the course, students will develop expertise in software development and management, with emphasis on web systems. Pre-req.: CMPS347
CMPS464 |
Competitive Programming |
3 |
(3Crs.:2 Lec,3Lab) |
DE |
This course will give students the necessary techniques and skills to solve problems within a competitive problem-solving environment using algorithmic and AI concepts. The topics covered include strategies for addressing and solving complex computational problems, functional programming, basic mathematical problem solving, competitive and dynamic programming, combinatorial games, graphics algorithms, network flow problems, computational geometry, and string algorithms. Additionally, students will have the opportunity to explore how AI methodologies can be applied to enhance their problem-solving capabilities in the realm of competitive programming. Pre-req.: CMPS441
CMPS465 |
Cloud and Edge Computing |
3 |
(3Crs.:2Lec,3Lab) |
DE |
This course provides students with a comprehensive understanding of the security challenges and considerations specific to cloud and edge computing environments. The course explores the fundamental concepts, architectures, and technologies associated with cloud and edge computing paradigms. It also focuses on related cybersecurity aspects. Pre-req.: CMPS447
CMPS466 |
Blockchain |
3 |
(3Crs.:2Lec,3Lab) |
DE |
Blockchain technology is transforming the digital landscape across various industries, emerging as a dynamic and rapidly expanding field. This course elucidates the technology's structure, ensuring learners acquire a comprehensive understanding of blockchain fundamentals. Simultaneously, the course is crafted to propel learners to the forefront by elucidating the abstract nature of blockchain technology and underscoring its extensive applicability. The course encompasses essential aspects such as the mathematical and cryptographic foundations, mining, consensus protocols, networking, and decentralized governance. Specific topics covered through the course will encompass initiation and the abstractions/applications of blockchain, hash functions, cryptographic and mathematical principles, blockchain transactions, mining, consensus mechanisms, peer-to-peer networks, and governance. Moreover, technologies explored in the course will include Hyperledger Fabric, Solidity, and Ethereum. Pre-req.: CMPS455
CMPS467 |
Internet of Things |
3 |
(3Crs.:2Lec,3Lab) |
DE |
This course is designed to offer a theoretical framework, comprehensive knowledge, and hands-on skills in the design of IoT platforms and systems. It emphasizes gaining insights into the global perspective of IoT, comprehending its various applications, assessing market dynamics, utilizing gateways, devices, and data management. The focus extends to constructing cutting-edge IoT architectures for applications in automation and addressing real-time challenges. Additionally, the course covers the essential concepts of IoT privacy and security to ensure a secure environment for IoT operations including component and connection security. Pre-req.: CMPS447
CMPS468 |
Malware Analysis and Reverse Engineering |
3 |
(3Crs.:2Lec,3Lab) |
DE |
Malware Analysis course is an advanced course that focuses on in-depth analysis of malicious software, including binary software vulnerability detection, malware analysis techniques and explorations of recent research and unresolved software protection and law enforcement problems. The course aims to provide students with an in-depth understanding of malware analysis methods and tools used in the field. During the course, students will explore advanced approaches to identifying binary software vulnerabilities and analyzing malicious software. They will learn how to examine and understand the internal workings of malware, including its functionality, behavior, and the impact on compromised systems. Students will also gain a better understanding of recent research and challenges in software and organizational security. Pre-req.: CMPS343 & CMPS455
CMPS469 |
Big Data and Data Analytics |
3 |
(3Crs.:2Lec,3Lab) |
DE |
This comprehensive course provides an in-depth exploration of fundamental concepts, techniques, and applications in data analytics and big data analysis within computer science. Students will develop practical skills in collecting, analyzing, and interpreting data to extract meaningful information and support decision-making processes. The course covers a diverse topic, including data preprocessing, exploratory data analysis, statistical analysis, data visualization, predictive modeling, as well as the study of big data analysis and its significance in modern computing. Students will also learn the techniques and technologies used to process, analyze, and extract information from large and complex datasets. By the end of the course, students will have a comprehensive understanding of data analytics, big data analysis, and their applications in various disciplines. Pre-req.: MATH242 & CMPS342.
CMPS470 |
Deep Learning |
3 |
(3Crs.:2Lec,3Lab) |
DE |
This course aims to provide the students with a solid understanding of the foundations of deep learning. Students will learn the basics of constructing neural networks and effectively managing machine learning projects. The course will encompass various deep neural networks such as convolutional neural networks (CNNs), recurrent neural networks (RNNs), long short-term memory (LSTM), and Generative Adverserial Networks (GANs). Students will also learn hyperparameter tuning, regularization methods, normalization techniques and initialization methods. Pre-req.: CMPS347.
CMPS472 |
Applied Artificial Intelligence |
3 |
(3Crs.:2Lec,3Lab) |
DE |
This course introduces students to the fundamental concepts and latest applications of Artificial Intelligence (AI). Students will explore and apply algorithms and techniques used in AI and machine learning within applications including machine vision, speech recognition, reinforcement learning, Semantic web and reasoning, and Natural Language Processing (NLP), exploring their real-world implementations across different domains. Pre-req.: CMPS347 & CMPS342.