Undergraduate Courses

Undergraduate Courses

First Year

Course Code Course Name Description Prerequisite(s)
CENG 111 Concepts in Computer Engineering

Basic computer knowledge: History of computing, terms and definitions, system components and processes, computer architecture, data storage, computer networks and internet, software engineering, problem solving and algorithm design, data structures, application fields of computers.

Course Objectives:

1. Developing a common understanding about computer science,

2. Gaining ability to describe, analyze and solve the problems,

3. Teaching the algorithmic thinking and design in a higher level,

4. Gaining basic knowledge about computer architecture, programming languages, data storage, software engineering and computer networks,

5. Teaching the application fields of computers.

Recommended or Required Reading:

J. G. Brookshear. Computer Science An Overview. 7th Ed. 2002. Addison-Wesley. ,G. Michael Scneider, Judith L. Gersting. (1995). An Invitation to Computer Science. 1st Ed. West Publishing Company, USA. ,George Beekman, Micheal J. Quinn. (2005). Computer Confluence. 7th Ed. Prentice Hall.

Learning Outcomes:
1. To learn about the history of computing
2. To learn the principle concepts and definitions
3. To have the ability to define, analyze and solve problems
4. To have the habitude of algorithmic thinking
5. To learn design of algorithms
6. To have principle knowledge about the computer architecture
7. To have principle knowledge about programming languages and familiarity of different programming languages
8. To have basic knowledge about different data storage methods
9. To have general knowledge about software engineering concepts
10. To learn the principles of computer networks
11. To learn the application fields of the computers
Topics
Introduction to computer engineering
Data storage
Data processing
Operating systems
Computer Networks and Internet
Algorithms
Algorithms cont.
Programming languages
Software engineering
Data structures
File structures
Database management systems
Artificial intelligence
General evaluation

Grading:

Midterm: 25%

Homework: 20%

Research Presentation: 20%

Final: 35%

CENG 112 Data Structures

Basic concepts of data, data structures and data types: arrays, strings, linear structures, sequential searching and sorting techniques, stacks, queues, pointers, linked lists. Various forms of m-way search and B-trees.

Course Objectives

To improve the students understanding and abilities related to data structures and algorithms. To improve the students ability to program.

Recommended or Required Reading

Data Structures and Abstractions with Java, F.M. Carrano and T.M. Henry, 4th ed., Pearson, 2016.
Goodrich, M. T., Tamassia, R., & Goldwasser, M. H. (2013). Data structures and algorithms in Python. John Wiley & Sons Ltd.

Learning Outcomes

  1. To be able to use and design abstract data types.
  2. To be able to implement array and linked data structures.
  3. To be able to design and analyze recursive data structures and algorithms.
  4.  To be able to implement and use algorithms and data structures for searching.
Week Topics
1 Introduction
2 Data Abstraction
3 Queues and Stacks
4 Analysis of Algorithms
5 Recursive Data Structures: Linked Lists and Trees
6
Elementary Sorts: Selection Sort, Insertion Sort, and Shellsort
7 Mergesort
8 Quicksort
9 Heaps and Priority Queues
10 Symbol Tables and Binary Search
11 Binary Search Trees
12 Balanced Search Trees
13 Hash Tables
14 Graph Representation and Traversal

Grading:

  • Midterm Exam %25
  • Homework %25
  • Final Exam  %40
  • Quiz %10

Submissions: Project, Report

  P.O. 1 P.O. 2 P.O. 3 P.O. 4 P.O. 5 P.O. 6 P.O. 7 P.O. 8 P.O. 9 P.O. 10 P.O. 11
L.O. 1 5 0 5 5 0 0 0 0 0 0 0
L.O. 2 5 0 5 5 0 0 0 0 0 0 0
L.O. 3 5 0 5 5 0 0 0 0 0 0 0
L.O. 4 5 0 5 5 0 0 0 0 0 0 0
CENG 113
CENG 113 Programming Basics

Fundamentals of computer programming: sequence, decision, repetion, syntax, compilation, debugging and maintenance, procedures, parameters, arrays, object, top-down structured design, layout and style. The emphasis is on an engineering “right-first-time” approach to solving large problems using computers. Basic concepts of algorithmics and algorithmic terminologies.

Course Objectives

To give the students the fundamentals of computer programming: sequence, decision, repetion, syntax, compilation, debugging and maintenance, procedures, parameters, arrays, object, top- down structured design, layout and style, To introduce basic concepts of algorithmics and algorithmic terminologies.

Learning Outcomes:

  1. To be able to provide algorithmic solutions for basic problems.
  2. To be able to use and explain main concepts of programming.
  3. To be able to design and apply decision structures.
  4. To be able to design and apply loop structures.
  5. To be able to monitor and analyze computer software.
  6. To be able to design, define and use functions.
  7. To be able to use recursive approach for problem solving.
  8. To be able to design, define and use class.

 

Topics
Introduction to Programming Basics – Tutorial – I
Introduction to Programming Basics – Tutorial – II
Types, Operators and Expressions
Program Control Flow
Loops-I
Loops-II
Functions-I
Functions-II
File I/O
Lists and Tuples – I
Lists and Tuples – II
Strings
Recursion
Classes

References:

“Starting Out with Python,” Tony Gaddis
“The Practice of Computing Using Python,” Punch & Enbody, Global Ed.

“Python How to Program,” Deitel & Deitel

“Think Python: How to Think Like a Computer Scientist” by Allen B

Submissions:

Homework-1 Grading: Yes
Homework-2 Grading: Yes
Homework-3 Grading: Yes
Homework-4 Grading: Yes

Grading:

Midterm exams: 20% * 2

Final exam: 30%

Assignments: 5% * 4

Quizzes: 1% * 10

Prerequisites: There are no prerequisites for the course.

Supplementary Courses: Since this is an introductory course to programming, no supplementary courses are required.

CENG 115 Discrete Structures

Logic, propositions and proof methods. Sets. Functions, sequences and summations. Algorithms and complexity analysis. Integers and division. Matrices. Mathematical induction. Recursive definitions and algorithms. Probability theory. Counting techniques. Graphs. Trees.

Course Objectives

1.To teach the problem solving strategies, techniques, and tools
2.To provide students with the ability of logical and mathematical thinking
3.To form the background related to the discrete mathematics concepts and the corresponding mathematical notations
4.To develop the critical thinking ability by introducing algorithmic solutions to some abstract problems

Recommended or Required Reading

Zeitz, Paul; 1999; “The Art and Craft of Problem Solving”; John Wiley & Sons, Inc. ,Rosen, Kenneth H.; 2007; “Discrete Mathematics and its Applications”; 6th Ed.; McGraw-Hill ,Stein, Clifford, Drysdale, Robert L., Bogart, Kenneth; 2011; “Discrete Mathematics for Computer Scientists”; Pearson

Learning Outcomes:

1. To be able to compare and use different discrete structures
2. To be able to analyze problems and identify appropriate solution schemes
3. To be able to demonstrate abstraction ability

Topics
Propositional Logic
Predicate Logic
Proof Techniques
Sets and Functions
Sequences and Summations
Algorithms and complexity analysis
Integers, divisibility, and matrices
Mid-term Exam
Induction and recursion
Counting, pigeonhole principle, permutation, and combination
Discrete probability
Recurrences
Relations
Graphs

Grading

Midterm 25%

Quiz 15%

Homework 30%

Final 30%

Second Year

Course Code Course Name Description Prerequisite(s)
CENG 211 Programming Fundamentals

Control Structures, Classes and Methods, Inheritance, Polymorphism, Interfaces, Exception Handling, Streams and File I/O, Recursion, Dynamic Data Structures and Generics.

Course Objectives

To provide students with the ability of object oriented programming

To teach object oriented software design at beginners level

To teach object oriented coding of fundamental algoritms and data structures

To teach Java API definition and use at intermediate level

To provide students with the ability of simulation programming.

Recommended or Required Reading

Walter Savitch; 2012; “Java: An Introduction to Problem Solving and Programming”; 6th Ed.; Upper Saddle River, NJ: Prentice-Hall; ISBN 0-273-75142-5 ,Deitel&Deitel; “Java How to Program”; 9th Ed.; Upper Saddle River, NJ: Prentice-Hall; ISBN 0-273-75976-0

Learning Outcomes:

Upon the completion of this course a student :

1. Apply the operations for maintaining common data structures in object-oriented way
2. Design algorithms in object-oriented way for solving computing problems
3. Know and compare different programming approaches
4. Analyze problems, design and implement solutions
5. Demonstrate the ability to abstract in object oriented context
6. Apply computer engineering methods to real world problems

Topics
Introduction to Object Oriented Programming
Control structures and data storage
Classes, objects, and methods
Classes, objects, and methods
Inheritance
Polymorphism
Midterm
Abstract Data Structures
Java API programming
Exception and error management
Object oriented analysis and design
Design and code with UML class diagrams
Simulation programming
Repetition of important topics and evaluation of the period

Grading

Midterm 25%

Quiz 20%

Homework 20%

Final 35%

CENG 113
CENG 212 Concepts of Programming Languages

In this course, the fundamental concepts of programming languages and different programming paradigms will be covered. Students will gain knowledge in the following areas: Introduction to Programming Languages: The history of programming languages, types, and fundamental features. Programming Language Syntax: The structure of programming languages, syntax rules, and structural elements of a language. Names, Scopes, and Bindings: Relationships between variables, functions, and other constructs, scope concepts, and how bindings work. Control Flow: Conditional statements, loops, and control structures for managing program flow. Functional Languages (Introduction to Scheme): Functional programming paradigm, features of functional languages, and an introduction to the Scheme language. Data Types: Definition of data types, basic data structures, and type conversions. Subroutines and Control Abstraction: Use of subroutines, functions, and procedures, and control abstraction techniques. Logic Languages (Introduction to Prolog): Logic programming paradigm, fundamentals of Prolog, and practical applications. Data Abstraction and Object Orientation: Object-oriented programming, classes, objects, inheritance, and abstraction. Throughout the course, students will be exposed to how various programming languages are used in practice, as well as a comparison of languages from different paradigms. Additionally, essential programming skills, such as understanding the compilation and execution phases of a program and writing high-level functions, will be developed.

Course Objectives

The aim of this course is to teach students the fundamentals of programming languages from different paradigms. Students will be able to understand the concepts of syntax, scope, and binding in the context of programming languages and write programs based on these concepts. Additionally, they will gain knowledge of functional and logic programming languages and learn the basic concepts related to these paradigms through practical applications. By the end of the course, students will have the skills to easily learn a new programming language and write high-level functions.

Recommended or Required Reading

  • M. L. Scott, Programming Language Pragmatics (4th Edition), Morgan Kaufmann, 2016.
  • R. W. Sebesta, Concepts of programming languages (11th Edition), Pearson, 2016.

Learning Outcomes
1. Being able to use languages belonging to different programming paradigms.
2. Demonstrating the ability to easily use a new programming language.
3. Being able to explain the compilation and execution phases of a program.
4. Being able to write high-level functions.

 

Topics
Introduction to Programming Languages
Programming Language Syntax
Names, Scopes, and Bindings
Control Flow Structures
Functional Languages (1)
Functional Languages (2)
Midterm Exam
Data Types (1)
Data Types (2)
Subroutines and Control Abstraction (1)
Subroutines and Control Abstraction (2)
Logic Programming (1)
Logic Programming (2)
Data Abstraction and Object Orientation

Assessments

Midterm 40%

Homework 20%

Final 40%

CENG 213 Theory of Computation

Abstract automata, especially finite state machines; push-down automata; and Turing machines. Formal languages, especially context-free languages. The relationship between automata and languages. Computability and solvability.

Course Objectives

To teach mathematical proof making.

To teach the concepts of automata, formal languages, and Turing machines.

By giving the theoretical grounds in the construction of computers, to ensure the apprehension of the limitations of computing machines.

Recommended or Required Reading

Lewis, H. R., & Papadimitriou, C. H. (1998). Elements of the Theory of Computation. ACM SIGACT News, 29(3), 62-78.
Sipser, M. (1996). Introduction to the Theory of Computation. ACM Sigact News, 27(1), 27-29.

Learning Outcomes

  1. To be able to classify language definitions.
  2. To be able to analyze problems and provide appropriate representations for them.
  3. To be able to show abstraction ability.
  4. To be able to identify some difficult problems in computer science. 
Topics
Introduction
Sets, Relations, and Functions
Basic Proof Techniques, Closures
Languages
Deterministic and Nondeterministic Finite Automata
Regular Expressions
Context-Free Grammars
Pushdown Automata
Turing Machines
Decidability
The Chomsky Hierarchy
Computational Complexity
NP-Completeness
NP versus P

Grading

Midterm 35%

Final 45%

Homework 20%

CENG 214 Logic Design

The course content provides the student with the basic knowledge, concepts and experiences required to understand and design computer architecture. The content includes theoretical and experimental studies such as boolean algebra, logic gates, multi-level logic gates, combinational arithmetic and logic systems, sequential logic, registers and counters, memory units and problem solving with programmable logic. The student’s ability to design logic and arithmetic circuits theoretically, test them and apply them in a laboratory environment is developed.

Course Objectives

Introduction to computer architecture. Number systems. Boolean algebra. Logic gates and flip-flops. Combinational and sequential circuit design. Strings, counters. Bus transfer. RAM, ROM units. Instruction execution and loop control.

Learning Outcomes:

  1. To be able to understand computer architecture and processes.
  2. To be able to understand how arithmetic and logic processing unit works and the ability to design.
  3. To be able to understand memory unit and the ability to understand how it works.
  4. To be able to design circuitry for defined problems.

Recommended or Required Reading

Logic and Computer Design Fundamentals, 4th Edition (2007) Prentice – Hall [M. Morris Mano, Charles Kime] (textbook) Digital Design, 4th Edition (2007) Prentice – Hall [M. Morris Mano, Michael D. Ciletti]

Week Topics
1 Number systems
2 Arithmetic operations and base conversions
3 Gate circuits and Boolean equations
4
Circuit optimization and K-maps
5 Additional gate types and tri state logic
6 Design steps, hierarchical design, and technology mapping
7 Midterm
8 Design with decoders, encoders, multiplexers, demultiplexers
9
Binary adders and binary adder-subtractors
10
Binary multiplication and design by contraction
11
bcd adder, carry lookahead generator, magnitude comparator
12
Storage elements and analysis
13
Sequential circuit design
14
State machine design
Grading:
  • Final Exam: 20%
  • Midterm Exam: 30%
  • Lab: 40%
  • Homework: 10%
