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.