Courses
Discrete Mathematics
Sets, sequences, integers. Basic propositional and predicate logic. Methods of proof (including mathematical induction). Combinatorics, functions, relations and digraphs. Matrices and boolean matrices. Graphs and trees.
Probability and Statistics
This course is an introduction and overview of probability and statistics where the students will discuss organization and presentation of statistical data– Measures of central tendency– Measures of dispersion– Definition of the probability- Conditional probability - Independence of events and Bayes theorem - Definition of the random variable- discrete and continuous distribution – some special
Differential Equations
Separable differential equations, first order linear differential equations, homogeneous second order linear differential equations with constant coefficients, series solution, Newton's method, Taylor's Theorem. First-Order, Second-Order and Higher-Order Linear Differential
Linear Algebra
Matrices and Gaussian elimination, Vector Spaces, Vector calculus, Orthogonality, Determinants, Eigenvalues and Eigenvectors, Positive definite matrices, Computations with matrices, Linear programming and Game theory. Equations, partial differential equations, and Laplace transforms.
Electric and Electronic Circuits
This course introduces Basic electrical concepts and network theorems, circuit laws, resistance, capacitance, inductance; response of RC, RL and RLC circuits to initial conditions and constant forcing functions; The course introduces the Crystal structure of semiconductors (electrons, holes, impurities, Fermi level, diffusion, continuity equation), semiconductor diodes (P-N junction, V-I
Physics I
Measurements: Standards of length, mass, and time, dimensional analysis, the International system of units SI, conversion of units. Mechanics: Newton’s laws and applications, potential and kinetic energy, satellite motion and Kepler’s laws. Electrostatics: electric charge and Coulomb’s law: insulators and conductors, electrostatic field, Gauss’ law, potential, potential energy, dielectrics and
Computer & Information Skills
The goal of the course is to help the student develop the basic research and information technology skills needed to succeed in their academic and later professional careers. These skills include defining information needs, efficient use of web resources, managing data, basics of data bases, effective research methodologies, and evaluation of research results and communicating these results in
Introduction to Programming
This course serves as an introduction to the process of program design and analysis using a modern programming language. The course provides basic understanding of programming concepts; constructs, data types, looping, nesting, functions, arrays, objects and classes. The topics also include good programming practices, modularity, reusability and ease on maintenance.
Intermediate Programming
This course reviews the basics of the C programming language, provides in depth introduction to the C++ programming language, teaches the principles of object-oriented program design and implementation. Moreover, the course teaches the students how to build and manipulate classes and implement inheritance and polymorphism.
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.
Data Structures and Algorithms
The course aims to enable the students to master data structures usage and implementation in object-oriented context. In this course, students study data structures and algorithms for their manipulation. Students should be able to analyze basic data structure operations. The course allows students to develop methods for designing and implementing abstract data types and structures.
Introduction to Computer Systems
This course provides a programmer's view of how computer systems execute programs, store information, and communicate. It enables students to become more effective programmers, especially in dealing with issues of performance, portability and robustness. It also serves as a foundation for courses on compilers, networks, operating systems, and computer architecture, where a deeper understanding of
Design Analysis of Algorithms
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
Advanced Programming
This course presents an advanced view of computer programming, mainly using C++. The key goal of this course is to introduce, and study key concepts related to computer programming for scientific and engineering applications. The use of current operating systems (e.g. Linux and UNIX) and compilers (e.g. gcc) will also be presented. Object Oriented Programming will also be discussed in detail. The