CENG 215 Circuits and Electronics

Fundamentals of electric circuits, including the basic concepts (e.g. voltage, current, power), basic components (e.g. resistance, inductance, capacity, MOS transistor, operational amplifier), basic laws (e.g., Ohm’s law, Kirchhoff’s law, equivalent resistance exchange) and methods of circuit analysis. Transient analysis, frequency response, Laplace transforms, Fourier series, introduction to electronic materials and devices, diodes, bipolar transistors and logic families, MOS technology.

Course Objectives

1. Understand the basic electrical engineering principles and abstractions on which the design of electronic systems is based. These include lumped circuit models, digital circuits, and operational amplifiers

2. Use these engineering abstractions to analyze and design simple electronic circuits

3. Understand the relationship between the discrete structures and corresponding digital circuit implementations

Recommended or Required Reading

Anant Agarwal, Jeffrey H. Lang Foundations of Analog and Digital Electronic Circuits . 2005. Morgan Kaufmann Pub

Learning Outcomes

1.To be able to analyse circuits and devise solutions to design problems.
2.To be able to design and conduct experiments, to be able to interpret the results.
3.To be able to analyse and use fundamental electronics equipment, to design electronic circuits.
4.To be able to realize logic gates based the fundamentals of digital electronics.

 

Week Topics
1 Introduction to electrical circuits and basic components
2 Circuit laws and theorems
3 Methods of circuit analysis
4 Analysis of first order circuits
5 Analysis of second order circuits
6 Dependent sources and amplifiers
7 Large and small signal models, sinusoidal response
8 Mid-term Exam
9 Operational amplifier (OPAMP) abstraction
10 The impedance model
11 Filters
12 The digital abstraction
13 Realizing digital gates
14 Energy and power

Grading

Written Midterm Exam : %35

Project Studies: %20

Written Final Exam: %45

CENG 216 Numerical Computation

Surveys and applications of numerical techniques related to matrix inversion, systems of linear equations and optimization, finite difference expressions, interpolation and approximation, numerical differentiation and integration. The problems of speed, accuracy and applicability of the topics are examined with related algorithms. The applications of these numerical methods and subjects on computers using efficient programming techniques and with necessary programming languages.

Learning Outcomes:

  1. To be able to explain effects of  finite representation of real numbers for a given algorithm.
  2. To be able to find numerical errors in calculations and compare numerical errors of different algorithms for the same problem.
  3. To be able to solve numerical problems that include derivative, integral, interpolation and/or optimization.
  4. To be able to apply recursive solutions to numerical problems.
  5. To be able to implement linear/non-linear systems for the given problem.
  6. To be able to apply appropriate numerical algorithm for given linear/non-linear system.
Week Topics
1 Introduction to numerical calculation methods
2 Numerical calculation errors
3 Taylor series
4 Taylor series cont.
5 Forward and backward differences
6 Central differences, polynomials
7 Interpolation & extrapolation
8 Finding roots of equations, Newton method
9 Finding roots of equations, Secant method
10
The solution of simultaneous linear algebraic equations
11 Matrix inversion
12 Least-squares curve fitting
13 Functional integration
14 Numerical integration

Reference book(s):

  • Numerical Analysis, The new international edition, 2ed, Timothy Sauer
  • Numerical Algorithms: Methods for Computer Vi- sion, Machine Learning, and Graphics, J. Solomon Matrix Computations (4th Ed.), G. H. Golub and C. F. Van Loan

Grading:

  • Homework-I 10%
  • Homework-II 10%
  • Midterm Exam-I 20%
  • Midterm Exam-II 20%
  • Final Exam 40%

Submissions:
This course will give two comprehensive assignments that cover the theoretical topics covered throughout the semester and apply the numerical methods taught in the course to real-life problems.
Assignment1 Submission Grading: Yes
Assignment2 Submission Grading: Yes

Prerequisites: There are no prerequisite courses.

Supplementary Courses:
Sufficient knowledge of linear algebra will be very beneficial.

CENG 218 Analysis and Design of Algorithms

The role of algorithms in computing, Growth of functions, recurrences, probabilistic analysis and randomized algorithms, dynamic programming, greedy algorithms, advanced data structures, graph algorithms, NP-Completeness.

Course Objectives

With both the theoretical and practical knowledge gained through this course a student is expected to have the necessary qualifications and background to be able to solve the mathematical problems encountered in real life situations

Recommended or Required Reading

Introduction to Algorithms, 3rd Ed., T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein, MIT Press

Learning Outcomes:

1. To be able to propose a solution using algorithmic approach
2. To be able to identify algorithm design alternatives for a given problem
3. To be able to analyze the complexity of applications

 

Topics
Overview
Complexity Theory
Asymptotic Notation
Recurrences
Dynamic Programming
Analysis, Design & Implementation
Midterm
Greedy Algorithms
Merging
Advanced Data Structures
Graph Algorithms
String Matching
Sorting
Problem solving

Grading

Midterm 35%

Homework 20%

Final 40%

Quiz 5%

CENG 222 Probability and Statistics

This course provides an elementary introduction to probability and statistics with an emphasis on experimentation using computer programming. Topics: permutation, combination, random variables, probability distributions, Bayesian inference, hypothesis testing and confidence intervals.

Course Objectives

Elementary probability theory, conditional probability and independence, random variables, distribution functions, joint and conditional distributions, law of large numbers, central limit theorem, parameter estimation, confidence intervals, and hypothesis testing.

Recommended or Required Reading

Peter Olofsson, Mikael Andersson, Probability, Statistics, and Stochastic Processes, Wiley. ,Michael Baron, Probability and Statistics for Computer Scientists, CRC Press. ,Allen B. Downey, Think Stats: Probability and Statistics for Programmers, Green Tea Press.

Learning Outcomes:

1.To be able to explain and apply the concepts of probability and random variables.
2.To be able to describe and use common probability distributions and their properties.
3.To be able to employ descriptive statistics.
4.To be able to estimate distribution parameters.
5.To be able to calculate confidence intervals.
6.To be able to conduct hypothesis testing.
7.To be able to utilize computation as a tool to explore concepts in probability and statistics and to do quantitative analysis.

Topics
Population and Variates, Tables and Graphs, the Center of a Set of Observations
The Measure of Variability, Samples and Population
Probability
Random Variables, Expectation of a Random Variable
Discrete Random Variables, Uniform, Bernoulli, Binomial and Poisson Distibutions
Continuous Random Variables, Normal Distribution
Midterm
Estimation
Testing Hypotheses
Testing Hypotheses, Large Sample Tests
Testing Hypotheses, Small Sample Tests
Testing Hypotheses Using X^2 Distibution
Linear Regression and Correlation
Review

Grading

Final Exam 40%

Quiz 10%

Homework 20%

Midterm 30%

Third Year

Course Code Course Name Description Prerequisite(s)
CENG 311 Computer Architecture

Basic computer organization concepts. Instruction set architecture. Assembly-level programming. Processor design. Pipelining. Data and control hazards. Memory hierarchy and cache. Parallelism and system performance.

LECTURES & LABS

Lectures: 3 hours each week

Lab sessions: 2 hours each week

OBJECTIVE

To equip students with fundamental knowledge of computer organization and design.

1. Understand basic computer organization concepts.
2. Design and implement assembly-level programs.
3. Understand processor design and instruction execution.
4. Design and implement a single-cycle processor using HDL.
5. Understand memory hierarchy and cache.
6. Evaluate system performance.

LEARNING OUTCOMES

1. Ability to design general-purpose and application-specific microprocessors
2. Ability to demonstrate experience in microprocessor implementation and testing
3. Ability to program in assembly language

TEXTBOOK

Computer Organization and Design: The Hardware/Software Interface (The Morgan Kaufmann Series in Computer Architecture and Design), 5th Edition, by David A. Patterson, John L. Hennessy.

Week Lecture Topic
1 Intr. to comp. tech.
2 MIPS assembly (instruction set)
3 MIPS assembly (loops)
4 MIPS assembly (procedure calls)
5
MIPS assembly (machine language)
6
Computer arithmetic
7
Processor (datapath)
8
Processor (control)
9
Pipelining
10
Data and control hazards
11
Memory hierarchy and cache
12
Cache design
13
Parallelism
14
System performance
CENG 214
CENG 312 Computer Networks

Overview of computer networks; packet switching, Internet, layered architecture; network applications; web, email, domain name system; reliable data transfer, congestion and flow control, UDP, TCP; switching, forwarding, routing, IP; medium access control, local area networks, Ethernet.

LECTURES

3 hours each week

OBJECTIVE 

To equip students with fundamental knowledge of computer networks.

1. Understand the general structure of computer networks and the layered architecture.
2. Examine the operating principles of fundamental network protocols.
3. Analyze the algorithms used for routing, congestion control, flow control, medium access control.

LEARNING OUTCOMES

1. Ability to analyze communication systems using fundamental concepts of communication.
2. Ability to analyze the layered network model and Internet protocols.
3. Ability to design networks and protocols.

TEXTBOOK

Computer Networking: A Top-Down Approach 8th edition, Jim Kurose, Keith Ross, Pearson, 2022.

Week Topic
1 Overview of Networks (Internet, packet switching)
2 Overview of Networks (Routers, layered arhitecture)
3 Application Layer (Principles of network applications)
4 Application Layer (HTTP, SMTP, DNS)
5
Application Layer (Socket programming)
6
Transport Layer (Reliable data transfer)
7
Transport Layer (UDP, TCP services)
8
Transport Layer (Congestion and flow control)
9
Network Layer (Switching, forwarding)
10
Network Layer (Routing, OSPF, BGP)
11
Network Layer (Software defined networks SDN)
12
Data Link Layer (Error control, medium access MAC)
13
Data Link Layer (LANs)
14
Data Link Layer (MPLS)
CENG 315 Information Management

Introduction to Database Management Systems, Architecture of Database Management Systems, Relational Model, Relational Database Design, Relational Algebra, SQL (DML), SQL (DDL), Normalization, Consistency and Security, Query Optimization, Concurrency, Term Projects

Course Objectives

Gain ability to design, implement and query a database which is a component of an information system, teach the methods and techniques to assure the consistency in databases to make them to be able to create and enhance available databases, make it possible to understand and use query techniques in order to be efficient users of data management layer of an information system.

Recommended or Required Reading

Edward Sciore, Database Design and Implementation, Second Edition, Wiley, 2020. ,Raghu Ramakrishnan and Johannes Gehrke, Database Management Systems, McGraw-Hill, 2001, 3rd Edition. ,J. Ullman, Principles of Database Systems, Second Edition, Computer Science Press, 1982. ,R. Elmasri, S.K. Navathe, Fundamentals of Database Systems, Third Edition, Addison-Wesley, 2000.

Learning Outcomes:

Upon the completion of this course a student :

1. Capacity to design a relational database

2. Capacity to create a relational database

3. Master relational algebra and SQL

4. Learn concurrecy methods, normalization, security and consistency methods in database management systems

5. Use databases

Topics
Introduction to Database Management Systems
Architecture of Database Management Systems
Relational Model
Relational Database Design
Relational Algebra
SQL (DML)
SQL (DDL)
Normalization
Consistency and Security
Transaction Management
Recovery
Index, Views
Efficient Query Optimization
Term Projects

Grading

Midterm 25%

Application / Practice 10%

Research Presentation 25%

Final 40%

CENG 316 Software Engineering

Reference Standards

– Software Design: IEEE STD 1016 – Systems Design—Software Design Descriptions
– Software Test: IEEE STD 29119 – Software and Systems Engineering — Software Testing

Course Objectives

By the end of this course, students will gain knowledge and practical skills in:
– The role of the software engineer, Software engineering principles, Software development life cycle (SDLC) models, Requirements analysis, specification, system design, Verification and validation processes, Use of software quality metrics, Team organization in software projects, and Human-computer interaction (HCI) design.

Weekly Course Schedule

Week Title Content
1 Introduction Software Development Life Cycle, Team Formation, Course Overview
2 Software Design Basic Design Principles, Software Architecture
3 Design Standards IEEE 1016, formatting rules, templates
4 Design Draft Discussion Group review of initial design submissions
5 Design Review Meeting Group presentations and instructor feedback
6 Software Testing Basic concepts, test design, strategies
7 Testing Standards IEEE 29119 and documentation templates
8 Test Report Draft Discussion Peer review of initial test reports
9 Test Report Review Meeting Improved test strategies discussion
10 Implementation First release demonstration
11 Updated Reports Discussion Design & test reports review
12 Updated Reports Discussion Final feedback for improvement
13 Final Version Demo Final delivery of the complete system
14 Final Exam Written exam or project presentation

Deliverables and Evaluation

Each student group (5–8 members) will complete the following artifacts based on a given project topic:
– Requirements Analysis
– Software Design Document (SDD)
– Test Report
– Software Implementation (working system)

Submission and Evaluation Table

Deliverable Graded
Design Draft Submission Not Graded
Design Report Submission Graded
Design Review Report Submission Graded
Updated Design Report Submission Graded
Test Report Draft Submission Not Graded
Test Report Submission Graded
Test Review Report Submission Graded
Updated Test Report Submission Graded
First Release Submission and Demo Graded
Final Release Submission and Demo Graded

Grading Breakdown

Component Weight (%)
Software Design 15%
Design Review 3%
Test Documents 15%
Test Review 3%
Software System 20%
Final Exam 30%
Peer Assessment 14%

Learning Outcomes

C1. Identify functional requirements for a given project

C2. Distinguish between functional and non-functional requirements

C3. Apply object-oriented design methodology

C4. Prepare a project definition document

C5. Utilize and apply software development process models

Prerequisite Courses

– Fundamentals of Programming (CENG211)
– Information Management (CENG315)
– Project Management (CENG323)

Having prior knowledge and experience in analysis and design methodologies will be very beneficial.

CENG 318 Human Computer Interaction

