Computer Science Department
Course Catalog
A-Core Courses
CS 110 Programming 1
Pre-requisite: PCOM 113
This course introduces the students to the fundamentals of logic formulation together with their implementation in the C++ programming language. It introduces students to structured, top-down programming design and implementation. This course should serve as a foundation for students in the Computer Science and information technology program.
CS120 Programming 2
Pre-requisite: CS 110
This course introduces the fundamental concepts of object oriented programming including classes, polymorphism, encapsulation and information hiding, and inheritance will be studied using the C++ programming language.
CS 210 Data Structures
Pre-requisite: CS 120
The purpose of this course is to provide the students with solid foundations in the basic concepts of programming: data structures and algorithms. The main objective of the course is to teach the students how to select and design data structures and algorithms that are appropriate for problems that they might encounter. This course is also about comparing algorithms and studying their correctness and computational complexity. This course offers the students a mixture of theoretical knowledge and practical experience using C++.
CS 240 Operating Systems
Pre-requisite: CS 210
The purpose of this course is to provide an overview of operating systems and presents theory, design, implementation, and analysis of operating systems. Emphasis will be given on process management (processes, threads, CPU scheduling, synchronization, and deadlock), memory management (segmentation, paging, swapping), file systems and storage management.
CS 270 Programming Languages
Pre-requisite: CS 120
This course describes a set of formal mathematical tools for defining and implementing the semantics of a language and demonstrates them in the context of important real-world programming languages, with emphasis on theoretical properties of type systems. Major topics include: lexical and syntax analysis, bane binding, type checking and scopes, data types, expressions, flow control, and subprograms
CS 305: Algorithm Design and Analysis
Prerequisite: CS 210
The purpose of this course is to learn several fundamental principles of algorithm design and analysis techniques. Topics include the divide-and-conquer design approaches, fast sorting, searching, and multiplication, fundamental algorithms on graphs, such as how to find shortest paths, and how to explore graph, practical algorithms on important data structures such as: binary search trees and heaps, NP-Complete problems, whose status is unknown, or no polynomial-time algorithm has been discovered to solve such kind of problems.
CS 310 Computer Graphics
Prerequisite: CS 120
This Course is designed to impart knowledge of Computer Graphics such as line and circle drawing algorithm, projection, clipping, transformation techniques of images etc. The goal of this course is to provide an introduction to the theory and practice of computer graphics. The course will assume a good background in programming in C or C++ and a background in mathematics including familiarity with the theory and use of coordinate geometry and of linear algebra such as matrix multiplication.
CS 312 Computer Organization
Pre-requisites: MATH 111 & CS 210
This course introduces the students to the basics of computer organization: the internal structure and operation of a digital computer at the level of memory, registers, flow of control, and assembly language. This course has a theoretical and a practical component: computer organization will be studied at a theoretical level, and students will have the opportunity to practice their skills by studying the assembly language for a particular Reduced Instruction Set Computer.
CS 320 Artificial Intelligence
Pre-requisite: MATH 111
This course will serve as an introduction to artificial intelligence concepts and techniques. Specific topics we will cover include the history and philosophy of AI, the agent paradigm in AI systems, search, game playing, knowledge representation and reasoning, logical reasoning, uncertain reasoning and Bayes nets, planning, and machine learning. The ultimate goal of AI is to make a computer that can learn, plan, and solve problems autonomously.
CS 330 Compilers
Pre-requisite: CS 270
In this course students will develop a deeper understanding of modern compiler techniques applied to general-purpose programming languages. It will give students a working knowledge of the foundations, tools, and engineering approaches used in developing formal language translators. Major topics include:
CS 350 Parallel and Distributed Computing
Pre-requisite: CS 312
This course covers parallel and distributed processing concepts including concurrency and its management, architectures, programming, performance evaluation, applications and models of parallel computation, and synchronous and asynchronous parallelism.
CS360 Software Engineering
Pre-requisite: CS 120
This course introduces concepts and techniques relevant to the production of large software systems. Students are taught a programming method based on the recognition and description of useful abstractions. Topics include modularity, specification, data abstraction, object modeling, design patterns, and testing. Students complete several programming projects of varying size, working individually and in groups.
CS 432 Software Modeling and Analysis
Pre-requisite: CS 360
This course presents an integrated set of techniques for software analysis and design based on object-oriented concepts and the UML notation. Topics include introduction to object concepts, fundamentals of object oriented analysis and design process, use-case analysis, object modeling using behavioral techniques, design patterns, design quality and metrics
CS 450 Information Security
Pre-requisite: IT 341
This course helps the students to learn principles of information security, need for information security, place of security and contributed parties, legal and ethical issues, information security and risk management, information security implementation, security auditing, incident response, business continuity and disaster recovery planning
IS 231 Fundamentals of Database
Prerequisite: CS 110
Effective use of Database software tools is one of the fundamental goals of this course. Training on different Database tools leads to provide students with solid knowledge and required practice on well-known tools. This course includes Database concepts and architecture; data models, database schemes and instances, structured query language (SQL); data definition, queries, update, statements, and views in SQL, database design; functional dependencies, normal forms.
IS 334 Project Management
Pre-requisite: 100 Credits
This course addresses the main issues related to software project management such as project definition, scope management, planning, organization, resources, scheduling, control, quality, cost estimation, time estimation, and, risk management. Topics include project management ethics, and effective project manager skills such as people and leadership skills. Students should get exposed to a software package used for this purpose.
IT 341 Data Transmission & Computer Networks
Prerequisite: CS 240
This course introduces students to evolution trend of computer networks. This course provides with practical knowledge and hands-on experience in transmitting data over the network. Topics include network architecture, transmission media, data encoding, error detection, MAC protocol, LAN standards, Internet Protocol (IP), Routing Algorithms, TCP and UDP and Application layer protocols.
IT 481 Ethics and Professional Practice
Pre-requisite: 100 Credits
This course will develop the ethical foundations of good professional practice in information technology. It will provide the necessary background of ethical theories and practices, and discuss the role of professional organizations in maintaining such practice, specifically in the information technology industry.
General English Courses
ENG 114 Technical English (1)
Pre-requisite: PENG 121
This course provides students with a solid foundation of basic sentence form and function. It concentrates on grammatical structures, vocabulary expressions often used in technical and professional contexts.
ENG 127 Technical English (2)
Pre-requisite: ENG 114
Building on the content of Technical English, this course is intended to provide students of Computer Sciences and IT with more advanced and specialized technical English needed for studying their major and functioning in their future careers.
B-Maths and Science Courses
MATH 107 Linear Algebra
Prerequisite: MATH 112
Linear Algebra is highly recommended for all majors of engineering. The course includes the topics: the system of linear equations and their solutions, determinate, vector space, linear transformation; eigen values and vectors.
MATH 111 Discrete Mathematics
Pre-requisite: None
The purpose of this course is to understand and use (abstract) discrete structures that are backbones of computer science. In particular, this class is meant to introduce logic, proofs, sets, relations, functions, counting, and probability, with an emphasis on applications in computer science.
MATH 112 Calculus (1)
Prerequisite: PMATH 127
This course is designed to develop the topics of differential and integral calculus. Emphasis is placed on limits, continuity, derivatives, applications of derivatives, and integrals of algebraic and transcendental functions of one variable.
MATH 126: Calculus 2
Prerequisite: MATH 112
This course introduces the students with integral and derivativities of functions of several variables. Emphasis is placed on integration techniques, series and sequence, polar and parametric coordinates, multiple integration and partial differentiation and applications of integration.
MATH 205: Differential Equations
Prerequisite: MATH - 126
This course is introducing differential equation and applications. Emphasis is placed on first order differential equation, techniques of solving the differential equations. Higher order differential equations, mathematical modelling of standard problem.
MATH 254: Numerical Methods
Prerequisite: MATH 205
This course offers an advanced introduction to numerical algorithms such as stability and convergence. Topics include Root finding for nonlinear equations, Interpolation, Numerical differentiations and Integrations, Numerical solution of differential equation, Systems of linear equations, Boundary Value Problems and Numerical optimization.
STAT 102: Probability and Statistics
Prerequisite: MATH 112
Probability and Statistics introduces the fundamental ideas and techniques of probability theory and statistical inference. The course includes the following topics: Sample Space, Probability, Random variable, discrete and continuous distributions, Sampling distribution, estimation and correlation and regression.
PHY 104 Physics (1)
Pre-requisite: PPHS 128
This course is designed to equip the skills and knowledge of fundamental principles of Physics to apply in computer science. This course cover the laws govern motion in one and two dimensions, static equilibrium, elasticity, vibration and waves and simple harmonic motion (SHMPHY125
PHY 125: Physics (2)
Pre-requisite: PHY104
The course prepares computer science students to apply Physics knowledge into practice of computer programming and its applications. This course includes electric and magnetic field, Coulomb's law, Gauss' Law, Kirchhoff's rules, resonance in LCR circuit and Electromagnetic waves
GE 107: GENARAL CHEMISTRY
Prerequisite: N/A
The course in Computer Science helps to acquire knowledge in manufacturers design, characterize new compounds and understand fundamental properties of atoms, molecules, and chemical reactions. The course topics include physical and chemical properties of matter, photoelectric effect, Bohr’s theory of the Hydrogen Atom, periodic table, electrochemistry and Chemistry in the atmosphere.
PROFESSIONAL ELECTIVE COURSES
PROFESSIONAL ELECTIVE I
Prerequisite: CS 110+Advisor approval
IT 250 Information technology and fundamental of networking
This course introduces the architecture, structure, functions, components, and models of the computer networks. The principles and structure of IP addressing and the fundamentals of Ethernet concepts, media, and operations are introduced to provide a foundation for Network. Routing and Switching.
IT 251 Java Fundamental
This course is an introduction to object-oriented programming using the Java language. This course focuses on Java programming language constructs to create several Java technology applications.
IT 252 Configuring and administrating Window Server
This course focuses on real skills for real jobs and prepares students to prove mastery of core services such as Active Directory and networking services.
IT 482 IT Service Management
This course focuses on Foundations in IT services, governance, and ITIL Availability management, Smart Cloud Application Performance Management, Software Quality Management and Automated Testing using IBM Rational tools.
PROFESSIONAL ELECTIVE II
Prerequisite: 100 cr.
IT 470 CCNA Routing and Switching
This course describes the architecture, components, and operations of routers and switches in larger and more complex networks. Also discusses the WAN technologies and network services required by converged applications in a complex network and enables students to understand the selection criteria of network devices and WAN technologies to meet network requirements.
IT 474 Database Design & Programming with SQL
This course focus to analyze complex business scenarios and create a data model—a conceptual representation of an organization’s information. Students implement their database design by creating a physical database using SQL. Basic SQL syntax and the rules for constructing valid SQL statements are reviewed.
IT 477 Web Development
This course focuses on basic skills of creating basic and interactive web pages. It also covers the fundamentals of Client-Side Scripting and Ajax Concepts as well as handling debugging and errors. Skills such as configuring and deploying web applications are also covered.
PROFESSIONAL ELECTIVE II
Prerequisite: 100 cr.
IT 471 CCNA Security
This Course covers the core security concepts and validates the knowledge needed to install, troubleshoot, and monitor Cisco network security devices; develop a security infrastructure; recognize network vulnerabilities; and mitigate security threats, and troubleshoot converged local and wide area networks, and manage routers, switches and edge applications that integrate voice, wireless, and security into the network.
IT 475 Programming with PL/SQL
This course focuses on Program with PL/SQL write PL/SQL code, Oracle’s procedural extension language for SQL and the Oracle relational database. Automate SQL to administer the Oracle database. This course culminates with a project that challenges students to program, implement, and demonstrate a database solution for a business or organization.
IT 478 Mobile Development
This Course validate fundamental technology concepts with a foundation for students' careers as well as the confidence they need to succeed in advanced studies. It also covers such valuable skills such Mobile App Development Environment.
IT 483 Business Intelligence
This course focuses on Business Intelligence (BI) and Financial Performance Management (FPM), topics includes Business intelligence, constraint programming, Predictive and advanced analytics. Turning Data into Insights and Big Data and Analytics.
C-Advanced Courses
TRACK COURSES
Track 1-Software Engineering Track
CS 430 Design and Architecture of Large Software Systems
Pre-requisite: CS 360
This course presents principles of problem analysis and solution design as applied to the development life cycle of a software system. In addition, this course will explore methods for understanding and debugging existing software systems.
CS 431 Low-Level Design of Software
Pre-requisite: CS 360
This course is designed to teach the disciplined process of software development, from formal specification through to working systems. Topics include Fundamentals of Software Design-Principles and Rules, Software Design-Practices, Program Style, Structure and Selection of Data Structures.
CS 433 Software Project Management
Pre-requisite: CS 360
This course addresses the main issues related to software project management such as project definition, scope management, planning, organization, resources, scheduling, control, quality, cost estimation, time estimation, and, risk management. Students are also introduced to project management tools such as Work Breakdown Structure, Gantt charts, PERT, and the critical path method.
CS 434 Software Evolution (Maintenance)
Pre-requisite: CS 360
This course introduces the concept of software as an evolving and complex entity. Deliver knowledge about technical and business issues connected to legacy systems. Topics include Relationships between evolving entities, Models of software evolution, Working with Legacy Systems etc.
CS 435 Software Architectures
Pre-requisite: CS 360
This course introduces basic concepts and principles about software architecture. It starts with an overview of architectural structures and styles. Practical approaches and methods for creating and analyzing software architecture are presented. The emphasis is on the interaction between quality attributes and software architecture.
Track 2- Computer Security Track
CS 440 Coding and Information Theory
Pre-requisite: IT 341
The aims of this course are to introduce the principles and applications of information theory & Coding. The course will study how information is measured in terms of probability and entropy, and the relationships among conditional and joint entropies; how these are used to calculate the capacity of a communication channel, with and without noise; coding schemes, including error correcting codes; Rate distortion theory which provides the theoretical foundations for lossy data compression and Network information theory considers the information carrying capacity of a network.
CS 441 Security Management
Pre-requisite: IT 341
This course will cover a variety of topics that will prepare students who wish to develop skills in information security management. It is a survey course that will cover a full range of information security topics, ranging from technical areas like cryptology and network security to a policy area like risk management. Technical subjects will be explored as well as other less technical topic areas where managers are required to lead an information security group and make sound business decisions surrounding information systems and security.
CS 442 Computer Security
Pre-requisite: IT 341
This course will cover computer security including cryptography, network security, application security, and web security. Traditional topics such as buffer overflows, intrusion detection, packet analysis, and malware will be discussed. Topics also include privacy, incident handling, forensics and anti-forensics, legal issues, politics, and security in emerging technologies.
CS 443 Formal Method for Cryptography
Pre-requisite: IT 341
The aim of this course is to facilitate understanding of the inherent strengths and limitations of cryptography, especially when used as a tool for information security. Armed with this knowledge, one should be able to make more informed decisions when building secure systems. The course covers various aspects of symmetric and asymmetric cryptography, authentication, system as well as application level security mechanisms.
CS 444 Internet Security, tools & techniques
Pre-requisite: IT 341
This course aims to introduce security issues arising primarily from computer networks. Topics include node and service authentication, address spoofing, hijacking, SYN floods, smurfing, sniffing, routing tricks, and privacy of data en route. Buffer overruns and other exploitation of software development errors. Hardening of operating systems. Intrusion detection. Firewalls. Ethics.
CS 445 Network Management and Security
Pre-requisite: IT 341
This course aims to introduce NSM standards, technologies, tools, industry best practices, and case studies, NSM areas that can be automated through expert systems, current issues, and future trends to adapt to emerging and evolving Internet technologies. Specific Internet and telecommunications standards discussed in depth, including SNMPv1, SNMPv2, SNMPv3, RMON.
Graduation Project (CS 498 & CS 499)
The Graduation Project (GP) provides the opportunity to the students to showcase the talents through their learned skills and practices. The project is mandatory for all the students enrolled in the programmes. As such, students should regard their graduate projects as an ideal opportunity to implement the concept learned in most of the courses and gain hand on experience. The GP is carried over in the last two semesters (9th and 10th semesters), called Semester 1 and Semester 2 (Graduation Project 1 (CS 498) and Graduation Project 2(CS 499). Both semesters will be graded independently according to the work carried out in each semester. Work assessed will include deliverables submitted and final presentation. The general purpose of Graduation Project 1 is for the students to give a presentation showing their project proposal including management plan, feasibility study, requirement document. At the end of their Graduation Project 2, the students are evaluated on their presentation of the final project deliverables and a project report.