Mathematics & Basic Sciences

Culculus II

This course is an introductory course in integration. The aim of this course is to understand the difference between the definite and indefinite integrals. The course will present the concept of Multiple integral, line integral and different types of coordinates. Finally, the course will introduce some real-life application related to integration.


Logic Design

This course is to familiarize the student with fundamental principles of digital design. It provides coverage of classical hardware design for both combinational and sequential logic circuits. The course is supported by a digital logic design laboratory.

CSCI 212

Introduction to IoT

The course will describe common Internet of Things (IoT) basics, the technology used to build these kinds of devices, how they communicate, how they store data, and the kinds of distributed systems needed to support them. Divided into four modules, students will learn by doing. They will learn how the client will run in an emulated ARM environment, communicating using common IoT protocols with a


System Analysis and Design

The course introduces the major alternative methodologies used in developing information systems. Students should learn how to analyze the business needs for information and to develop an appropriate strategy to provide the required information service. In this course, students learn how to use various information gathering techniques for eliciting user information requirements and system


Programming Numerical Methods

This course integrates the knowledge of mathematics in general and Calculus in particular with programming. Students are able to develop the code that solve a problem numerically, test it and know the precision limitations of digital systems and how to deal with it.


Undergraduate Program of Artificial Intelligence (AI)

This course aims to introduce the design and implementation of intelligent computer systems. It allows student to understand the importance of AI and its related fields. The course enables students to know different knowledge representation techniques. At the end of the course, students should master different search and control strategies.


Machine Learning

This course aims to provide students with an in-depth introduction to two main areas of Machine Learning: supervised and unsupervised. The course covers some of the main models and algorithms for regression, classification, and clustering. Topics will include linear and logistic regression, regularization, Maximum Likelihood Estimation (MLE), probabilistic (Bayesian) inference, Support Vector


Artificial Neural Networks

This course will cover basics of neural network architectures both feedforward and feedback. Learning algorithms for each architecture will be discussed along with convergence analysis. Simple examples through MATLAB simulations will be demonstrated. Students will be given regular home assignments. There will be test on both MATLAB assignments as well as course contents. Students can study other


Optimization techniques

To introduce students to the basics of optimization techniques including the necessary mathematical background. The course will focus on both convex and non-convex optimization.


Data Mining and Statistical Analysis

The course focuses on the Proper management and analysis that are needed to utilize the huge amounts of data coming from different sources that are the foundation for appropriate decision making within any organization. The course presents the special knowledge and skills need to accomplish this challenge. The course give the students the required skills for extracting meaningful information from


Digital Image Processing

The course develops a theoretical foundation of fundamental Image Processing concepts. It presents the mathematical foundations for digital manipulation of images; image acquisition; preprocessing; segmentation; Fourier domain processing; and compression. Students gain experience and practical techniques to write programs using MATLAB language for digital manipulation of images; image acquisition


Cloud Computing and Networking

This course introduces the fundamental concepts of data networks. Underlying engineering principles of computer networks and integrated digital networks are discussed. Students should learn to analyze the trade-offs between deploying applications in the cloud and over the local infrastructure. They should compare the advantages and disadvantages of various cloud computing platforms. Practically


Natural Language Processing

This course Introduces the fundamental concepts and ideas of natural language processing (NLP). The course presents processing linguistic information and the underlying computational properties of natural languages.


Deep Learning

This course provides deep learning methods with applications to machine translation, image recognition, game playing, and more. Students will gain foundational knowledge of deep learning algorithms and get practical experience in building neural networks. The course covers the basic components of deep learning, what it means, how it works, and develop code necessary to build various algorithms. A


NLP Applications

Introducing basic principles, concepts and modern technologies for building NLP applications, mainly question answering systems and recommender system. The course introduces the students to the basic components of the QA systems. They include information retrieval, information extraction, natural language processing, and opinion mining. The course provides students with the basic understanding of