A review of HCI concepts and history, input devices and interaction techniques, information appliances, user interface design paradigms, 3D user interfaces, adaptive interfaces, user modeling, speech recognition and conversational interfaces, wearable computers, multimodal interfaces, and perceptual interfaces.

Course Objectives

To introduce students with the methods and principles of human factors
To teach the concepts of human computer interaction (HCI) and user-centered design (UCD)
To provide students with the ability to make usability evaluation

Recommended or Required Reading

Dix, A., Finlay, J. , Abowd, G., and Beale, R. ;2003; “Human-computer interaction (3rd ed.)”; Prentice Hall. ,Preece, J., Rogers, Y., and Sharp, H.;2002; “Interaction design : beyond human-computer interaction”; John Wiley & Sons. ,Norman, D.; 1988; “The design of everyday things”; New York: Basic Books. ,Carroll, J.M. ;2001; “Human Computer Interaction in the New Millenium”; Prentice Hall.

Learning Outcomes:

1.To be able to gain an understanding of human-computer interaction theory and research.
2.To be able to recognize the impact of system design on users’ attitudes and behaviors.
3.To be able to describe user-centered design and evaluation processes.
4.To be able to employ user-centered design processes in designing and building systems.

Week Topics
1 Introduction, history of HCI.
2 Affordance, usability. Usability principles.
3 Limitations of technology. New technologies in HCI.
4 Prototyping techniques.
5 Evaluating usability. Predictive and interpretive evaluation.
6 User interface design paradigms. Process of interaction design.
7 Midterm exam.
8 User modeling and the user profile. Adaptive interfaces.
9 3D User interfaces, augmented reality.
10 Speech recognition and conversational interfaces.
11 Vision-based, perceptual interfaces.
12 Ubiquitous Computing. HCI Future Directions: Role of AI, networks, etc.
13 Project Presentations.
14 Project Presentations.

Grading

Midterm : 10%
Research Presentation : 10%
Final : 20%
Quiz : 10%
Homework : 10%
Project : 20%
Report : 10%
Small Group Work : 10%

CENG 322 Operating Systems

The course provides the main operating system functionalities and implementation details. It covers basic operating systems concepts, introduces process concepts and process management policies, discusses main memory and virtual memory techniques, and storage and I/O management issues.

Course Objectives

1. Understand basic operating systems concepts.

2. Understand process/thread execution, synchronization, and scheduling issues.

3. Understand operating system memory management policies.

4. Understand storage management techniques.

Recommended or Required Reading

A. Silberschatz, P.B. Galvin, G. Gagne: Operating System Concepts, 10th Edition, John Wiley & Sons, 2018.

Learning Outcomes:

1. Analyze and design modern architecture and operating systems by acquiring the basic concepts of operating systems.

2. Analyze systems that include operating systems and identify related problems.

3. Compare different solution methods for operating system problems and choose the most appropriate one.

LECTURE LAB
Introduction+Basics – CH1 Linux Intro
OS Structures – CH2 Shell script
Processes – CH3 C
Processes – CH3 C Pointer
IPC – CH3 Process
Threads – CH4 Process
Threads – CH4 Process
Synchronization – CH6 Threads
Midterm Threads
Synchronization – CH7 Threads/Synchronization
CPU Scheduling – CH5 Programming Assignment 2 DEMO
Main Memory – CH9 Programming Assignment 3 DEMO
Virtual Memory – CH10

Grading

Midterm 20%

Assignments 40%

Final 40%

CENG 323 Project Management

Reference book(s):

  • IEEE Std 830-1998, IEEE Recommended Practice for Software Requirement Specifications
  • IEEE 16326- Systems and Software Engineering – Lifecycle Processes- Project Management
  • IEEE Std 1058- Standard for Software Project Management Plans

Course Objectives:

By the end of this course, students will be able to:

Comprehend the software development lifecycle, covering aspects such as problem analysis, software requirements analysis, and software project management.

Week Course Outline Content
1 Course Introduction Software Development LifeCycle
Team Formation
Preparing a Project Charter
2 Problem Analysis Problem Analysis
eEPC Tool Introduction
3 AS-IS Draft Discussion
4 TO-BE Draft Discussion
5 AS-IS&TO-BE Review Meeting
6 Software Requirement Analysis Use case, User Story, UML
7 IEEE SRS Standard
User Interface Design Tool
8 SRS Draft Discussion
9 SRS Review Meeting
10 Software Project Management Software Project Management
11 IEEE SPM Standard
Project Management Tools
12 SPMP Draft Discussion
13 SPMP Review Meeting


Submissions/Homeworks/Projects:

In this course, a project description is given to the class, and students form teams of 5-8 members.  Each team participates in a range of activities, from preparing the project charter to problem analysis, requirements analysis, and software project management. The output documents of these activities are the Project Charter, the Problem Analysis Report (including AS-IS and TO-BE), the Software Requirement Specification, and the Software Project Management Plan.

Submission Grading
Project Charter Submission will be graded
AS-IS Draft Submission will NOT be graded
TO-BE Draft Submission will NOT be graded
Problem Analysis Report Submission will be graded
Problem Analysis Review Report Submission will be graded
Updated Problem Analysis Report Submission will be graded
SRS Draft Submission will NOT be graded
SRS Submission will be graded
SRS Review Report Submission will be graded
Updated SRS Submission will be graded
SPMP Draft Submission will NOT be graded
SPMP Submission will be graded
SPMP Review Report Submission will be graded
Updated SPMP Submission will be graded

Grading:
Project Charter %2
Problem Analysis %15
– PA Review %3
SRS %15
– SRS Review %3
SPMP %15
– SPMP Review %3
Final Exam %40
Peer Assessment %14

Course Learning Outcomes:

C1.To be able to recognize the personal and technical properties required for a project manager.
C2.To be able to identify the fundamental steps of project management and risk factors.
C3.To be able to describe the outlines of preparation, planning, application, inspection and completion phases of a project.
C4.To be able to tell the fundamental economic concepts required for a project manager.
C5.To be able to demonstrate computer-aided project planning and management with examples using MS Project software.

Overlapping with or complementing topics in courses:

Familiarity with the fundamentals of the field

  • Programming Fundamentals (CENG211) is a must.
  • You might be taking Information Management (CENG315) at the same time.
  • Prior knowledge and experience of an analysis and design methodology will be very beneficial.
CENG 370 Mainframe Computing

Mainframe Computers, Hercules mainframe emulator, VM/SP Operating System, GCS/RSCS, Rexx and COBOL Programming

Course Objectives

This course introduces students to the fundamentals of mainframe computer systems, including their history and their current implementations on personal computers.

Recommended or Required Reading

IBM.(1988). Virtual Machine/System Product Release 6Terminal Reference, IBM,GC19-6206-05, IBM Press ,Hugenbruch,BrianW,The Basics of Using z/VM, IBM Press, www.vm.ibm.com/education/basics/j0usezvm.html ,Fosdick, Howard. (2005). Rexx Programmer’s Reference, Wiley Publishing ,IBM. (1982).VM-SP Introduction,GC19-6200-1 File No. S370/4300-20, IBM Press ,IBM. (1984). VM/SP Installation Guide, Release 3.1,IBM Press ,Lewis,Richard.(2015).z/VM For beginnersHands onLab,share.confex.com/share/125/webprogram/Session17471.html ,IBM.(2012).Introduction to the newMainframe,www.redbooks.ibm.com/abstracts/sg246366.html

Learning Outcomes

1. Learn the workings of the IBM mainframe operating systems
2. Be able to operate, network and administer a mainframe operating system
3. Be able to identify and write programs in Rexx and in COBOL language on the mainframe
4. Be able to present project results

Introduction to Mainframes
Installation of Hercules mainframe emulator
General overview of IBM mainframe operating systems
Virtual Machine Concepts
VM/SP Introduction and Features
Configuring and administration of VM/SP
Configuration of virtual devices
Configuration of GCS and RSCS
Ağ temelleri ve IP-NJE
Paging, Virtual Storage and the Control Program
The REXX Programming language
COBOL: Common Business Oriented Language
Batch Processing, JCL
Security and Mainframes

Grading

Midterm 20%

Homework 30%

Research Presentation 25%

Final 25%

CENG 381 Stochastic Processes

A brief review of the concepts of probability, random variables, and parameters; probability distributions; moments; inequalities related to probabilities; the central limit theorem; stochastic processes; the Poisson process; birth-death processes; Markov chains; an introduction to queueing theory and its fundamental concepts; Little’s Law; and M/M/1 queueing systems.

Course Objectives

To develop the ability for stochastic, logical, and mathematical thinking. To build the foundational knowledge necessary for understanding stochastic systems. To equip students with the ability to analyze and interpret simple queueing systems. To foster the ability to understand and interpret certain performance criteria of stochastic systems. To possess knowledge of classical and computationally intensive statistical methods, and to be able to perform probabilistic modeling.

Recommended or Required Reading

Arnold O. Allen.(1990) Probability, Statistics, and Queueing Theory with Computer Science Applications. (2nd Ed.), Academic Press, Boston,Sheldon M. Ross (1996) Stochastic Processes, (2nd Ed.) J. Wiley & Sons. New York

Learning Outcomes

1.The ability to understand and define random variables.

2.Gaining knowledge of stochastic processes and the ability to perform basic analyses.

3.The ability to understand queueing systems and to analyze simple queueing models.

4.The ability to compute and analyze certain performance criteria in queueing systems.

Topics
Introduction
Quick Review of Probability
Random Variables, Parameters of Random Variables, Jointly Distributed Random Variables
Transform Methods, Moment Generating Function, Inequalities
Probability Distributions – Discrete Random Variables
Probability Distributions – Discrete RV s, Continuous RV s
Probability Distributions – Continuous Random Variables – Central Limit Theorem, Applied Transforms
Midterm
Stochastic Processes, Poisson Process
Birth+Death Process
Markov Chains
Queueing Theory, Introduction, Describing a Queueing System
Little s Law, M/M/1 Queueing System
Other Queueing Systems

Grading

Midterm: 40%

Final: 60%

CENG 382 Information Theory

An introduction to Shannon’s information theory and elementary binary coding schemes with and without noise. The concept of information, entropy, simple sources, Markov sources, continuous sources, information channels, average error, ambiguity, transformation, capacity, noiseless coding, Kraft-McMillan theorem, Shannon-Fano and Huffmann coding schemes, error-correcting codes, linear codes, cyclic codes. Data Compression.

Course Objectives:

To teach the fundamental concepts of information theory. To teach that how to define and formulate the problems of communication and signal processing. Teaching that how to solve the problems for communication and signal processing.

Recommended or Required Reading:

T. M. Cover, J. A. Thomas, ‘Elements of Information Theory’, 2nd. Edition, Wiley,2006 ,P. S. Nuggehalli, ‘Information Theory and Coding’, CEDT, IISc, Bangalore, http://nptel.iitm.ac.in/courses/Webcourse-contents/IISc-BANG/Information%20Theory%20and%20Coding/Learning%20Material%20-%20ITC.pdf ,R. G. Gallager, ‘Principles of Digital Communication’, Chapters 1 to 3, Cambridge Univ. Press, 2008 ,R. G. Gallager, ‘MIT 6.450 Principles of Digital Communications I, Lectures 1 to 7’; YouTube: MIT OCW, 2006 ,R. W. Yeung, ‘A First Course in Information Theory’, NY: Kluwer Academic/Plemu Publishers, 2002 ,A. E. Gamal and Y.-H. Kim, ‘Lecture Notes on Network Information Theory’, online, 2010

Learning Outcomes:

1. To do analyzing and modeling by using of fundamental concepts of information theory for signal processing and communication.

2. Analyzing, defining and doing research capability for the new requirements of information theory depend on technological evolution.

3. To have the ability for analyzing, developing and using of information theory for interdisciplinary projects.

4. To be able to measure and analyse the signal proceesing and communication quality and efficiency.

Topics
Introduction; Related concepts.
Entropy, relative entropy and mutual information
Asymptotic equipartition property
Entropy rates of stochastic processes
Data compression -I
Data compression -II
Midterm
Channel capacity
Differential entropy
The Gaussian channel
Network Information Theory – I
Network Information Theory – II
Relevant topics in Information Theory today
Rate-distortion

Grading:

Midterm: 25%
Homework: 20%
Research Presentation: 20%
Final: 35%

CENG 383 Real-Time Systems

Specification and verification techniques for real-time systems with many interacting components. formal design of real-time systems using (a) programming languages with unambiguous semantics of time – related behavior and (b) scheduling algorithms. Real-time operating systems, concepts of programming languages for real-time systems. Synchronous programming languages for reactive systems and their mathematical background. Software development for real-time systems.

Course Objectives

To introduce the fundamentals of real-time systems. To be able to create real-time operating systems.

Recommended or Required Reading

Phillip Laplante, Real-Time Systems Design and Analysis – An Engineer’s Handbook, IEEE Press, 1993.

S.H.Son, Advances in real-time systems, Englewood Cliffs, N.J.: Prentice Hall, c1995.

Learning Outcomes

1. To classify various kinds of real-time systems
2. To identify real-time sytems and design by formal techniques.
3. To be able to create real-time kernels, and to develop programmes on operating systems
4. To demonstrate the ability to use formal methods

Topics
Fundamentals of Real-Time Systems
Review of Computer Architectures in terms of the Realization of Real-Time Systems
Real-Time Definition and Design Techniques
Formal Methods: Timed Automata and Petri-Nets, Model Checking
Real-Time Programming Languages
Synchronous Programming Languages
Real-Time Kernels – I: Theoretical Findings, Scheduling Algoritms
Laboratory Work – I (Advanced C and Assembly Programming)
Real-Time Kernels – II: POSIX
Fault-Tolerance
HW/SW Integration, Performance Analysis and Optimization
Laboratory Work – II (Real-Time Kernel Design: Bootstrap, process management)
Laboratory Work – III (Real-Time Kernel Design: Time Management, Interrupt Mechanisms)
Laboratory Work – IV(Real-Time Kernel Design: Coding Real-Time Scheduling Algorithms)

Grading

Written Midterm Exam: 20%

Written Final Exam:  30%

Assignments: 10%

Term Project:  40%
CENG 384 Microprocessors

8051 hardware and software. 8051 assembly language. 8051 architecture. 8051 I/O port programming, timer programming, serial port programming, interrupt control.

