2025 Curriculum - Computer Engineering Departmental Courses
CS 1001 – Introduction to Programming I
The main objectives of this course are to introduce students to the fundamentals of computer programming such as variables, conditionals, functions and to enable students to write and run Python programs to solve small tasks. This course covers basic programming concepts such as variables, data types, iteration, functions, lists, dictionaries, and file I/O.
CS 1002 – Introduction to Programming II
This is an introductory course to the basic object-oriented programming concepts. 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. Java programming language is employed in depicting the introduced concepts.
CS 2001 – Object Oriented Programming
This course provides the advanced concepts of object-oriented programming with Java. 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 Modelling Language (UML) use-case and class diagrams.
CS 2002 – Data Structures
Introduction to the main concepts of data structures and algorithms. Overview of analysis tools and asymptotic notation. Discussion of recursion and its application to problem solving in computer science. Design and implementation of important abstract data types such as linked lists, doubly linked lists, stacks, queues, priority queues. Discussion of efficient sorting, searching and search tree structures.
CS 1006 – Discrete Computational Structures I
An introduction to the fundamental concepts of discrete computational structures. An overview of the formal tools needed for mathematical reasoning and proof construction. A detailed examination of mathematical induction and its use in problem solving, algorithm design, and program verification. An examination of recursion, elementary counting techniques, and combinatorial analysis.
CS 2007 – Discrete Computational Structures II
Discussion of counting techniques using permutations and combinations defined on sets and multisets. Introduction to graph theory by giving basic definitions, introducing general graph families, and presenting basic theorems. Discussion of well-known graph theory topics such as the shortest path problem, weighted graphs, and Dijkstra's algorithm, spanning tree algorithm, and search algorithms.
EE 2011 – Digital Systems
This course introduces the basic concepts of digital systems, such as 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.
EE 2013 – Digital Systems Laboratory
This course covers experiments involving the basic concepts of digital systems, such as 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, and counters.
CS 2004 – Computer Organization and Architecture
The main goal of this course is to outline the architectural side of computers. In other words, it focuses on how computers-as machines- execute instructions at various levels, including the hardware level and assembly language level. The students learn the basic technological structure and evolution of computers, fundamental hardware components, instructions set architectures (specifically MIPS and x86) together with their assembly languages, the microarchitecture of a processor including the control unit (MIPS is given as an example), memory hierarchy, storage and input/output.
CS 2003 – 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.
CS 3000 – Summer Training I
Conducted at a company or an institution providing computer engineering related solutions, the course involves a training for a minimum of 20 working days. Application of knowledge and skills learned at school to solve engineering problems related to computer systems in the real-world. Familiarization with professional and ethical responsibility while working in multidisciplinary teams. Learning to find relevant resources to access information. Observation of the use of contemporary tools, techniques, and methods employed in computer science. Preparing technical documentation.
CS 3007 – Principles of Programming Language
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 analysers, lambda calculus, type systems, abstract data types.
CS 3003 – 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.
CS 3002 – Formal Languages and Automata Theory
Introduction to the main concepts regarding models of computation used throughout computer science: finite automata, pushdown automata, and Turing machines. The hierarchical relationships among these models, their relative power and limitations, and their variants are studied. Student skills are developed in using rigorous definitions and proofs to solve questions about computability and computation. Topics covered include: Finite automata, regular expressions, regular languages and their properties, pumping lemma for regular languages, context-free grammars, pushdown automata, pumping lemma for context-free languages, Turing machines and their properties, Church-Turing thesis, undecidable problems and reducibility.
CS 3001 – Algorithms
Introduction to the main concepts of design and analysis of algorithms. Overview of basic analysis techniques: approximating functions asymptotically, bounding sums, and solving recurrences. Discussion of efficiently solvable problems with a focus on design techniques such as divide-and-conquer, randomization, dynamic programming, amortization, and greedy algorithms. Illustration of various new concepts through algorithms applied to problems related to sets, sequences, strings, graphs etc.
CS 2006 – Database Systems and Applications
The aim of the course is to review the principles of relational database systems and then provide students with intensive practice.
CS 3004 – Operating Systems
This course teaches the students standard operating systems structures. The students are exposed to topics such as concurrency and real-time considerations. The course discusses how common operating systems such as Unix and Windows are designed and implemented. This course spans the following topics: processes, threads, inter-process communication, synchronization (critical regions, semaphores, mutex, deadlocks), scheduling, memory management, i/o systems, file systems.
CS 3005 – Systems Programming
This course introduces the students the basics of programming under Unix and C programming. The students are exposed to topics such as Unix bash shell, Unix filesystem, C structure and basic C library routines.
CS 3006 – Introduction to 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.
EE 3008 – Microcontrollers
Introduction to microcontrollers, 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.
Engineering Basic Science and Common Courses
CHM 1001 – General Chemistry
This course covers the application of chemistry on engineering and fundamental principles of chemistry. The course contents includes matter ant its properties, uncertainty and significant figures, dimensional analysis, atom and atomic theory, mass relationships in chemical reactions, reactions in aqueous solutions, gases, thermochemistry, electronic structure of atoms, periodic table, chemical binding, liquids and solids, physical properties of solutions, thermodynamics and electrochemistry.
BIO 1001 – Biology
This course covers the understanding of biological mechanism of living organism from engineer perspective and provide knowledge about biological problems that require engineering expertise to solve them. The course contents include covers the fundamental aspects of General Biology under the topics of cell, genetic, evolution, plant and animal biology and ecology.
ENEN 1001 – English for Engineering I
Cambridge English for Engineering “develops the communication skills and specialist English language knowledge of engineering professionals, enabling them to communicate more confidently and effectively with colleagues and customers. The ten standalone units cover topics common to all kinds of engineering such as procedures and precautions; monitoring and control; and engineering design. Authentic activities, from describing technical problems and suggesting solutions to working with drawings, make the course relevant and motivating.” The book is accompanied by a booklet with supplementary materials prepared by the course instructors. Students are expected to develop their specific-academic English skills by participating in and contributing to class discussions. Also, they will have the opportunity to give an oral presentation of their choice and/or the instructor’s. By the end of the course, students will be able to achieve the learning outcomes mentioned below.
ENEN 1002 – English for Engineering II
Cambridge English for Engineering “develops the communication skills and specialist English language knowledge of engineering professionals, enabling them to communicate more confidently and effectively with colleagues and customers. The ten standalone units cover topics common to all kinds of engineering such as procedures and precautions; monitoring and control; and engineering design. Authentic activities, from describing technical problems and suggesting solutions to working with drawings, make the course relevant and motivating.” The book is accompanied by a booklet with supplementary materials prepared by the course instructors. Students are expected to develop their specific-academic English skills by participating in and contributing to class discussions. Also, they will have the opportunity to give an oral presentation of their choice and/or the instructor’s. By the end of the course, students will be able to achieve the learning outcomes mentioned below.
MATH 1001 – Calculus I
Trigonometric Functions and their basic properties, Inverse trigonometric functions, Logarithmic and exponential functions, Limit and continuity of functions of one variable, Derivative, Drawing function graph, Derivative applications, Optimization problems, Specific and uncertain (Riemann) Intergraly, Finding the area under the curve, Theorem, Integral Techniques, Fields, Surfaces, Volumes, Absolute Integrals, Series, Series.
MATH 1002 – Calculus II
Sequences, Series, Convergence Tests, Three-dimensional coordinate system, vectors, point and cross products, lines and conics, vector functions and space curves, derivatives and integrals of vector functions, multivariable functions, limit and continuity, partial derivative, directional derivative and gradient vector, finding local and absolute extreme values and classification, Lagrange multiplier method, double and triple integrals and applications, vector fields, Green and Stokes theorem, curl and deviation, curve and surface integrals, Divergence theorem.
PHYS 1001 & PHYL 1001 – Physics I & Physics I Laboratory
This course covers topics such as Newtonian mechanics, kinematics, dynamics, forces, work, kinetic and potential energy, momentum, circular and rotational motion, and gravity.
PHYS 1002 & PHYL 1002 – Physics II & Physics II Laboratory
This course covers electromagnetism and basic electrical circuits, electric field, electrical potential, capacitance, resistance, accurate and alternating current circuits, magnetic fields and magnetic forces, electromagnetic induction, inductance and electromagnetic waves experiments.
MATH 1004 – Linear Algebra
Basic concepts of Linear algebra, solutions of Linear equation systems, vectors and Matts, vector subspaces, linear independence and base, determinants, characteristic value and characteristic vectors, other topics and applications.
MATH 2003 – Differential Equations
Examination of First order differential equations, asset and uniqueness theorem/solutions and applications of various differential equations from the First order/linear differential equations with variable coefficient and constant coefficient of Higher order Basic theorems/ambiguous coefficients for Fixed coefficient linear equations and operator method/method of exchange of Parameters/Mertebe Drop Method/Variable conversion method/Euler-Cauchy differential equation/High order full Solution of initial value problems with differential equations/Laplace Method/Linear differential equation systems.
ENEC 2000 – Engineering Economics
This Course is designed to inform students about the modelling and analysis of production systems. After you understand the nature and context of Production systems and the key decision areas of various phases throughout a system life, it will focus on strategic, long-range issues, especially for the design phase. A wide range of designs, which are encountered in Modern manufacturing environments, will be discussed with various quantitative methods and modelling approaches.
MATH 2005 – Probability and Statistics for Engineering
Graphical representations of Data; Probability Axioms; Bayesian theorem; Discrete distributions (geometric, binomial, poisson); Continuous Distributions (Normal, exponential, weibull); Point and range estimation; Probability functions; Hypothesis tests for one or two population ratios, averages and variances.
MATH 2006 – Numerical Analysis for Engineers
The solutions of linear/nonlinear equations, and systems, interpolation and polynomial approximation, numerical differentiation & integration, the solution of differential equations, curve fitting, numerical optimization
ENWH 1001 – Worker Health and Occupational Safety I
Within the scope of the course, the awareness of the students about occupational health and safety, their duties, responsibilities and legal rights are taught and taught in business life. Moreover, it is aimed to gain awareness and occupational safety culture in order to work in a healthy and safe environment. Occupational Health and Safety Law No. 6331, Labor Law No. 4857, Social Insurance and General Health Insurance Law No.5510 are covered.
ENWH 1002 – Worker Health and Occupational Safety II
Within the scope of the course, the awareness of the students about occupational health and safety, their duties, responsibilities and legal rights are taught and taught in business life. Moreover, it is aimed to gain awareness and occupational safety culture in order to work in a healthy and safe environment. Occupational Health and Safety Law No. 6331, Labor Law No. 4857, Social Insurance and General Health Insurance Law No.5510 are covered.
HIST 101 – Atatürk’s Principles and the History of Turkish Revolution – I
In this course, significant developments in the late Ottoman and early Republican histories starting with the French and Industrial Revolutions are taught within the context of global developments.
HIST 102 – Atatürk’s Principles and the History of Turkish Revolution – II
In this course, political, economic, social and cultural developments since the establishment of the Republic are taught within the context of global developments.
Computer Engineering Elective Courses
CS 4005 – 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.)
CS 4007 – 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.
CS 4009 – Introduction to Data Science
The aim of this course is to introduce data science and data analysis using statistical learning methods. Classical statistical methods, methods of calculation and machine learning will be mixed with recent advances in computer science. Another aim of this course is to provide the students with the experience of using data analysis methods by applying the analytical methods in the field of data analysis on sample data sets.
CS 4010 – Introduction to Machine Learning
Introduction to fundamental concepts in learning patterns from data. Overview of discriminative and generative learning paradigms. Discussion of machine learning methods ranging from linear regression to ensemble methods to neural networks. Comparison of supervised and unsupervised learning techniques.
CS 4012 – 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)
CS 4013 / CS 4014 – Independent Study in Computer Engineering I / II
The main objective of this course is to provide the students the opportunity to do an in-depth independent research on a special topic of computer science. This course provides an opportunity to pursue fields of study that are not currently a part of the Computer Engineering undergraduate curriculum. All eligible students are encouraged to consider taking part in an independent study in order to broaden the scope of their knowledge in special areas of computer science. Eligibility criteria consists of a GPA threshold determined by the department.
CS 4015 – 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.
CS 4016 – Distributed Database Systems
The main objective of this course is to introduce students to the principles of distributed database systems in general, and NoSQL database systems in specific. This course discusses concepts and techniques for the management of distributed data using distributed database management systems. Emphasis of the course will be on the NoSQL databases.
CS 4017 – Introduction to Computational Biology
This course introduces 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.
CS 4018 - Theory of Information and Coding
This course covers source coding, uniquely decodable codes, instantaneous codes, Kraft and McMillan inequalities, optimal codes, binary Huffman codes, source expansion, entropy and information, Shannon's theorem, information channels, binary symmetric channels, unreliable channel usage, and error-correcting codes. Examples of linear and nonlinear codes are also provided.
CS 4020 – Wireless Networks
This course spans the following topics: Wireless Ad hoc and infrastructure 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