Computer Engineering Departmental Courses

 

CS 101 – 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 102 – 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 201 – 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 210 – 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 213 – Discrete Computational Structures

Introduction to the main concepts of discrete computational structures. Overview of formal tools for mathematical reasoning and proof construction. A thorough discussion of mathematical induction as a proof technique and how it relates to problem solving, algorithm design and program verification. An introduction to combinatorial analysis and its application on discrete structures including sets, permutations, graphs, and trees.

EE 221 – 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 221L – 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 222 – 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 291 – 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 303 – 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 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.

CS 310 – 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 311 – 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 320 – Embedded Systems Design

The objective of the course is to introduce the concept of Harvard + CISC architecture microcontrollers and design of embedded computing systems on typical applications including interrupts, timers, LCD and LED displays, keypads, A/D converters, rotary coders, stepper motors, serial and parallel communication interfacing. The design applications are introduced on a very widely used typical 8-bit embedded microcontroller unit, AT89C51. The scope of the course is the simple, distinct MCS-51 embedded system design with the applications in C and CISC assembly programming. The design/theory scale of the course is around 60/40.

CS 331 – 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 362 – 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 363 – 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 391 – Summer Training II

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. Getting actively involved in the software/systems development projects of the training place. Preparing technical documentation.

CS 491 – Project Management in Computer Engineering and Ethics

This course introduces the student with background necessary for solving an open engineering problem. Thus, it can be considered as a course that prepares the students to the Senior Project II course, which is the one where they apply all their knowledge and skills gained throughout their program to solving an actual engineering problem.

CS 492 – Senior Project

The students apply all their knowledge and skills gained throughout their program to solving an actual engineering problem. It involves applying skills gained in project management, software design and implementation, evaluation and assessment methodology, technical writing and presentation.   

 

 

Engineering Basic Science and Common Courses

 

CHEM 101 – 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 102 – 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 101 – 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 102 – 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 101 – 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 102 – 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 101 & PHYS 101L – 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 102 & PHYS 102L – 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 201 – 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 202 – 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.

GEN 200 – 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 211 – 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 300 – 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

GEN 401 – 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.

GEN 402 – 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 402 – Compiler Design

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

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.

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.

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.)

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.

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.

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.

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.

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.

CS 415 – Adaptive Optimization

The objective of this course is to develop students’ ability to design and implement advanced adaptive search methods to solve linear, nonlinear, and mixed integer programming problems. To achieve this objective, students will learn (through lectures, articles from the literature, and course project) detailed analysis of meta-heuristic optimization methods and that how and when these techniques work, and what are their relative merits to each other and to more traditional approaches. Topics include an introduction to adaptive search, simulated annealing, genetic algorithm, tabu search, ant colony method, particle swarm optimization, and introduction to constraint handling.

CS 421 – Introduction to Robotics

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

CS 422 – 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.  

CS 431 / CS 432 – 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 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.

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.

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.

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.

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.

CS 447 – 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 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.

CS 451 – Computer Graphics

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

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.

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)

CS 462 – 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

CS 464 – Cloud Computing

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

CS 466 – 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 468 – Database Management Systems and Applications

The main objective of this course is to review the principles of database systems as well as to obtain a hands-on experience on a relational database management system. This course discusses concepts and techniques for the management of data a relational database management system.

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

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.

CS 481 – 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.

Form No: ÜY-FR-0727 Yayın Tarihi : 21.02.2020 Değ. No: 0 Değ. Tarihi:-