Course Objectives

Elements of microprocessors and microcomputers, software and hardware for microprocessors; microcontrollers; embedded system design with microcontrollers, memory interface, analog-digital input/output interfaces and interrupt interface of typical microprocessors/controllers; programming with assembly.

Recommended or Required Reading

The 8051 Microcontroller, 4th Edition (2007) Prentice- Hall [Scott MacKenzie, Raphael Chung-Wei Phan] (textbook)

Learning Outcomes

OC1: Teaching 8051 programming with assembly language.
OC2: Explain and compare the concepts of microprocessor and microcontroller.
OC3: To teach the 8051 microcontroller family and its architecture.
OC4: Explain the software and hardware features of 8051.

Topics
Course introduction and semester overview
introduction to microcomputers + eprom
BCD to 7-segment display with eprom
8051 hardware summary
8051 instruction set summary
8051 instruction set summary
Midterm
Calculator design
8051 timer operation
Seconds counter experiment
ADC + pod + LM135
Temperature measurement via ADC
8051 serial port operation
8051 interrupts

Grading

Midterm 40%

Final 20%

Lab 40%

CENG 385 Mathematical Logic

Using propositional, predicate and temporal logics, in order to logically analyse, specify and solve complex problems.

Course Contents

1.Specify in mathematical logics sentences given in natural languages

2.Infer mathematical conclusions from specifications given in mathematical logics

3.Specify mathematically uncertainty, multi-valence interpretation and temporal change of complex problems

4.Solve sample complex problems using automated reasoning applications

Recommended or Required Reading

Mendelson, Elliott; 1997; “Introduction to mathematical logic”; Chapman& Hall; ISBN 0-412-80830-7 ,Bell,J.L.; 1997; “A course in mathematical logic”; 1997; N.H.; ISBN 0-7204-2844-0 ,Kelly, John; 1997; “The Essence of Logic”; ISBN 0-13-396375-6 ,Enderton, Herbert B.; 2001; “A mathematical introduction to logic”; Academic Press; ISBN 0-12-238452-0 ,Gabbay, Dov M.; 2000; “Temporal logic:mathematical foundations and computational aspects”; Oxford: Clarendon press; ISBN 0-19-853768-9

Learning Outcomes

1. Resolve ambiguities in natural language sentences

2. Specifies problems in mathematical logics

3. Explains mechanisms for automated reasoning

4. Develops logical systems

Topics
Overview
Propositions in Propositional Logic
Normal Forms in Propositional Logic
Semantics of Propositional Logic
Inference in Propositional Logic
Syntaxt and Semantics of Predicate Logic
Satisfiability of Predicate Logic
Formal Systems of Predicate Logic
Completeness of Predicate Logic
Undecidability and Incompleteness of Predicate Logic
Summary
Higher-Order Predicate Logics
Advanced Topics
Fuzzy Logic

Grading

Midterm: 24%

Quiz: 6%

Homework: 10%

Presentation: 30%

Final: 30%

CENG 386 Fuzzy Logic Systems

Analyse the mathematical basics of fuzzy logics; analyse properties of theoretical fuzzy logical systems; model flexible human logics using fuzzy systems; develop applications of sample fuzzy systems.

Course Objectives

1.Learn the mathematical basics of fuzzy logics.

2.Learn properties of fuzzy logical systems.

3.Develop sample applications that mimic the flexible logic of human.

Recommended or Required Reading

Nguyen, Hung. T; Walker, Elbert A.; 2005; “A First Course in Fuzzy Logic”, 3rd Edition; Chapman & Hall/CRC; ISBN-10: 1584885262; ISBN-13: 978-1584885269 ,Yen, John; Langari, Reza; 1999; “Fuzzy Logic: Intelligence, Control, and Information”; Prentice Hall; ISBN-10: 0135258170; ISBN-13: 9780135258170 ,Sivanandam, S.N.; Sumathi, S.; Deepa, S.N.; 2006; “Introduction to Fuzzy Logic Using MATLAB”; Springer; ISBN-10: 3540357807; ISBN-13: 978-3540357803

Learning Outcomes

1. Model adaptive logic using fuzzy logic

2. Simulate flexible system behaviours using fuzzy logic

3. Develop possibilistic systems

4. Evaluate reasonable system behaviour

Topics
Introduction
Fuzzy set theory
Fuzzy algebra
Fuzzy connectives and relations
Approximate reasoning
Fuzzy control
Evaluation
Fuzzy system simulation environments
Fuzzy logic simulation environments
Fuzzy logic simulation environments
Possibility theory
Incomplete data management
Fuzzy measures
Fuzzy logical soft computing

Grading

Midterm: 10%

Quiz: 10%

Homework: 10%

Presentation: 20%

Final: 30%

CENG 388 Web Programming

Web and .NET framework, software development with ASP.NET, web services programming, MVC programming.

Recommended or Required Reading

Cal Henderson, Building Scalable Web Sites: Building, Scaling, and Optimizing the Next Generation of Web Applications, O Reilly Media, 2006. ,John Allspaw, The Art of Capacity Planning: Scaling Web Resources, O Reilly Media, 2008 ,Theo Schlossnagle, Scalable Internet Architectures, Sams, 2006

Learning Outcomes

Upon the completion of this course a student :

1. To introduce Web software development with ASP .NET
2. To describe Web software development methodologies on .NET platform
3. To provide students with the fundamental concepts of Web Services
4. To demonstrate software project development with MS Visual Studio

TOPICS
Introduction to Web ve .NET Framework
IIS Web Servers
Introduction to MS Visual Studio
Software Project Development with MS Visual Studio
Introduction to ASP.NET
ASP.NET Page Life Cycle
Web Application Project Templates
Web Form /User Control/ Master Page Concepts
Client Side Programming
AJAX Programming
Introduction to Web Services
Web Service Development with ASP.NET
MVC Architecture
ASP.NET MVC Framework

Grading

Midterm: 25%

Homework: 40%

Final: 35%

CENG 389 Mobile Application Development

This course covers the fundamentals of programming mobile devices, how to access and use mobile device hardware, and the interaction between mobile apps and web services. Topics include the design and implementation of user interfaces on the Android platform, cross-platform mobile application development, and programming with sensor such as the camera and the GPS.

Course Objectives

To develop mobile device programming skills. To familiarize with the Android platform components. The develop practical skills in integrating mobile applications and web services.

Recommended or Required Reading

Android Programming: The Big Nerd Ranch Guide by Bill Phillips, Brian Hardy, 2nd Ed.

Learning Outcomes

Be able to explain the fundamental concepts of mobile device programming

Be able to design and implement mobile application user interfaces

Be able to design and implement mobile applications that utilize network services

Be able to analyze the user experience of mobile applications

Topics
Introduction to Mobile Programming
Applications and Activities
Building User Interfaces
Intents, Broadcast Receivers, and Adapters
Threads and Notifications
Data Storage and Access
Location Based Services, Maps, and Sensors
Connectivity with Wi-Fi and Bluetooth
Working with Multimedia and the Camera
Graphics and Animation
User Experience Principles
Web Apps and Cross Platform Programming
Interacting with Web Services
Graphics and Computation with the GPU
CENG 390 Cloud Computing

This course provides a hands-on comprehensive study of Cloud concepts, the history and fundamentals of cloud computing across various cloud service models including IaaS, SaaS, PaaS, including requirements, constraints, architecture, principals, areas of implementation, advantages/disadvantages and comparison to hybrid and local architectures. PaaS topics covers a range of Cloud platforms such as Google App Engine, Amazon Web Services(AWS), Microsoft Azure and others. Topics include the design, development and implementation of cloud based mobile applications, web applications, databases and systems as well as migrating existing software applications to the cloud, working on hybrid solutions. Course offers wide range of case studies of globally recognized technology startups, products and brands which are built on cloud platforms and analyze and review them in terms of technology, operations, finance, branding and business plan aspects.

Course Objectives

To introduce cloud concepts, principals and evolution of cloud computing paradigm. To develop mobile application, web application and software development & programming skills on cloud architecture and cloud platforms. To discuss and understand parallel processing, storage, security, scalability, management issues and benefits of the cloud services and architecture.

Recommended or Required Reading

K. Hwang, G. Fox and J. Dongarra, Distributed and Cloud Computing: From Parallel Processing to the Internet of Things, Elsevier, 2012

Learning Outcomes

Be able to explain the fundamental concepts of cloud computing

Understand the advantages and disadvantages of cloud computing systems and be able to use tools on cloud platforms

When developing an application or system, be able to determine and decide on the appropriate platform and configuration by understanding non-functional requirements and considering aspects such as cost, performance, suitability, and security

Be able to design and implement mobile or web applications that run on PaaS platforms such as Amazon Web Services, Microsoft Azure, and Google App Engine

Be able to analyze and monitor applications built on cloud systems and optimize the system according to changing requirements

Be able to productize, brand, and commercialize software developed on cloud systems by establishing it as a company and launching it to the market

Topics
Introduction to Cloud Computing
Service Models (SaaS, PaaS, IaaS)
Cloud Computing Components
Cloud Systems Models (public, private, hybrid)
Public Cloud: AWS, Google App Engine, MS Azure
Data Storage, Processing, Access & security
In-House vs Cloud Strategy & Planning
Scalable Cloud Database Architectures – SQL, NoSql, Hadoop
Migrating to the Cloud Architecture
Big Data & Data Science
Mini Lab – Developing and Deploying Apps on Cloud Platforms
Global Startups, Cloud Applications and Entrepreneurship
Enterprise Cloud-Based High Performance Computing (HPC) Applications
Global Cloud Strategy for Apps and Businesses
CENG 391 Introduction to Image Understanding

This course covers the basic image processing techniques and approaches for image content analysis.. The course content includes memory representation of images, basic image processing techniques, keypoint extraction and description, image matching and fundamentals of camera geometry.

Course Objectives

The main aim of the course is to familiarize the students with image processing and image content analysis. The course’s target audience is advanced undergraduate and beginning graduate students. The course will play a preparatory role for the graduate courses covering topics such as digital image processing and 3D photography.

Recommended or Required Reading

Computer Vision: Algorithms and Applications, R. Szeliski, 2010

Learning Outcomes:

To be able to apply image analysis methods to industrial problems
To be able to compare different image content analysis methods for a given problem
To be able to use basic image processing methods in problem solving
To be able to list basic image processing methods and their features
Topics
Introduction
Image Representation
Basic Image Processing
Image Pyramids
Keypoint Detection
Keypoint Description and Matching
Planar Projective Geometry
Optimization Techniques
Image Matching
Optical Flow and Template Tracking
Basic Camera Geometry
Epipolar Geometry
Dense Image Features
Object Category Detection

Fourth Year

Course Code Course Name Description Prerequisite(s)
CENG 400 Summer Practice

Reference

Department of Computer Engineering Internship Directive

Course Objectives

The purpose of the internship is to enable students to put into practice the theoretical knowledge they have acquired in their field of study. Through this process, students begin to get acquainted with the professional world and start identifying the areas of interest that may shape their future careers. An internship also helps computer engineering students gain knowledge about the structure and management of an organization, as well as the information systems and system analysis conducted within the company. The internship allows students to engage in practical work, understand the overall structure of the firm, and participate in ongoing projects.

Weekly Plan

The internship must be completed in a minimum of 20 working days. Internship dates must not conflict with academic semester dates or the summer school period.

Deliverables

The following documents must be submitted at the end of the internship:

– Internship Report

– Company Survey

– Student Survey

Grading

Internship Report – 100%

Learning Outcomes

LO1. Ability to transfer theoretical knowledge acquired during university education to real-life applications.

LO2. Awareness of the computer engineering profession, including its roles and responsibilities.

LO3. Ability to observe the working environment during the internship and identify a preferred industry sector.

LO4. Ability to develop solutions individually or as part of a team for problems encountered in practice.

LO5. Ability to improve verbal and written communication skills and understand the importance of foreign language proficiency.

LO6. Ability to present acquired knowledge in the form of a formal report.

Prerequisite

It is recommended that students complete all coursework up to the end of the third year.

CENG 411 Professional Issues in Computer Engineering

Study of the larger ethical and social issues of computing, including the role of a digital society in the modern world. Practical and theoretical applications of computer privacy and security, including network security measures and encryption protocols. Ethical theory and its application to problems in computing. Seminar discussion on valuesystems, social impact, and human factors, and about use and misuse of computers.

Course Objectives:

– To learn ethical concepts in information technologies

– To learn concepts about ethical theories

– Learning privacy and property rights issues

Learning Outcomes:

1.Understanding the ethical phenomenon and legal dimensions in information technology.
2.Understanding of general ethical concepts.
3.To be able to understand basics of privacy.
4.To be able to understand basics of property rights.

Recommended or Required Reading
“Computer Ethics”, Deborah G. Johnson, 4th Edition (2009) ,”Ethics for theInformation Age”, Michael J. Quinn, 8th edition (2020)

Topics
Historical overview
Introduction to sociotechnical computer ethics (Johnson.1)
Introduction to ethics (Quinn.2, Johnson.2, Reynolds.1)
Introduction to ethics (Quinn.2, Johnson.2, Reynolds.1)
Ethics in ITconfigured societies (Johnson.3, Quinn.3, Reynolds.5,8,9)
Information flow, privacy and surveillance(Johnson.4, Quinn.5&6, Reynolds.4)
Midterm
Digital intellectual property (Johnson.5, Quinn.4, Reynolds.6)
Digital order (Johnson.6, Quinn.6, Reynolds.3)
Digital order (Johnson.6, Quinn.6, Reynolds.3)
Computer reliability (Quinn.7, Reynolds.7)
Computer reliability (Quinn.7, Reynolds.7)
Professional ethics in computing (Johnson.7, Quinn.9, Reynolds.2,10)
Work and wealth (Quinn 10)

Grading:

Midterm 40%

Homework 10%

Final 50%

CENG 415 Senior Design Project & Seminar I

Writing technical reports, project management and planning, system analysis, requirement analysis, engineering ethics, data design, software design, presenting a project

Learning Outcomes:

1.To be able to identify problem.
2.To be able to analyze the problem, to define the scope, constraint, requirements, to be able to design a solution.
3.To be able to design a solution that is innovative, sustainable and beneficial to the environment and society.
4.To be able to learn and use new methods and technologies.
5.To be able to gain teamwork skills.
6.To be able to present written and oral presentation skills of the project.
7.To be able to describe the concepts about entrepreneurship and innovation.

