# Course Contents

**CORE COURSES**

**MATH 101 - Calculus I **

Trigonometric functions and their basic properties. Inverse trigonometric functions. Logarithmic and exponential functions. Limits and continuity of functions of a single variable. Differentiation. Function sketching. Applications of derivatives, optimization problems. Definite and indefinite (Riemann) integral, area under a curve. Fundamental theorem of calculus, techniques of integration, areas, surfaces, volumes. Improper integrals.

Prerequisite : Two years of high school algebra, one year of high school geometry, precalculus math (or its equivalent).

Credit(s) : 4

ECTS : 6

**MATH 102 - Calculus II **

Sequences, series, convergence tests. Three dimensional coordinate system, vectors, dot and cross product, lines and conics. Vector functions and space curves. Derivatives and integrals of vector functions. Functions of several variables. Limits and continuity. Partial derivatives. Directional derivatives and the gradient vector, finding and classifying local and global extreme values, Lagrange multipliers method. Double integrals, Triple integrals and their applications. Vector fields. Green's and Stokes' Theorem. Curl and divergence. Surface integral. Divergence theorem.

Prerequisite : MATH 101

Credit(s) : 4

ECTS : 6

**PHYS 101 - Physics I **

This course aims to introduce fundamental concepts in Newtonian Mechanics including dynamics, kinematics, momentum, energy and rotational motion. PHYS 101 is a first-semester freshman physics class in Newtonian Mechanics. It is expected that students have already mastered algebra and basic trigonometry at the high school level.

Corequisite : MATH 101

Credit(s) : 4

ECTS : 6

**PHYS 102 - Physics II **

This course aims to introduce fundamental concepts in electromagnetism and basic electric circuits including electric field, electric potential, capacitance, resistance, direct and alternating current circuits, magnetic fields & forces, and electromagnetic waves. PHYS 102 is a second-semester freshman physics class that follows up and builds upon PHYS 101.

Prerequisite : MATH 101 and PHYS 101

Corequisite: MATH 102

Credit(s) : 4

ECTS : 6

**CS 101 - Introduction to Programming I (Python) **

This course introduces the fundamental concepts of computer programming using Python. This course covers basic programming concepts such as variables, data types, iteration, functions, lists, dictionaries, file I/O etc. No programming background is required.

Credit(s) : 4

ECTS : 7

**CS 111 - Introduction to Programming I (C) **

This course introduces the fundamental concepts of computer programming using C. This is an introductory course to the C programming language. The course spans the fundamental components of programming (i.e., computers, development environments, editors, compilers, etc.), variables, control structures, pointers, basic data structures, functions. No programming background is required.

Credit(s) : 4

ECTS : 7

**CS 102 - Introduction to Programming II (Java) **

This is an introductory course to the Object Orıented Programmıng JAVA. Basic programming background is required. The course spans the concepts of variables, control structures, arrays, classes and objects, writing classes, object oriented thinking, introduction to inheritance.

Prerequisite: CS 101 or CS 111

Credit(s) : 4

ECTS : 7

**SCI 103 - Natural Sciences I**

Course covers a basic overview of chemistry and the applications of chemistry within each engineering discipline. Chemistry is the study and understanding of matter and energy; both of these topics are important for a strong education in any field of engineering. Basic topics include the periodic table of the elements, matter, the components of an atom, atomic bonds, ions, molecular structures, acids and bases, solutions, thermodynamics, chemical reactions, chemical equilibriums, and electrochemistry.

Credit(s) : 2

ECTS : 3

**SCI 104 - Natural Sciences II**

Course covers a basic overview of the molecular biology of the cell and the cutting-edge applications of biology within each engineering discipline. Basic biology topics include genetics, energy production, proteins and enzymes, organelles of the cell, the central dogma of molecular biology, and basic disease overviews (among others). Biological applications in engineering topics include highway design, computer games driving biological innovation, streamlining of the healthcare industry, prosthetic limb technology, nanobot technology in cancer research, organic LED and organic solar panel development (among others).

Credit(s) : 2

ECTS : 3

**MATH 201 – Linear Algebra **

