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