Topics
Introduction
Writing technical reports
Project management and planning
System analysis
Requirement analysis
Engineering ethics
Data design
Software design
Presenting the project
Invited speaker- Project management
Invited speaker- Software development
Student project presentations
Student project presentations
Student project presentations

Grading

Homework: 75%

Application/ Practical: 25%

CENG 415-416 Bitirme Projeleri Yönergesi
CENG 415 - Proje Konusu Tanımlama Formu
CENG 416 Senior Design Project & Seminar II

Invited speakers, change management, coding documentation, coding standards, testing, reliability, security, protyping, user manuals, group demos.

Learning Outcomes:

1. To be able to identify problem.
2. To be able to analyze the problem, define the scope, constraint, requirements, and design a solution.
3. To be able to design a solution that is innovative, sustainable and beneficial to the environment and society.
4. To be able to learn and use new methods and technologies.
5. To be able to gain teamwork skills.
6. To be able to present written and oral presentation skills of the project.

Topics
Introduction
Invited speaker
Change management
Coding documentation
Coding standards
Testing
Reliability
Security
Group protype presentations
Group protype presentations
User manual preparation
Invited speaker
Group demos
Group demos

Grading

Application/ Practical: 25%

Presentation: 75%

CENG 415
CENG 418 Information Security

Information Security is a comprehensive study of the principles and practices of computer system security including operating system security, network security, software security and web security. Topics include common attacking techniques such as virus, trojan, worms and memory exploits; the formalisms of information security such as the access control and information flow theory; the common security policies such as BLP and Biba model; the basic cryptography, RSA, cryptographic hash function, and password system; network intrusion detection; software security theory; web security; legal and ethical issues in computer security.

Course Objectives

The main goal of this course is to provide students with a background, foundation, and insight into the many dimensions of information security and to support them to understand information security’s importance in our increasingly computer-driven world.

Recommended or Required Reading

Computer Security: Art and Science, ISBN 0-201-44099-7; Publisher Addison Wesley Professional; Copyright 2003

Learning Outcomes

1. Students learn the common security threats in digital world.

2. Students learn the foundational theories of information security.

3. Students learn what are the basic principles and techniques when designing a secure system.

Week Topics
1 Introduction Course introduction (syllabus, policies, projects, and recent cyber threats overview) An overview of information security: confidentiality, integrity, and availability
2 Understanding the Threats Malicious software (Viruses, trojans, rootkits, worms, botnets) Memory exploits (buffer overflow, heap overflow, integer overflow, format string)
3 Formalisms Access control theory, access control matrix Information flow
4 Policy Security policies Confidentiality policies (BLP model) Integrity policies (Biba, and Clark-Wilson model) Hybrid policies (Chinese Wall model, role-based access control)
5 Cryptography I Block and stream ciphers Cryptographic hash functions, Message Authentication Codes (MAC) Public and private key systems
6 Cryptography II Message digests. Approximate strength of ciphers Authentication Password system
7 Midterm
8 Systems Secure design principles (Least-privilege, fail-safe defaults, complete mediation, separation of privilege) TCB and security kernel construction System defense against memory exploits UNIX security and Security-Enhanced Linux (SELinux) Windows security
9 Network Security I TCP/IP security issues DNS security issues and defenses
10 Network Security II TLS/SSL Network Intrusion detection and prevention systems Firewalls
11 Software Security Vulnerability auditing, penetration testing Sandboxing Control flow integrity
12 Web Security User authentication, authentication-via-secret and session management Cross Site Scripting, Cross Site Request Forgery, SQL Injection
13 Legal and Ethical Issues Cybercrime and computer crime Intellectual property, copyright, patent, trade secret Hacking and intrusion Privacy, identity theft
14 Final Exam

Grading

Midterm 25%

Quiz 20%

Homework 20%

Final 35%

CENG 421 Network Programming

This course covers all aspects of TCP/IP and network programming. Starting with a review of IP and TCP, including its services and Ipv6, we will then learn about socket programming, web programming (PHP and MySQL), and time permitting, we will be exploring new trends in networking and programming.

Course Objectives:

To gain experience on TCP/IP programming. * To gain experience on PHP and MySQL web programming.

Recommended or Required Reading

Data Communications and Networking, Behrouz A. Forouzan ,Course Web Site: http://www.kalfaoglu.com/ceng421

Learning Outcomes

1. To acquire knowledge on TCP/P layers and its applications.

2. To program in C/C++ using TCP sockets

3. To be able to create a full-fledged web site using PHP, MySQL and HTML.

4. To improve the student s ability to write programs

Topics
Introduction
Logical Addressing
Internet Protocol
Process to Process
DNS,Email,FTP
WWW
Functions
Socket Programming
Protocols, Sessions, State
Client-Server Architecture
Custom Protocols
Securing Network Communication

Grading:

Midterm: 40%

Homework: 20%

Final: 40%

CENG 422 Network Design & Management

LAN/WAN analysis and design; LAN standards, internetworking, recent technologies, LAN design procedures; WAN design, network services, WAN design procedures; LAN management, SNMP (simple network management protocol); design tools, network simulators.

Course Objectives

To introduce analysis and design techniques for LAN and WAN. To give the latest network technologies.

Recommended or Required Reading

Arne Mikalsen, Per Borgesen, Local Area Network Management, Design & Security (Paperback), Wiley; 1st edition (June 15, 2002) ,Andrew S. Tanenbaum, Computer Networks, Prentice-Hall

Learning Outcomes

1. To have the necessary knowledge and experience to design LANs and WANs

2. To demonstrate the ability of analysing and configuring network protocols

3. To demonstrate the ability of designing a new protocol

4. To have the experience and familiarity with simulators and other tools to analyse and design networks

5. To know the fundamentals of network security

Topics
Review of LANs
Review of WANs
Intranet, Internet middleware technologies: CORBA, OpenDoc, ODBC
Several Computation Models: Client/Server, Client/Agent/Server, Peer-to-Peer
Configuration of TCP/IP
Transport Layer Protocol Design
Summary (Examination)
Choice and Configuration Network Active Devices
LAN Design: Concepts, Tools, Applications
Analysis of Traffic in Different Networks
Network Management, SNMP Protocol
WAN Design: Concepts, Tools, Applications
Use of Simulators, Case Studies
Network Security

Grading

Midterm 30%

Homework 35%

Final 35%

CENG 424 Embedded Computer Systems

Nature of embedded systems, particular problems, special issues; role in computer engineering; embedded microcontrollers, embedded software; real time systems, problems of timing and scheduling; testing and performance issues, reliability; low power computing, energy sources, leakage; design methodologies, software tool support for development of such systems; problems of maintenance and upgrade; networked embedded systems; FPGA design issues.

Course Objectives

To introduce embedded computer systems and applications together with their analysis and design.

Recommended or Required Reading

Berger, Arnold. Embedded systems design:an introduction to processes tools and tecniques. San Francisco;Lawrence, Kan: CMP Books, c2002 ,Adamski, Marian Andrzej. Design of Embedded Control Systems, Boston, MA : Springer Science+Business Media, Inc., 2005. ,Tebbs, David. Real time systems: management and design, McGraw-Hill London 1977 ,Herman Lam, John O Malley, Fundamentals of Computer Engineering: Logic Design and Microprocessors, Wiley. ,Enoch O. Hwang, Digital Logic and Microprocessor Design with VHDL.

Learning Outcomes:
  1. To demonstrate the ability to model and design embedded systems.
  2. To show ability to realize and verify systems.
  3. To show ability to use embedded software development techniques.

 

Topics
Introduction to Embedded System Design
Review of computer architecture concepts
LAB – I : A simple application using Arduino
Design with Microcontrollers
Design with Microcontrollers
FFPGA design and VHDL
LAB – II :Setting up the test bed for motor speed control
Fundamentals of feedback control systems
Midterm Exam
Data Acquisition and Digital Signal Processing/Matlab-Simulink
Real-Time Systems
Embedded Software Design
LAB – III : Speed control of dc Motor using Arduino
Feedback sessions for project demonstrations and presentations

Grading

Midterm : 10%
Homework : 10%
Final : 20%
Quiz : 10%
Lab : 10%
Project : 20%
Report : 20%

CENG 431 Building Software Systems

Object oriented analysis and design. UML usage. Advanced topics of object oriented programming. Software reuse, refactoring, unit testing. Fundamental design patterns. Software components, libraries and framework usage and ve creation.

Course Objectives

1. To provide students with the ability of object oriented analysis and design.

2. To provide students with the ability of object oriented design programming.

3. To teach reuse, refactoring, unit testing subjects.

4. To teach fundamental design patterns at intermediate level.

5. To provide students with the fundamentals of software components and software frameworks.

Recommended or Required Reading

X. Jia, Object-Oriented Software Development Using Java. , Addison Wesley. 2nd Edition, 2003. ,C. Larman, Applying UML and Patterns , Prentice Hall, 3rd Edition, 2004. ,M. Fowler, K. Beck, J. Brant, W. Opdyke, D. Roberts, Refactoring: Improving the Design of Existing Code , Addison-Wesley, 1999.

Learning Outcomes

Upon the completion of this course a student :

1. Know interleaved activities between specification, design, coding and testing

2. Use Object Oriented architecture components

3. Know and compare different software system development approaches

4. Analyze problems, design and implement solutions

5. Demonstrate the ability to abstract in software systems context

6. Apply software engineering methods to real world problems

Topics
Object oriented software development 1
Object oriented software development 2
Object oriented analysis and design with UML 1
Object oriented analysis and design with UML 2
Software development with components
Design approach with abstraction
Object oriented application frameworks
Reuse
Refactoring
Unit testing
A case study from design to software
Design patterns 1
Design patterns 2
Design patterns 3

Grading

Midterm 30%

Final 40%

Homework 30%

CENG 432 Fundamentals of Enterprise Application Development

Course Objectives:
The objective of this course is to explain the Enterprise Applications, their usage areas and development methods. Students will be familiar with different types of Enterprise Applications, especially Enterprise Resource Planning (ERP) systems and its modules via SAP, which is one of the most common commercial ERP package programs. They will also learn basics of SAP ABAP, the popular enterprise programming language.

WEEK COURSE OUTLINE CONTENT
1 Introduction to Enterprise Applications Introduction to Enterprise Application Development
2 Enterprise Applications Evolution, Integration & Implementation Methodologies Enterprise Applications Evolution – MRP & ERP
3 Enterprise Applications Evolution – HRM & SCM & CRM & PLM
4 Enterprise Applications Structure and Integration Methodologies
5 Enterprise Application Projects Implementation Methodologies
6 SAP S/4 Hana Introduction to SAP S/4HANA
7 SAP Configuration, Customization and Programming SAP Configuration and Customization
8 SAP ABAP Programming
9 SAP ABAP Programming
10 SAP Functional & Technical Specification Document Preparation
11 SAP Sample Modules SAP MM (Material Management) Module
12 SAP SD (Sales& Distribution) Module
13 New Trends New Trends in Enterprise Application Development

Submissions/Homeworks/Projects:

In this course, an ERP requirement document is given to project groups consisting of 5-6 members. Each team determines which SAP modules and processes will be included based on the requirement document and submits a detailed project report including FS (Functional Specification) and TS (Technical Specification) documents.

Grading:

Midterm %30
Final Exam %40
Project %30

Course Learning Outcomes:

C1. To be able to define and explain different types of Enterprise Applications

C2. To be able to describe the development and implementation strategies of Enterprise Applications

C3. To be able to demonstrate configuration, customization and programming of Enterprise Applications with examples using SAP sources

CENG 433 Scalable Software Development for Internet

Logical / physical arhitecture design and server components, performance measurement, advanced caching strategies, horizontal scaling with MySQL and handling peak load.

Course Objectives

The goal of this course is to dive into advanced software development, architecture design topics for Internet projects. At the end of the term, expected outcome is to establish the basis of a background with which students can design and implement sites that can scale up to thousands of concurrent users.

Recommended or Required Reading

http://www.infoq.com/ ,http://aws.amazon.com/ ,http://www.slideshare.net/Blaine/scaling-twitter ,Cal Henderson, Building Scalable Web Sites: Building, Scaling, and Optimizing the Next Generation of Web Applications, O Reilly Media, 2006 ,John Allspaw, The Art of Capacity Planning: Scaling Web Resources, O Reilly Media, 2008 ,Theo Schlossnagle, Scalable Internet Architectures, Sams, 2006 ,Martin L. Abbott and Michael T. Fisher, The Art of Scalability: Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise, Addison-Wesly, 2009 ,http://highscalability.com/ ,http://www.ahmetalpbalkan.com/blog/put-io-nun-altyapisi-ve-olceklenebilirligi-uzerine-roportaj/

Learning Outcomes

1. To be able implement sites that can scale up to thousands of concurrent users.

2. To develop a project on Play Framework.

3. To be able implement various cache mechanisms

4. To be able to perform horizontal scaling with MySQL and handling peak load

Topics
Introduction to Play Framework
Base project
Introduction to Internet logical architecture designs .
Load Performance testing
Caching Strategies
Distributed data fetching and queuing Distrubed DNS structures.
Performance logging on the server and browser
Developing for scalable databases .
Scaling MySQL
Map Reduce with Hadoop
Handling unpredictable peak-time load and failures
Online deployment strategies
Handling unpredictable / peak-time load and failures (static fallbacks, failover mechanisms, etc.)
Online deployment strategies

Grading

Midterm 15%

Research Presentation 60%

Final 25%

CENG 434 Enterprise Application Integration

This course topics include types of enterprise application integration, their design and implementation issues as well as their qualites such as security, reliability and fault tolerance.

Course Objectives

1. To provide with the ability of web service programming.

2. To provide with the ability of enterprise integration programming.

3. To provide with the ability to develop multi-layer enterprise integrations.

4. To provide students with the fundamentals of enterprise integration deployment.

Recommended or Required Reading

K. Hammer, T. Timmerman, Fundamentals of Software Integration , Jones & Bartlett Publishers, 2007. ,G. Hohpe, B. Woolf, Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions , The Addison-Wesley Signature Series, 2003.