Basic concepts of linear algebra. Solutions of systems of linear equations; vectors and matrices; subspaces, linear independence, and bases; determinants; eigenvalues and eigenvectors; other topics and applications as time permits.

Prerequisite : Math 101

Credit(s) : 4

ECTS : 6

**MATH 202 - Differential Equations **

Solution of ordinary linear differential equations using theorems and methodology of linear algebra. General theory of linear differential equations, equation with constant coefficients, the Laplace transform, Power series solutions, Bessel's equation, boundary-value problems. Fourier series.

Prerequisite : Math 101

Credit(s) : 4

ECTS : 6

**CS 201 - Object Oriented Software Development (Java)**

This course provides the advanced concepts of Object Oriented Programming with Java. List of topics to be covered include but not limited to polymorphism (via inheritance and via interfaces), use of abstract classes, graphical user interfaces, exception handling, introduction to Unified Modeling Language (UML) use-case and class diagrams.

Prerequisite: CS 102

Credit(s) : 4

ECTS : 6

**MATH 213 - Discrete and Combinatorial Mathematics**

Fundamental principles of counting, permutations, combinations, logic, properties of integers and mathematical induction, prime numbers, greatest common divisor, Cartesian products and relations, functions, pigeonhole principle, partial order relations, equivalence relations, principle of inclusion-exclusion, first and second order recurrence relations, generating functions and their use in solving recurrence relations, introduction to graph theory, Euler tours, vertex degrees, Hamilton paths and cycles, planar graphs, trees.

Credit(s) : 3

ECTS : 5

**CS 210 - Data Structures**

Introduction to algorithm analysis and O notation, Collections API of Java, recursion, sorting algorithms (insertion sort, mergesort, quicksort), linked lists, stacks, queues, trees, binary search trees, AVL trees, hash tables, binary heap, introduction to graphs, BFS, DFS, minimum spanning trees, Dijkstra’s algorithm.

Prerequisite: CS 102

Credit(s) : 3

ECTS : 6

**CS 221 - Digital Systems**

Number systems. Boolean algebra, logic networks and their simplification, canonical forms. Combinatorial circuits. Adders, decoders, encoders, multiplexers, flip-flops, sequential circuit analysis and design, registers, counters, memory and programmable logic. Applications.

Credit(s) : 4

ECTS : 6

**CS 222 - Computer Organization and Design**

Introduction to computer architecture, history of computers, high-level view of computer function, digital design, number systems, computer arithmetic, instruction sets, MIPS instruction set, addressing modes, single-cycle data path and control, multi-cycle data path and control, pipelining, pipeline hazards, superscalar CPU, memory performance and hierarchy, cache, virtual memory, storage units.

Prerequisite: CS 221

Credit(s) : 3

ECTS : 6

**IE 232 - Engineering Economics**

The purpose of this course is to supplement engineering student’s technical training with the knowledge and capability to perform financial analysis especially in the area of capital investment. The objectives of this course are to use engineering economy factors and different methods for the evaluation of alternatives, to carry out sensitivity analysis, to integrate the effects of inflation, depreciation and/or tax into an economic analysis whenever necessary, to use computer software for engineering economy analysis. Subjects covered are: The fundamental concepts of engineering economy; how to use engineering economy factors to account for the time value of money; service, revenue, mutually exclusive and independent alternatives; how to consider inflation in an engineering economy analysis; depreciation and after tax economic analysis.

Credit(s) : 3

ECTS : 5

**MATH 311 – Introduction to Probability Theory and Stochastic System Analysis**

Probability model, discrete and continuous random variables. Transforms and sum of random variables. Bernoulli and Poisson processes. Discrete-time Markov chains. Markov and Chebyshev inequalities, central limit theorem, law of large numbers. Bayesian statistical inference, maximum likelihood (ML) estimation, maximum a posteriori (MAP) estimation and Bayesian least mean square estimation. Linear regression, binary hypothesis testing and significance testing.

Prerequisite: MATH 102 and MATH 201

Credit(s) : 3

ECTS : 5

**CS 303 - Principles of Programming Languages **