Learning Outcomes

Upon the completion of this course a student :

1. Use web service based programming techniques.

2. Know and compare different enterprise software integration approaches.

3. Analyze enterprise integration problems, design and implement solutions.

4. Demonstrate the ability to abstract in enterprise integration context.

5. Apply enterprise applicaton integration methods to real world problems.

Topics
Overview of enterprise architecture
Layers of an enterprise information system
Fundamental problems of enterprise application integration
Integration types
Components and patterns of enterprise application integration
Web services
Transaction processing monitors
Enterprise service bus I
Enterprise service bus II
Business processes, workflow and orchestration I
Business processes, workflow and orchestration II
Business activities monitoring
Security
Reliability and Fault-Tolerance

Grading

Midterm: 30%

Research Presentation: 40%

Final: 30%

CENG 435 Database System Design and Implementation

Revisiting database systems, data definition, relational algebra, disk management, file management, memory management, transaction management, record management, metadata management, query processing, parsing, planning, database server, indexing, query optimization

Course Objectives

To master the topic of data management in computer science field, to be able to produce parts of a database management system, to gain to skill of researching

Recommended or Required Reading

E. Sciore, Database Design and Implementation, Secon Edition, Wiley, 2020., M. Fisher, J. Ellis, J. Bruce, JDBC(TM) API Tutorial and Reference , 3rd Edition (Java Series), Addison Wesley, Reading, Massachisetts, 2006.

Learning Outcomes

1. To install SimpleDB database management system, customize it as required

2. To develop applications that realize all the functions of a database management system

3. To learn the approaches and methods behind the functions of a database management system

4. Finding, implementing and presening solution to an engineering problem by means of software development in a team

Topics
Introduction to Database Systems and Data Definition
Relational Algebra
Relational Algebra
Disk and File Management
Memory Management
Transaction Management
Record Management
Metadata Management
Recovery and Concurrency
Query Processing
Query Parsing
Query Planning
Query Optimization
Term Projects

Grading

Midterm 30%

Research Presentation 30%

Final 40%

CENG 315
CENG 436 Distributed Information Management

This course investigates principles of distributed database systems including design and architecture, security, integrity, query processing and optimization, transaction management, concurrency control, and fault tolerance. The course blends theory with practice in that each student will use distributed database concepts to develop a JDBC application and to implement a JDBC driver onto Web-based distributed databases.

Course Objectives

1.To enrich his technical background

2.To make him able to think analytically

3.To gain the skill of proposing solutions for a given need

4.To gain the skill of using new technologies.

Recommended or Required Reading

M. T. Ozsu and P. Valduriez, Principles of Distributed Database Systems , Springer, 3rd Edition, 2011

Learning Outcomes

Upon the completion of this course a student :

1. Learn design and planning principles of distributed database management systems

2. Gain the ability of creating and using distributed database

3. Learn the methods to provide consistency and security methods in distributed database management systems

4. Learn query optization in distributed databases in detail

5. Gain the skills to prepare projects as teams

Topics
Introduction to distributed databases
Revisiting relational database management systems
Computer networks
Distributed database architectures
Distributed database design- Horizontal partitioning
Distributed database design- Vertical partitioning
Semantic data management
Query processing in general
Query decomposition and data localization
Distributed query optization
Distributed concurrency
Distributed consistency protocols
Distributed security protocols
Presentation and discussion of team projects

Grading

Midterm: 30%

Research Presentation: 30%

Final: 40%

CENG 315
CENG 437 Software Quality Management

This course covers the topics of software quality management, quality management paradigms (CMMI, ISO, IEEE), methods used in quality management, enhancement of quality process, management of quality cost, error, preventive error avoidance.

Course Objectives

This course aims to teach software quality management within software development lifecycle.

Recommended or Required Reading

John W. Horch, “Practical Guide to Software Quality Management”, Addison Wesley, 2003.

Learning Outcomes

Ability to explain the components of Software Quality Assurance

Ability to apply quality components starting from the early stages of the project

Ability to measure the effectiveness of Software Quality Assurance processes

Ability to control the impact of Software Quality Assurance processes on the project budget and schedule

Topics
Introduction to SW Quality Management
Components of Quality and Quality Models (CMMI, RUP)
Components of Quality and Quality Models (ISO9001, SPICE, IEEE12207)
Methods and Tools used in Quality Management
Error and Problem Avoidance Methods
Error and Problem Avoidance Methods
Software Test Methods
Software Test Methods
Maintenance Mangement
Maintenance Mangement
Configuration Management
Software Quality Metrics
Process Quality Metrics and Cost of Quality Management
Process Quality Metrics and Cost of Quality Management
CENG 316
CENG 441 Introduction to Parallel Programming

Introduction to the programming techniques to effectively utilize modern multicore computers. Identifying the parallelism, naming shared data, synchronizing threads, the latency and bandwidth associated with communication, analyzing & improving parallel performance, parallel programming tools, miscallenous lab works & exercises.

Course Objectives

To teach the parallel programming models.

To teach and analyzing the different parallel programming tools.

Teaching the parallelization methodologies by experimentally. To teach the analyzing methodology of a parallelized algorithm.

Recommended or Required Reading

Grama, A. Gupta, G. Karypis, V. Kumar, ‘Introduction to Parallel Computing’, Addison-Wesley, 2nd Ed., 2003 , Behrooz Parhami, ‘Introduction to Parallel Processing Algorithms and Architectures’, Plenum Series in Computer Science, 1999

Learning Outcomes

1. Analyze the requirements for the usage of parallel programming models and efficiently implement them.

2. Comparing different parallel programming methodologies and tools, then effectively take a decision which one will be used.

3. Efficiently analyzing and conversion of sequential algorithm to parallel algorithm.

4. Analyze the efficiency of a parallelized algorithm.

Topics
Inroduction to Parallel Computing
Paralle Programming Platforms
Princibles of Algorithm Design I
Princibles of Algorithm Design II
Shared Memory and Threads
Implementing Domain Decompositions OpenMP
Confronting Race Conditions OpenMP
Implementing Task Decompositions OpenMP
Programming Shared Address Space Platforms – Thread Based Programming
Analyzing Parallel Performance
Improving Parallel Performance
Programming Using MPI Paradigm Part 1 ms-MPI Install Setup
MPI Exercise ms-MPI
Programming Using MPI Paradigm Part 2 MPI Lab. Experiments

Grading

Midterm: 25%

Homework: 30%

Research Presentation: 20%

Final: 25%

CENG 442 Multicore Architectures and Operating Systems

An evolutionary approach to the multicore architectures, integration of multicore architectures with operating systems, OS kernel design for multiprocessors and multithreding, OS support for threads, User level threads, Kernel level threads, An example: Solaris threads, Threads and libraries, Hardware support for multithreading in a uniprocessor and in a multiprocessor.

Course Objectives

To teach the components and steps of the architecture design for multicore structures. To teach the contemporary operating systems and multicore architecture design models. To develop the critical thinking and analyzing for the relationship between operating system and multicore architecture design.

Recommended or Required Reading

U. Ramachandran, W. D. Leahy Jr.,’Computer Systems: An Integrated Approach to Architecture and Operating Systems’, Addison Wesley, 2010 ,C. Hughes,T. Hughes,’Professional Multicore Programming Design and Implementation for C++ Developers’, Wiley Publishing, Inc., 2008 ,B. Parhami, ‘Introduction to Parallel Processing Algorithms and Architectures’, Plenum Series in Computer Science, 1999.

Learning Outcomes:

1. Analyze and implement the design steps of computer architecture by using different multicore architecture models.

2. Analyzing the components of the operating systems for multicore architectures.

3. Analyzing hardware design problems of multicore architectures.

4. Analyzing the limits of solutions and restrictions of operating systems for different multicore architecture models.

 

Topics
An Introduction
Processor Architecture
Processor Implementation
Interrupts, Traps and Exceptions
Processor Performance
Rudiments of Pipelined Processor Design
Midterm 1
New Architectures and Multicore Designs
Processor Scheduling
Memory Management Techniques
Memory Hierarchy
Parallel Processors
Input/Output and File Systems
Conclusion: Putting Them All Together

 

Grading

Midterm: 30%

Presentation: 35%

Final: 35%

CENG 443 Heterogenous Parallel Programming

The course provides GPU-based heterogeneous programming basics. It covers the basic concepts of parallel architectures and parallel programming, CUDA programming model topics, and practical examples by presenting the fundamentals of accelerated computing with CUDA.

Course Objectives

1. Understand CPU-GPU heterogeneous architectures.

2. Design and implement heterogeneous parallel programs.

3. Understand GPU execution units and memory hierarchy to foster execution performance.

4. Understand performance evaluation and optimization methods targeting GPU devices.

Recommended or Required Reading

– David B. Kirk, Wen-Mei W. Hwu: Programming Massively Parallel Processors: A Hands-on Approach, Morgan Kaufmann Publishers

– NVIDIA Accelerated Computing Teaching Kit

– NVIDIA Deep Learning Institute (DLI) Workshops

Learning Outcomes:

1. To demonstrate the ability to design and implement programs for heterogeneous parallel programming platforms

2. To demonstrate the experience to apply the parallel programming patterns on various programming problems

3. To be able to analyze the parallel program performance and make performance optimizations

Topics
Introduction
Fundamentals of Accelerated Computing with CUDA
(DLI Workshop)
Fundamentals of Accelerated Computing with CUDA
(DLI Workshop)
Fundamentals of Accelerated Computing with CUDA
(DLI Workshop)
Midterm
Fundamentals of Accelerated Computing with CUDA
(DLI Workshop)
Getting Started with AI on Jetson Nano
Getting Started with AI on Jetson Nano
Accelerating CUDA Applications with Multiple GPUs
(DLI Workshop)
Accelerating CUDA Applications with Multiple GPUs
(DLI Workshop)
Accelerating CUDA Applications with Multiple GPUs
(DLI Workshop)
Project Presentations

Grading

Midterm: 20%

Assignments/Final Project: 40%

Final: 40%

CENG 444 Parallel Programming Patterns

The course presents basic parallel algorithm design skills and parallel programming patterns. It covers the basic concepts of parallel architectures and parallel programming, OpenMP programming model topics, and control and data patterns by presenting the fundamentals of parallel software development.

Course Objectives

1. Understand shared-memory parallel architectures.

2. Design and implement parallel programs for multicore systems.

3. Understand parallel program execution and performance optimization techniques.

4. Understand parallel software development techniques and programming patterns.

Recommended or Required Reading

– Arch Robison, James Reinders, and Michael David McCool, Structured Parallel Programming: Patterns for Efficient Computation.
– Online OpenMP resources and tutorials

Learning Outcomes:

1. To be able to understand the parallel programming problems and related patterns

2. To demonstrate the experience to apply the parallel programming patterns on various programming problems

3. To be able to make a qualitative evaluation of different programming patterns and models

Topics
Introduction
Parallel Hardware Environments
Parallel Software Development
Parallel Program Performance Analysis
OpenMP
OpenMP
Midterm
Patterns
Map Pattern
Reduce/Scan Pattern
Data Reorganization
Stencil/Recurrence
Fork/Join
Project Presentations

Grading

20% Midterm Exam

40% Assignments/Final Project

40% Final Exam

CENG 451 Advanced Digital System Design

Finite state machine design and analysis; high-level hardware description languages, VHDL, automated synthesis in design; digital integrated circuit design and advanced design principles; electrical properties of digital circuits, synchronous and asynchronous circuits, computer arithmetic, and interfacing to external circuitry, digital system testing and design for testability; implementation of embedded computing systems in terms of Application Specific Integrated Circuits; Design for reuse.

Course Objectives

To give the students design issues of embedded system hardware and to introduce the latest technologies.

Recommended or Required Reading

Berger, Arnold. Embedded systems design:an introduction to processes tools and tecniques. San Francisco;Lawrence, Kan: CMP Books, c2002.

Learning Outcomes

Ability to analyze complex digital circuits

Ability to design complex digital circuits

Demonstrating the ability to use VHDL in hardware design

Having fundamental knowledge of digital signal processing

Ability to use design tools

Topics
Introduction to Digital System Design
Review of Electronics
Digital Design Concepts
FPGA and ASIC design; VHDL Programming Language – I
VHDL – II
Summary (Examination)
Electronic Design Automation Tools
Dedicated Soft Microprocessor/Microcontroller Design
General Purpose Soft Microprocessor/Microcontroller Design
Digital Signal Processor Design
Fault-Tolerant Hardware Design Issues
Interfacing to External Circuitry
Design for Reuse, Testing and other Topics
Case Study, Term Project
CENG 452 Building Software for Embedded Systems

Design and implementation of software for programmable embedded systems; software tools such as compilers, schedulers, code generators, and system-level design tools; data-flow and control models of computation and software synthesis for uniprocessor and multiprocessor architectures; synchronous/reactive languages and their mathematical properties; implementation of signal processing, communication and control algorithms using variety of technologies such as digital signal processors, microcontrollers, FPGAs, ASICs and real-time operating systems; real-time kernel design; software implemented fault-tolerance techniques.

Course Objectives

To give students the knowledge of latest technologies on software development for various types of embedded systems.

Recommended or Required Reading

Berger, Arnold. Embedded systems design:an introduction to processes tools and tecniques. San Francisco;Lawrence, Kan: CMP Books, c2002. ,Adamski, Marian Andrzej. Design of Embedded Control Systems, Boston, MA : Springer Science+Business Media, Inc., 2005. ,Tebbs, David. Real time systems: management and design, McGraw-Hill    London    1977.

Learning Outcomes:

1. Have knowledge on the requirements of embedded software development

2. Have knowledge on various standards and tools

3. Be able to analyze and design common algorithms used in various embedded systems

4. Be able to use the knowledge of software verification, validation and test on a real project

Topics
Introduction to Embedded Software Design
Compilers, Code Generators, System-Level Design Tools
Data-flow and Control Models of Computation
Software Synthesis for Uniprocessor and Multiprocessor Systems
Synchronous/Reactive Programming Languages
Overview of Real-Time Operating Systems
Summary (Examination)
Real-Time Scheduling Techniques
Various Algorithms in Digital Signal Processing, Communication and Control
Implementation of Algorithms on Microcontrollers, DSPs, FPGAs and ASICs
Software Development Tools
Testing, Design for Reuse
Software-Implemented Fault-Tolerance Techniques
Term Project