This course introduces the fundamentals of programming language design, semantics and implementation. Topics include the syntax and semantics of functional, imperative, logic and concurrent programming paradigms, tools for lexical and syntactical analyzers, lambda calculus, type systems, abstract data types.

Credit(s) : 3

ECTS : 6

**CS 306 - Software Engineering **

This course introduces the basics of developing professional software systems including requirement specification, design plans and methods, verification and testing. Topics include software design process models, software verification, debugging, quality assurance, prediction of software reliability.

Prerequisite: CS 102

Credit(s) : 3

ECTS : 6

**CS 310 - Formal Languages and Automata Theory**

Finite automata, regular expressions, regular languages and their properties, pumping lemma for regular languages, context-free grammars and languages, normal forms, pushdown automata, pumping lemma for context-free languages, Turing machines and their properties, Church-Turing thesis, decidability and undecidable languages, complexity theory, P, NP, NP-completeness.

Prerequisite: MATH 213

Credit(s) : 3

ECTS : 6

**CS 311 - Algorithms**

This course spans the following topics: asymptotic notation, recurrence relations (substitution, master methods), divide-and-conquer paradigm, sorting algorithms (mergesort, quicksort, randomized quick sort, heapsort, linear time sorting), dynamic programming, greedy algorithms, introduction to graph algorithms (depth first search, breadth first search, topological sorting, minimum spanning tree algorithms, the shortest path algorithms), network flows, bipartite matching.

Prerequisite: CS 210

Credit(s) : 3

ECTS : 6

**CS 330 - Introduction to Database Systems **

This course introduces the fundamentals of database systems including relational data model, entity/relationship model, SQL, query optimization, integrity constraints, normalization, transaction management, concurrency control and recovery systems.

Prerequisite: CS 210

Credit(s) : 4

ECTS : 6

**CS 361 - Operating Systems **

This course spans the following topics: processes, threads, interprocess communication, synchronization (critical regions, semaphores, mutex, deadlocks), scheduling, memory management, i/o systems, file systems.

Prerequisite: CS 210, CS 222

Credit(s) : 4

ECTS : 6

**DEPARTMENT ELECTIVE COURSES**

**CS 322 - Microprocessors **

Introduction to microprocessors, including their basic architecture and operation. Bus organization, addressing modes, instruction set, analysis of clocks and timing, interrupt handling, serial and parallel communication, memory. Assembly language programming.

Prerequisite: CS 221

Credit(s) : 3

ECTS : 6

**CS 402 - Compiler Design **

This course provides logical design of compilers. The topic will be covered: lexical analyzer, parsers (top-down, bottom-up), semantic analyzer, intermediate code generation, code optimization.

Prerequisite: CS 210

Credit(s) : 3

ECTS : 6

**CS 403 - Software Development For Mobile Devices **