Grading

Midterm: 30%

Presentation: 30%

Final: 40%

CENG 461 Artificial Intelligence

Declarative programming; problem solving; knowledge representation; reasoning; acting logically; uncertainty; learning; communicating.

Course Objectives

– To help students to conceptualize information representation and reasoning methods

– To emphasize the relatioship between problem solving and logical behavior

– To form the background for development of sophisticated applications that are capable of learning and can reason under uncertainty

Recommended or Required Reading

Russell, Stuart; Norvig, Peter; 1995; “Artificial Intelligence – A Modern Approach”; Prentice-Hall; 0-13-103805-2 ,- Luger, George F.; 1993; “Artificial intelligence: structures and strategies for complex problem solving”; Benjamin-Cummings; 0-80534-785-2

Learning Outcomes

1. Comprehension of different artificial intelligence techniques used for simulation of human behavior
2. Interpretation of traditional artificial intelligence methods based on mathematical logic
3. Construction of intelligent behavior with respect to hybrid application of artificial intelligence methods
4. Demonstration of applications with the use result-oriented languages based and hybrid techniques

Topics
Introduction
Declarative software languages
Problem solving
Heuristics
Information
Knowledge of existence
Reasoning
Acting logically
Testing
Uncertain Knowledge
Reasoning under uncertainty
Learning
Communication
Perception and labeling

Grading

Midterm 30%

Homework 30%

Final 40%

CENG 462 Soft Computing

This course introduces students to the many concepts and techniques in Artificial Intelligence (AI). Topics covered include: problem spaces and search, heuristic search techniques, predicate logic, game playing techniques, planning, learning, natural language processing, and machine perception

Course Objectives

1. Analysing cognitive models

2.Analysing interaction models

3.Develop sample smart systems

Recommended or Required Reading

Luger, George; Stubblefield, William; 2004; “Artificial Intelligence: Structures and Strategies for Complex Problem Solving”; The Benjamin/Cummings Publishing; ISBN 0805347801 ,Russell, Stuart; Norvig, Peter; 2003; “Artificial Intelligence – A Modern Approach”; Prentice-Hall; 0131038052 ,Giarratano, Joseph C.; Ritel, Gary D.; 2005; “Expert Systems – Principles and Programming”; Thompson Course Technology; 0534384471 ,Munakata, Toshinori; 2007; “Fundamentals of the New Artificial Intelligence Neural, Evolutionary, Fuzzy and More”; Springer; 9781846288395 ,Maedche, Alexander; 2002 ; “Ontology learning for the semantic web”; Kluwer Academic Publishing; 0792376560 ,Hjelm, Johan; 2001; “Creating the semantic Web with RDF: professional developer s guide”; John Wiley; ,Goertzel, Ben; Pennachin, Cassio; 2007; “Artificial General Intelligence”; Springer; 9783540237334 ,Nabiyev, Vasif V.; 2005; “Yapay Zeka”; Seçkin Yayıncılık; 9753479859

Learning Outcomes

1. Effectively use evolutionary computation in applications

2. Effectively use artificial neural networks in applications

3. Effectively use fuzzy logic in applications

4. By using these meta heuristics, provide applications with smart behaviours

Topics
Overview
Alternative AI Approaches
Higher-order Logic
Planning
Expert Systems
Environment Modelling
Summary
Soft Computing
Non-Symbolic Learning
Natural Language Processing
Intelligent Agent
Multi-Agent System
Semsantic Web
Robotics

Grading

Midterm: 24%

Quiz: 6%

Homework: 10%

Research Presentation: 30%

Final: 30%

CENG 463 Introduction to Machine Learning

An introduction to the machine learning with examples in different application areas. Bayesian decision theory. Supervised learning techniques. Model selection. Dimensionality reduction. Clustering. Support vector machines. Graphical models. Introduction to neural networks. Reinforcement learning.

Course Objectives

1. To form background related to the machine learning

2. To provide students with the ability of analyzing the machine learning problems and recognizing appropriate solution techniques

3. To develop the ability to implement proper solution algorithms to the problems given

Recommended or Required Reading

Ethem Alpaydın, Introduction to Machine Learning (2nd Edition), MIT Press, 2010. ,Christopher Bishop, Pattern Recognition and Machine Learning, Springer, 2006. ,Richard Duda, Peter Hart and David Stork, Pattern Classification, 2nd ed. John Wiley & Sons, 2001. ,Tom Mitchell, Machine Learning, McGraw-Hill, 1997.

Learning Outcomes

1. To be able to describe the fundamental concepts in machine learning

2. To be able to analyze the machine learning problems and identify appropriate solution techniques

3. To be able to apply proper algorithms using proper tools to solve the encountered machine learning problems

4. To be able to interpret the output of the implementations from algorithmic point of view

Topics
Concepts in Machine Learning
Bayesian Decision Theory
Supervised Learning Fundamentals
Linear Regression
Logistic Regression
Model Selection Procedures
Multivariate Classification, Multivariate Regression
Summary and Examination
Dimensionality Reduction and Principal Component Analysis
Clustering
Linear Discriminant Functions
Neural Networks
Supervised Learning: Non-parametric approaches
Design and Analysis of Machine Learning Experiments

Grading

Midterm 30%

Homework 30%

Final 40%

CENG 464 Text Mining

In this course, we will cover important topics in text mining including: basic natural language processing techniques, document representation, text categorization and clustering, document summarization, sentiment analysis, social network and social media analysis, probabilistic topic models and text visualization.

Course Objectives

This course provides an opportunity to learn key components of text mining and analytics aided by the real-world datasets and the text mining toolkit written in Python. Hands-on experience in core text mining techniques including text preprocessing, sentiment analysis, and topic modeling help students be trained to be a data scientists.

Recommended or Required Reading

J. Eisenstein,” Introduction to Natural Language Processing”, MIT Press, 2019. ,S. Ghosh & D.Gunning, “Natural Language Processing Fundamentals”, Packt, 2019.

Learning Outcomes

1. Using Python and NLTK (Natural Language Toolkit) to build out your own text classifiers and solve common NLP problems
2. Performing data analysis and machine learning tasks using Python
3. Understanding the basics of computational linguistics
4. Building models for general natural language processing tasks
5. Evaluating the performance of a model with the right metrics
6. Visualizing, quantifying, and performing exploratory analysis from any text data

Topics
Introduction
Steps in NLP
Steps in NLP
Document Representation
Document Representation
Text Classification
Text Categorization
Data Collection
Topic Modelling
Text Summarization
Text Generation
Social Media and Network Analysis
Sentiment Analysis
Text Visualization

Grading

Midterm 25%

Research Presentation 35%

Final 40%

CENG 465 Principles of Data-Intensive Systems

In this course, students will gain knowledge in the following areas: Data models and query languages; storage and retrieval; replication and partitioning in distributed data; transactions; challenges of distributed systems, consistency, and consensus in distributed systems; batch and stream processing.

Objectives of the Course

The main aim of this course is to familiarize students with the fundamental concepts underlying a broad range of data-intensive systems. Students will learn to compare different approaches, techniques, and tools for storing and processing data, evaluate their strengths and weaknesses, and determine the most appropriate solutions for various application needs.

Recommended or Required Reading
M. Kleppman. Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems. O’Reilly Media, Inc., 2017.
T. Özsu, P. Valduriez. Principles of Distributed Database Systems. Springer, 4th ed., 2020.

Learning Outcomes

1. To be able to define the basic terminology used in data-intensive applications
2. To be able to compare different data models and query languages
3. To be able to decide the technologies, techniques, and tools appropriate for a given task
4. To be able to design data-intensive applications

Topics
Reliable, Scalable and Maintainable Applications
Data Models and Query Languages (1)
Data Models and Query Languages (2)
Data Storage and Retrieval
Distributed Data Replication
Distributed Data Partitioning
Midterm Exam
Transactions in Single-Node and Distributed Databases (1)
Transactions in Single-Node and Distributed Databases (2)
Challenges of Distributed Systems
Consistency and Consensus
Batch Processing
Stream Processing
Project Presentations

Assessments

Midterm 40%

Project 20%

Final 40%

Supplementary Course: CENG315

CENG 467 NATURAL LANGUAGE UNDERSTANDING AND GENERATION

This course focuses on deep learning methods for natural language understanding and generation. It covers tokenization and pre-training for language models, the transformer architecture, machine translation, parsing, summarisation, question answering, instruction fine tuning, ethics in NLP, in context learning and retrieval-augmented generation.

The main objective of the course is to provide students with a basic knowledge of natural language processing, machine learning and programming with a more advanced knowledge of existing deep learning techniques for natural language understanding and generation. The target audience is senior undergraduate students. The course covers the foundations for the deep learning for natural language processing graduate course.

The Natural Language Understanding and Generation course contributes to students’ ability to conduct research and develop products in the field of Generative Artificial Intelligence at the graduation stage.

  1. Apply deep learning methods for natural language processing to industrial problems
  2. Be aware of the social implications of natural language processing and know the relevant ethical terminology
  3. Use different language model architectures in problem solving
  4.  List different natural language processing tasks and their features

Course Materials: Speech and Language Processing, D. Jurafsky and J.H. Martin, 3rd Ed., 2025.

Midterm: 30%

Assignments: 30%

Final Exam: 40%

Week Topic
1 Introduction
2 Machine Translation and Conditional Language Models
3 Modeling Data and Words
4 Feedforward Language Models, Recurrent Neural Networks
5 Sequence-to-sequence Models with Attention, Transformers and Pretrained Language Models
6 Parsing
7 Instruction Fine Tuning and RLHF and Parameter Efficient Fine Tuning
8 Summarisation
9 Evaluation of generation and translation
10 Ethics in NLP
11 In Context Learning
12 Question Answering
13 Retrieval-Augmented Generation
14 Diffusion Models for NLP

 

CENG 471 Cryptography

Basic terminology, history & background, Symmetrical cryptosystems, DES-AES, DES-AES likes, Asymmetrical cryptosystems, primality, hashing, factorization based (RSA)- ECC-Lattice cryptosystems, cryptographic protocols & applications, secrecy, authentication, integrity-authenticity, digital signatures, standards.

Course Objectives

To teach the security functions. To teach that which security functions are realized by which cryptographic tools. Teaching the relationship between the historical evolution of the symmetrical/asymmetrical cryptosystems and the developments of the technological and social life. Teaching that how the measure of the security level for cryptographic solutions and how the implement the international standards. To teach the currently relevant security solutions of information and communication technologies.

Recommended or Required Reading

W.Trappe, L.Washington, ‘Introduction to Cryptography with Coding Theory’, Pearson, 2006 ,P. Gutman, ‘Cryptographic Security Architecture’, Springer, 2004 ,D. R. Stinson, ‘Cryptography, Theory and Practice’, Chapman & Hall/CRC Press, 2002 ,B. Schneider, ‘Applied Cryptography, Protocols, Algorithms, and Source Code in C’, John Wiley & Sons, 1996

Learning Outcomes

1. Analyze vulnerabilities, threats and which security functions are realized.

2. Selection, implementation and testing of cryptographic tools for essential security functions.

3. Objectively read the technological evolution and efficiently analyzing of new requirements for the cryptographic solutions.

4. Usage ability of the international standards for the developed cryptographic solutions.

5. Selection of the best solution and implementation ability for a cryptographic security solution depends on security requirements of domain.

Topics
Introduction to Cryptography with basic definitions and concepts
Information Theory and Probability Theory and Cryptography
Monoalphebetical and Polyalphabetical Crypto
Transpositions-Permutations
Block Ciphering, DES and AES
Symmetrical Key Management and Security Architecture
Symmetrical Cryptosystem Design and Verification
Introduction to Number Theory I
Introduction to Number Theory II
Factorization based Asymmetrical Cryptosystems – RSA
Discrete Logarithm Problem and Cryptosystems: DHKE, ElGamal
Elliptic Curve Cryptosystems- ECC
Public Key Infrastructures
Design of Cryptographic Protocols: FIPS 140-2/3

Grading

Midterm: 25%

Homework: 30%

Presentation: 20%

Final: 25%

CENG 472 Network Security

Link Encryption, End-to-End Encryption, Network and Internet Based Attacks, Firewalls, Email Security Issues, Web Based Security Issues, Disaster Recovery, C2 Functionality Stand-alone vs Network Operation, Hackers and Crackers, Network Crackings.

Course Objectives

1. To teach the fundamentals of computer network security.

2. To provide students with the fundementals of network package security.

3. To teach the fundementals of computer local/cooperate network security.

Recommended or Required Reading

w. Stallings, Network Security Essentials: Applications and Standards , Prentice-Hall, 2010. ,C. Kaufman, R. Perlman, M. Speciner, Network Security: PRIVATE Communication in a PUBLIC World , Prentice-Hall, 2002.

Learning Outcomes

1. Know and compare different network security approaches.

2. Analyze network security problems, design and implement solutions.

3. Demonstrate the ability to abstract in security context.

4. Apply security engineering methods to real world problems.

Topics
Introduction to computer network security
Symetric encryption
Asymetric encryption
Access control
Distributed acess control
E-mail security
IP security with IPSEC
Security in network management
Attacts to computer networks
Firewalls
Firewall policies
Technologies used with firewalls (NAT, VPN)
Attact an intrusion detection systems 1
Attact an intrusion detection systems 2

Grading

Midterm: 30%

Presentation: 40%

Final: 30%

CENG 473 Security of Information and Communication Technologies

Introduction to security of information and communication technologies, fundamental security functions and related cryptographic tools, network security and related problems, protection mechanisms and tool will be evaluated. Then current hot topic security problems will be analyzed for “cloud computing”, “web applications and services”, “wireless networks”, etc. and at last security management of information systems will be discussed. Students will have a term project for the course about an up-to-date problem of these topics, which they are interested in and will prepare a written report about it then, present their work.

Course Objectives

1. To teach the security problems of information and communication technologies and related solution tools.

2. To teach the open security problems and their risks.

3. Teaching the unsolved security problems and continued researches for current information and communication technologies.

4. Teaching the designing, building and managing of a secure information system.

Recommended or Required Reading