Mobile information systems and applications. Wireless information system challenges and architectures. Mobile application protocols. Client mobile application development (WML, VXML, Java, J2ME, J2EE, .NETCF, C#). Case studies of mobile applications.

Prerequisite: CS 102

Credit(s) : 3

ECTS : 6

**CS 404 - Distributed Computing **

This course provides foundations for implementing distributed systems. Topics include distributed-system architecture and models, inter-process communication, synchronization, resource sharing, remote execution, fault tolerance, system performance.

Prerequisite: CS 210

Credit(s) : 3

ECTS : 6

**CS 405 - Web Programming **

Basic web technologies. Programming web pages for interactive content. Designing web pages that dynamically interact with databases residing on a server. Building web pages that connects servers for dynamic access to data (search results, images, videos, maps, etc.)

Prerequisite: CS 102

Credit(s) : 3

ECTS : 6

**CS 407 - Parallel Programming **

This course introduces the foundations of parallel programming including the principles of parallel algorithm design, OpenMP and MPI programming models, message passing, evaluation of parallel algorithms.

Credit(s) : 3

ECTS : 6

**CS 411 - Graph Theory**

Basic concepts of graph theory: paths, cycles, degrees, etc., matching, covering and packing, connectivity, planar graphs, coloring, extremal graph theory, Turan’s theorem, Ramsey theory for graphs, Hamilton cycles, random graphs.

Prerequisite: MATH 213

Credit(s) : 3

ECTS : 6

**CS 412 - Combinatorial Optimization**

Linear Programming, simplex algorithm, duality, the primal-dual algorithm, max-flow and shortest path problems, matching, spanning trees and matroids, integer linear programming, NP-completeness, introduction to approximation algorithms, branch and bound, local search.

Prerequisite: CS 102

Credit(s) : 3

ECTS : 6

**CS 413 – Approximation Algorithms**

Introduction to algorithms and complexity, greedy approximation algorithms, set cover, k-center, Steiner tree, metric TSP, feedback vertex set, polynomial time approximation schemes, knapsack, bin packing, linear programming, rounding, randomized rounding, primal-dual method, Lagrangian relaxation technique, iterative rounding, iterative randomized rounding, cuts and metrics, introduction to SDP based approximation algorithms.

Prerequisite: CS 311

Credit(s) : 3

ECTS : 6

**CS 414 – Computational Complexity**

Turing machines, P, NP, NP-completeness, Cook-Levin theorem, reductions, coNP, EXP, NEXP, diagonalization, hierarchy theorems, oracles, relativization, space complexity, PSPACE-completeness, Savitch’s theorem, NL-completeness, Immerman-Szelepcsenyi theorem, the polynomial hierarchy, Boolean circuits, randomized complexity classes, RP, coRP, ZPP, BPP, interactive proofs, IP, AM, MA, IP=PSPACE, introduction to PCPs.

Prerequisite: CS 310

Credit(s) : 3

ECTS : 6

**CS 421 - Introduction to Robotics **

Introduction to design, build and program mobile robots. Sensors, effectors, locomotion, control architectures, path planning, localization, learning.

Credit(s) : 3

ECTS : 6

**CS 424 - Embedded Systems**

Introduction to embedded systems and their applications, design and build microprocessor-based embedded systems, real-time applications, introduction to VHDL, VHDL design, FPGAs and programmable logic and rapid prototyping using FPGAs,

Prerequisite: CS 222

Credit(s) : 3

ECTS : 6

**CS 441 - Artificial Intelligence**

Knowledge representation. Search algorithms and heuristic programming. Logic and logic programming. Problem solving, games and puzzles, expert systems, vision, machine learning, natural language understanding and neural networks.

Credit(s) : 3

ECTS : 6

**CS 442 - Neural Networks **

An introduction to neural networks. Biological information processing. An overview of the most important networks such as perceptrons, backpropagation, Hopfield and Boltzmann networks, self-organizing maps, adaptive resonance theory, and reinforcement learning.

Credit(s) : 3

ECTS : 6

**CS 443 - Digital Image Processing**

The basic theories and methodologies of digital image processing. Image representation, image formation, image enhancement, intensity transformations, Fourier transform, image sampling, image restoration, morphological operations, image filtering, edge detection, image segmentation, and basics of digital video processing.

Credit(s) : 3

ECTS : 6

**CS 444 Data Mining **

Knowledge extraction from large data sets. Data preparation, task identification, feature selection. Association rule mining. Classification, prediction, clustering. Evaluation, validation and scalability. Spatial and sequence mining. Data mining applications.

Credit(s) : 3

ECTS : 6

**CS 446 - Pattern Recognition**

Bayesian decision theory. Parametric and nonparametric methods, feature extraction, decision trees, unsupervised learning and clustering, support vector machines, artificial neural networks, hidden Markov models, and reinforcement learning.

Credit(s) : 3

ECTS : 6

**CS 448 - Natural Language Computing **

This course presents an introduction to the applications of natural language computing such as speech recognition, information retrieval, machine translation etc. Topics include part-of-speech tagging, context-free grammars, entropy, hidden markov models, and corpus analysis.

Credit(s) : 3

ECTS : 6

**CS 451 - Computer Graphics **

This course provides an introduction to basic concepts and techniques of computer graphics. Topics include image processing, rasterization algorithms, animation systems, affine transformations, geometric modeling of curves and surfaces, texture mapping, ray tracing etc.

Credit(s) : 3

ECTS : 6

**CS 452 - Human Computer Interaction **

This course introduces the fundamental concepts of designing, prototyping and evaluating user interfaces. Topics include user interface design rules, interaction design, rapid prototyping techniques, evaluation methodologies, multimodal interfaces.

Credit(s) : 3

ECTS : 6

**CS 461 - Computer Networks **

This course introduces the basic concepts of computer networks. Circuit Switching, Packet Switching, OSI and TCP/IP architectures. Application Layer (HTTP, SMTP, FTP, DNS etc), Transport Layer (TCP, UDP), Flow and Congestion Control (Sliding Window Protocols), Network Layer (IPv4, IPv6, IP Fragmentation, Link state and Distance vector routing algorithms, OSPF, RIP, BGP), Data Link Layer (Medium Access Protocols like Slotted ALOHA, TDMA, FDMA, CSMA/CD, error correction)

Credit(s) : 3

ECTS : 7

**CS 462 - Wireless Networks **

This course spans the following topics: Wireless Ad hoc and infrastructured networks, Wireless Ad hoc MAC protocols (hidden terminal, exposed terminal problems, IEEE 802.11), Wireless Ad hoc routing protocols, Introduction to Wireless Sensor Networks (WSNs), topology control, routing and mac layer in WSNs, Quality of service

Credit(s) : 3

ECTS : 6

**CS 463 - Social Networks**

Graph theory and social networks. Game theory. Market and strategic interaction on networks. Information network and world wide web. Network dynamics: population models, structural models.

Credit(s) : 3

ECTS : 6

**CS 464 - Cloud Computing **

This course will survey main concepts of cloud computing. Topics include cloud and datacenter file systems, virtualization, security and privacy, MapReduce and Amazon Web services and interactive web-based applications.

Credit(s) : 3

ECTS : 6

**CS 471 Computer Security **

This course spans the following topics : Basic concepts of cryptography, access control, software security and malicious code, trusted systems, network and wireless security

Credit(s) : 3

ECTS : 6

**CS 472 - Cryptography **

This course spans the following topics: block ciphers (DES, AES, triple-DES), stream ciphers, cryptographic hash functions (MD5, SHA), public key encryption, digital signatures, key distribution protocols, key management, authentication systems, strong password protocols, Kerberos, Internet cryptography, IPsec, SSL/TLS, e-mail security, firewalls.

Credit(s) : 3

ECTS : 6

**CS 481 - Introduction to Computational Biology **

This course provides an introduction to computational biology. Topics span DNA sequence assembly, sequence alignment, RNA and protein folding, motif discovery, applications of hidden markov models, gene expression analysis, phylogenetic trees.

Prerequisite: CS 311

Credit(s) : 3

ECTS : 6

**BIO 301 – Advanced Biology**

Engineering is the application of scientific principles, and it is therefore important for engineers to know how to access modern progress in science and engineering beyond the textbook. Advanced biology will focus on the importance of learning how to read and assess cutting-edge primary scientific literature and how to present newfound scientific knowledge. We will develop critical reading and thinking skills, as well as learn how to discuss scientific and engineering advancements, all while focusing on the current developments in the area of biological applications in engineering.

Prerequisite: SCI 102

Credit(s) : 3

ECTS : 6

**GFL 201 –Foreign Languages**

This syllabus is designed for learners of a language as a foreign language. The aim is to develop an ability to use the language effectively for purposes of practical communication. The course is based on the linked language skills of listening, reading, speaking and writing, and these are built on as learners progress through their studies. The syllabus also aims to offer insights into the culture and civilisation of countries where the selected language is spoken, thus encouraging positive attitudes towards language learning and towards speakers of foreign languages.

Credit(s) : 3

ECTS : 6

**SSC 201 – Social Sciences**

This course gives general information about humanities and various cultures in the World. The course involves understanding lives of the people in different parts of the world based on analysis of culture, entertainment, food

Credit(s) : 3

ECTS : 6