B. Schneider, ‘Applied Cryptography, Protocols, Algorithms, and Source Code in C’, John Wiley & Sons, 1996

Learning Outcomes

1. Having the competence to analyze security risks related to information and communication technologies.

2. Being able to select and test the appropriate tools for solving security problems.

3. Gaining the ability to follow technological developments and identify potential security risks and threats.

4. Possessing the fundamental knowledge and methodology to carry out the security design and management of information systems.

Topics
Introduction to Information and Communication Security
Main Security Functions and Cryptographic Tools
Main Security Functions and Cryptographic Tools
Network Security – Detection
Network Security – Prevention
Network Security – Protection
Security for Cloud Computing
Security of Web Applications and Servers
Operating Systems Security
Internet Security
Security of Wireless Networks
Security of Wireless Networks
Management of Information Security
Management of Information Security
CENG 481 Theoretical Approaches in Computer Science

Turning theoretical ideas into solution sets in computer science. Integration of mathematical approaches with general problem solving techniques and computer science applications. Topics will be from Algorithms, Complexity Theory, Game Theory, Probability Theory, Graph Theory, Automata Theory, Algebra, and Cryptography.

Course Objectives

To teach the fundamentals topics and theorems of computer science. To teach the research, analyze, compare and modeling techniques of computer science. To teach the hot topic concepts, research areas and problems of computer science.

Recommended or Required Reading

The text book/books are determined by decided topics.

Learning Outcomes

1. Analyzing capability to find new requirements and problems of current application areas of computer scince

2. Defining and modelling capability of computer science hot topic research problems.

3. To have the vision and to be able to do an evaluation for the future career plans on computer science

4. To be able to apply fundamental theorems of computer science with interdisciplinary research and studies.

Topics
Introduction: related topics and introducing of course content.
Computational Complexity Theory – I
Computational Complexity Theory – II
Automata Theory
Languages and Computability
Algorithms ; Algorithm Theory
Algorithms ; Algorithm Analysis
Algorithms ; Data Structures
Algorithms ; Approximation Algorithms Medium size
Algorithms ; Graph Algorithms
Algorithms ; Numerical Analysis
Artificial Intelligence
Machine Learning
Algorithms; Computational Biology

Grading

Midterm: 20%

Homework: 20%

Presentation: 40%

Final: 20%

CENG 482 Evolutionary Computation

Evolutionary computation methods, discrete and continuous optimization problems, software libraries for evolutionary computation, Genetic Algorithms, Genetic Programming, Evolution Strategies, Differential Evolution, Particle Swarm Optimization, Multi-objective optimization.

Course Objectives

This course aims to provide information about evolutionary computation techniques and their application to optimization problems.

Recommended or Required Reading

Introduction to Evolutionary Computing by A.E. Eiben and J.E. Smith, Springer, 2nd Edition Global Optimization Algorithms – Theory and Application –Thomas Weise, 2009 Essentials of Metaheuristics, Sean Luke, Second Edition, 2012

Learning Outcomes:

1. To be able to explain evolutionary computation and its main components.

2. To be able to identify the most appropriate evolutionary computation method to a given

problem.

3. To be able to apply evolutionary computation methods to optimization problems.

4. To be able to design experimental studies for evolutionary algorithms

Week Topics
1

Introduction to Evolutionary Computation

2

Fundamentals and General Components of Evolutionary Computation

3

Binary Representation, Integer Representation and Binary Genetic Algorithms

4

Floating Point Representation, Evolution Strategies

5

Permutation Representation, Solving Travelling Salesman Problem using Genetic Algorithm

6

Tree Representation, Genetic Programming

7

Fitness, Selection and Population Management

8

Differential Evolution Algorithm

9

Particle Swarm Optimization Algorithm

10

Software Libraries for Evolutionary Computation

11

Working with Evolutionary Algorithms

12

Multiobjective Evolutionary Algorithms

13

Solving Example Problems

14

Course Overview

Grading:

  • Midterm %25
  • Term Project %25
  • Final  %50
P.O. 1 P.O. 2 P.O. 3 P.O. 4 P.O. 5 P.O. 6 P.O. 7 P.O. 8 P.O. 9 P.O. 10 P.O. 11
L.O. 1 0 0 0 0 0 0 0 0 0 0 0
L.O. 2 0 5 0 5 0 0 0 0 0 0 0
L.O. 3 5 0 5 5 0 0 0 0 0 0 0
L.O. 4 0 0 0 0 5 0 0 0 0 0 0

Submissions: Project, Report

Supplementary course: CENG 462

CENG 483 Behavioural Robotics

Approach robotics mainly software- and application-oriented; inspect mechatronic parts and hardware architectures of robots; analyse software components and software architectures; analyse software architectures and their properties that might provide smart behaviours; analyse hardware and software requirements for collaborative robots; develop collaborative and smart appearing robot applications.

Course Objectives

1. Learn hardware properties of robots (CO 1)
2. Learn software properties of robots (CO 2;3)
3. Develop applications that provide robots with collaborative and smart behaviours (CO 2;3)

Recommended or Required Reading

Mataric, Maja J; 2007; “The Robotics Primer”; The MIT Press; ISBN 026263354x ,Craig, John. J.; 2003; “Introduction to Robotics: Mechanics and Control”; Prentice Hall; ISBN 0201543613 ,Jones, Joe; 2003; “Robot Programming: A Practical Guide to Behaviour-Based Robotics”; McGraw-Hill, ISBN 0071427783 ,Enderton, Herbert B.; 2001; “A Mathematical Introduction to Logic”; Academic Press; ISBN 0-12-238452-0 ,Kelly, John; 1997; “The Essence of Logic”; ISBN 0-13-396375-6 ,Bell,J.L.; 1997; “A course in mathematical logic”; 1997; N.H.; ISBN 0-7204-2844-0 ,Gabbay, Dov M.; 2000; “Temporal logic: mathematical foundations and computational aspects”; Oxford: Clarendon press; ISBN 0-19-853768-9 ,Lootsma, Freerk A.; 1997; “Fuzzy logic for planning and decision making”; Kluwer Academic Publishers; ISBN 0-7923-4681-5

Learning Outcomes

1. Distinguish robot types and behaviours

2. Use techniques for smart robot behaviours

3. Use techniques for collaborative robot behaviours

4. Develop robots from robotics kits

Topics
Overview
Mechatronics
Software Architectures
Control
Artificial Intelligence Components
Robot Vision
Mapping
Planning
Navigation
Evaluation
Communication
Co-operation
Robot Ethics
Applications

Grading

Midterm: 20%

Quiz: 10%

Homework: 1o%

Presentation: 20%

Final: 30%

Report: 10%

CENG 484 Data Mining

Knowledge discovery overview, data mining in general, data preparation, basics of data mining, association rule mining, classification and prediction, cluster analysis, web mining, data mining applications, term projects.

Course Objectives

1.To enrich his technical background by meeting a new area,

2.To gain the skill of making research,

3.To be able to understand a complex problem and to be able to propose a solution,

4.To be able to manage a technical process,

5.To learn effective oral and written communication.

Recommended or Required Reading

J. Han, Data Mining: Concepts and Techniques , Morgan Kaufman, 2000. ,M. H. Dunham, Data Mining Introductory and Advanced Topics , Prentice Hall, Pearson Education, 2003. ,R. J. Roiger and M. W. Geatz, Data Mining A Tutorial Based Primer , Addison Wesley, 2003. ,M. J. A. Berry and G. S. Linoff, Mastering Data Mining , Wiley, 2000

Learning Outcomes

1. Learn the process of knowledge discovery and data mining algorithms

2. Gain the ability of using data mining tools

3. Understand a data mining problem, design the process overflow and implement the steps

4. Document and present a Project

Topics
Knowledge Discovery Overview
Data Mining in General
Data Warehousing and Methods
Data Preparation
Basics of Data Mining
Association Rule Mining
Association Rule Mining
Classification and Prediction
Classification and Prediction
Cluster Analysis
Cluster Analysis
Web Mining
Data Mining Applications
Presentation and Discussion of Term Projects

Grading

Midterm: 30%

Presentation: 30%

Final: 40%

CENG 485 Information Technology Entrepreneurship

In addition to an introductory treatment of business fundamentals in information technology, course topics will include paradigms, strategies and methods in goal setting, team formation, intellectual property, customer projects and business management for information technologies.

Course Objectives

This course aims to present an entrepreneurial perspective with particular emphasis on information technology. This course emphasizes the entrepreneurial mindset, which is necessary to create or grow economically viable enterprises in information technology business.

Recommended or Required Reading

Stephen Covey, The 7 Habits of Highly Effective People, Free Press, 2004. ,Thomas Friedman, The World Is Flat, 3.0, A Brief History of the Twenty-First Century, Picador, Paperback, 2007. ,Fuat Alican, Yol, 2010.

Learning Outcomes

1. To know entrepreneurship in information sciences industry.

2 To understand entrepreneur vision and thinking.

3 To be prepared to build business and products.

4 To understand the sustainable growth concept.

Topics
First entrepreneurship experience
Presentation in information technologies
Marketing methodologies
Business development strategies
IBM and Microsoft examples
Team management paradigms
Insource and outsource concepts
Strategic planning and its importance
Importance of customer projects in business expansion
Experienced models in software team management
New business models
Global software trends and Türkiye
Future of software business I
Future of software business II

Grading

Midterm: 30%

Presentation: 40%

Final: 30%

CENG 486 Entrepreneurship for Smart Business

Components of smart business and its ecosystem. Automation of business processes. Business models for Smart Business and their implementation.

Course Objectives

Cloud computing, automation, data science and machine learning-based definition of Entrepreneurship for Smart Business.

Recommended or Required Reading

Business Model Generation: A Handbook for Visionaries, Game Changers, and Challengers Paperback – July 13, 2010 by Alexander Osterwalder (Author), Yves Pigneur (Author) ,Smart Business: What Alibaba’s Success Reveals about the Future of Strategy, Ming Zeng, Harvard Business Review Press, 2018. ,Dealing with Darwin: How Great Companies Innovate at Every Phase of Their Evolution Paperback – May 27, 2008 by Geoffrey A. Moore Ph.D. (Author)

Learning Outcomes

1. To be able to identify the needs of the real (International Business) world

2. To be able to analyze chaotic business situations and improve using Internet-based technologies

3. To be able to identify critical components and systems that impact success in business

4. To be able to demonstrate development in data transformationa and pathway to smartness

5. To be able to demonstrate ability to improve business processes with automation and smartness in smart business

Week Topics
1 Introduction to Smart Business
2 Smart Business Ecosystem
3 Automation-based Value Creation
4 Networking Partners
5 Data Intelligence
6 Automating Decision Making
7 Automating Business Processes
8 Automation-based Business Models
9 Subscription Economy
10 Cloud-based Business Platform Creation
11 Internet of Things and Digital Transformation
12 Entrepreneurship Qualities for Smart Business
13 Entrepreneurship Ecosystem for Smart Business
14 Future of Smart Business

 

 

 

 

 

 

 

 

 

 

 

 

 

Grading

Midterm: 25%

Homework: 15%

Presentaion: 25%

Final: 35%

CENG 487 Introduction to Computer Graphics

This course covers rendering techniques and programming interfaces for Computer Graphics. The course topics include basic mathematical concepts in Computer Graphics (two and three dimensional transformations), lighting models, methods for basic scene modeling and visibility analysis. Application of these Computer Graphics techniques on modern hardware using OpenGL is also covered.

Course Objectives

The main aim of the course is to familiarize the students with basic concepts in Computer Graphics such as modeling, rendering, texturing, and lighting. The students will gain practice in applying their knowledge using standard programming interfaces such as OpenGL.

Recommended or Required Reading

Interactive Computer Graphics: A Top-Down Approach with OpenGL, by Edward Angel and Dave Shreiner

Learning Outcomes

1. A bility to apply computer graphics techniques using standard programming interfaces

 

2. Ability to derive the mathematical relationship between 3D objects and image representations

3. Ability to compare different lighting models

4. Ability to optimize rendering software using visibility data structures

 

Topics
Introduction
Color
Mathematics for Computer Graphics
Three Dimensional Graphics
OpenGL
Texturing
Shading and Illumination I
Introduction to Rendering
Raycasting
Ray Tracing Basics
Photon Mapping and Global Illumination
Accelerating Ray Tracing
Shading and Illumination II
Volume Rendering
CENG 488 Computer Graphics

This course covers advanced rendering techniques for Computer Graphics. The course topics include advanced lighting models, acceleration and volume rendering techniques. Acceleration of these Computer Graphics techniques on modern hardware is also covered.

Course Objective

The main aim of the course is to familiarize the students with advanced techniques in Computer Graphics topics such as modeling, rendering, texturing, and lighting. The students will also gain practice in applying their knowledge.

Recommended or Required Reading

Computer Graphics: Principles and Practice. 3rd Ed., J.F. Hughes et al.

Learning Outcomes

1. Apply advanced computer graphics techniques in practice

2. Derive the mathematical equations for illumination and volume rendering techniques

3. Compare different kinds of lighting models

4. Optimize rendering software

Topics
Introduction
Raycasting
Ray Tracing Techniques
Photon Mapping I
Photon Mapping II
Global Illumination I
Global Illumination II
Accelarating Raytracing
Shading
Illumination
Volume Rendering I
Volume Rendering II
Advanced Scene Modelling I
Advanced Scene Modelling II

Grading

Midterm: 25%

Homework: 30%

Final: 35%

CENG 499 Cooperative Education (COOP)

The CENG499 Cooperative Education (COOP) course aims to provide students with hands-on experience in real working environments through part-time positions in collaboration with the industry. As part of this course, students work part-time at partner companies for 13 weeks, one or two full days per week. To be eligible, students must be in their senior year, have a minimum cumulative GPA of 3.00, and successfully complete all courses from the first four semesters. CENG499 is a 3-credit (0+6) technical elective course. Through this course, students are expected to:

·         reinforce their theoretical knowledge through industrial applications,

·         develop project management, reporting, and communication skills in professional environments,

·         identify their career goals and establish strong connections with the industry.

All work conducted during the course is evaluated based on the reports. Insurance and contract procedures are coordinated by the Faculty of Engineering Dean’s Office. You can access the Cooperative Education Regulation through the link.