ATA 151-Principles of Atatürk and History of Turkish Revolution I
General concepts about the course, collapse of the Ottoman Empire, leading to National Struggle, congresses, Sevres Treaty, wars, opening of Turkish Great National Assembly, Mudanya Armistice, Lausanne Treaty discussions.
Lectures: 2 h
Tutorial: 0 h
Credits: 2
ECTS Credits: 2
Prerequisite: None

ATA 152-Principles of Atatürk and History of Turkish Revolution II
Abolishment of sultanate and declaration of Republic, strategy and importance of Turkish Revolution, financial, social, legal, educational and cultural renovation, experiments for multi- party system, Turkish foreign policy during Atatürk?s term, basic principles of Atatürkism.
Lectures: 2 h
Tutorial: 0 h
Credits: 2
ECTS Credits: 2
Prerequisite: None

CEN 133-Algorithms and Programming I
Introduction to computer systems, hardware, software. Numerical data and base conversion. Introduction to basic network services. Algorithms and problem solving. Debugging approaches. C/C++ variables, data types and expressions, simple input / output commands. Arithmethic and logical operators. Branching control structures. Arrays. Loop structures. Functions. Structuresand union. Linked lists.
Lectures: 2 h
Tutorial: 2 h
Credits: 3
ECTS Credits: 9
Prerequisite: None

CEN 134-Algorithms and Programming II
Functions in algorithms, reference variables as parameters, value and reference variables and memory usage, static and automatic variables. Multi-dimentional arrays, strings, vectors, dynamic arrays. File I/O. C pointer concept, pointer arithmetic. Recursion. Inheritence. OOP applications.
Lectures: 2 h
Tutorial: 2 h
Credits: 3
ECTS Credits: 7
Prerequisite: None

CEN 204-Data Structures and Algorithms II
Lectures: 4 h
Tutorial: 0 h
Credits: 4
ECTS Credits: 6
Prerequisite: None

CEN 235-Data Structures
Computers and hardware, Algorithmic approach and the flexibility of C language features, Data structures and models, Algorithmic program design and flow charts, the program speed and memory requirement, Sorting algorithms, search algorithms, lists, linked lists, linked lists and applications, Stacks, Queues, the tree data model and its applications, Graf concept and data model, graph algorithms, data compression methods.
Lectures: 3 h
Tutorial: 0 h
Credits: 3
ECTS Credits: 8
Prerequisite: None

CEN 302-Operating Systems
This is an introductory course on the internal operations and fundamental principles of modern operating systems. Specifically, this course will cover core concepts such as processes and threads, deadlocks, memory management, and file systems.
Lectures: 3 h
Tutorial: 0 h
Credits: 3
ECTS Credits: 5
Prerequisite: None

CPL 100-Career Planning
The main purpose of this course to create awareness among students about "career"; It helps students to make a career planning
compatible with their future goals by making them aware of their interests, individual skills and values.
In addition, another purpose of the course is to help students discover what they can do during their education in order to identify areas
where they will be productive and happy after graduation. To help them gain knowledge about different sectors in which they can work
after graduation, and to gain awareness of the need to develop their knowledge and skills during their studentship in a way that is
compatible with the requirements of the relevant sectors.
Lectures: 1 h
Tutorial: 0 h
Credits: 1
ECTS Credits: 2
Prerequisite: None

ENG 231-Expository Reading and Writing
This course aims to improve students' expository reading and writing skills. Structural elements of a text, collocations, connectors, sentence heads and phrases for more effective expression are among the subjects to be studied. Texts that are related to the field are selected to be used as course material to motivate and involve students. This course also introduces students with basic terminology in their fields.
Lectures: 2 h
Tutorial: 2 h
Credits: 3
ECTS Credits: 4
Prerequisite: None

ENG 232-Analytical Reading and Writing
This course aims to improve students? analytical reading and writing skills. Texts that are related to the field of computer engineering and software engineering are selected to be used as course material to motivate and involve students. Students read and analyze texts and produce their own texts that involve their responses to the input they receive. This course also introduces students with basic terminology in their fields.
Lectures: 2 h
Tutorial: 2 h
Credits: 3
ECTS Credits: 4
Prerequisite: None

IE 261-Occupational Health and Safety I
OHS regulations; hazards in workplace environment and preventation form thesedangers; risk assement; personal protective equipment.
Lectures: 2 h
Tutorial: 0 h
Credits: 2
ECTS Credits: 2
Prerequisite: None

IE 262-Occupational Health and Safety II
This course is a follow up of the first part of Health and Safety at work . Understanding how important is employee health and safety, its principles, legislative perspective, Environmental aspects , employer, employee relationships, training employees on recently developed health and safety measures, some legal aspects at workplace, increasing awareness of occupational health and safety, hazardous and dangerous goods handlings, identifying occupational diseases ,early detection of work-related diseases and remedies and supplemental measures to take at workplace. First aid practices ,some measurements about threshold limits and how they are calculated.
Lectures: 2 h
Tutorial: 0 h
Credits: 2
ECTS Credits: 2
Prerequisite: None

MATH 121-Calculus I
Definition and types of functions, drawing their graphics, limits and continuity, definition of derivative and geometric meaning, differentiation rules, integration, definite and indefinite integrals.
Lectures: 4 h
Tutorial: 2 h
Credits: 5
ECTS Credits: 7
Prerequisite: None

MATH 122-Calculus II
Sequences and infinite series, parametrizations of plane curves, polar coordinates, vectors and the geometry of space, functions of several variables, limits and continuity in higher dimensions, partial derivatives, directional derivatives and gradient vectors, extreme
values and saddle points, Lagrange multipliers, multiple integrals
Lectures: 4 h
Tutorial: 2 h
Credits: 5
ECTS Credits: 7
Prerequisite: MATH 121

MATH 123-Linear Algebra
System of linear equations; matrices and algebraic operations of matrices; methods for solving linear equation systems; Gauss and Gauss-Jordan methods; determinants and properties of determinants; Cramer's
rule; vector spaces and subspaces; basis, dimension and rank; eigenvalues and eigenvectors; diagonalization.
Lectures: 4 h
Tutorial: 0 h
Credits: 4
ECTS Credits: 6
Prerequisite: None

MATH 221-Numerical Methods for Engineers
Modeling techniques for engineering problems, introduction to programming and software algorithms, techniques for finding roots of equations, solution of lineer equation systems and matrix algebra, curve fitting, least squares regression, interpolation, techniques for numerival integration, solution techniques of bundary and initial value problems and their engineering applications.
Lectures: 2 h
Tutorial: 2 h
Credits: 3
ECTS Credits: 5
Prerequisite: None

MATH 224-Probability and Statistics
Statistics, data, variable, frequency distributions, graphics, measures of central tendencies, measures of central dispersions, probability: The axioms of probability, random variables, Discrete random variables,
continuous random variables, probability distributions: Discrete probability distributions, continuous probability distributions, statistical decision theory, estimation.
Lectures: 4 h
Tutorial: 0 h
Credits: 4
ECTS Credits: 6
Prerequisite: None

MATH 225-Discrete Mathematics
The main goal is understanding of the fundamental discrete mathematics topics, discrete structures and enhancing the analytical problem solving capabilities is the important purpose.
Lectures: 4 h
Tutorial: 0 h
Credits: 4
ECTS Credits: 6
Prerequisite: None

PHYS 183-Physics I
Physics and measurement; physical quantities; motion in one dimension; vectors; motion in two dimensions; Newton's laws of motion; work and kinetic energy; potential energy and conservation of mechanical energy; linear momentum, conservation of linear momentum; collisions; dynamics of a system of particles; rotational dynamics; torque and angular momentum; equilibrium of rigid bodies.
Lectures: 3 h
Tutorial: 2 h
Credits: 4
ECTS Credits: 6
Prerequisite: None

PHYS 184-Physics II
Charge and Matter, Coulomb?s Law, Electric Field, Gauss?s Law, Electrostatic Potential, Capacitance and Dielectrics, Current and Resistance, Electromotive Force and Circuits, The Magnetic Field, Sources of the Magnetic Field, Faraday?s Law, Inductance, Alternating Current Circuits, Electromagnetic Waves and Maxwell?s Equations, Electromagnetic Spectrum.
Lectures: 3 h
Tutorial: 2 h
Credits: 4
ECTS Credits: 6
Prerequisite: None

SE 130-Introduction to Software Engineering
The scope of software engineering, software life cycle models, software process, teams, tools, testing, from modules to objects, reusability, portability, planning and estimate, requirements, classical analysis.
Lectures: 3 h
Tutorial: 0 h
Credits: 3
ECTS Credits: 6
Prerequisite: None

SE 207-Human-Computer Interaction
Basic human-computer interaction, user interface design principles and design methods, characteristics of graphical and web user interfaces, principles of screen design, textual communication, internationalization
and accessibility.
Lectures: 2 h
Tutorial: 2 h
Credits: 3
ECTS Credits: 5
Prerequisite: None

SE 210-Software Requirements Analysis
The main topics to be used for system requirements, techniques and practices with documentation in the requirements specification, requirements exploration operations such as prototype production and user interviews, demonstration of the approaches for describing and organizing of software requirements, emphasizing the importance of the requirements work for converting to the software system design, the presentation of the alternative design approaches for developing system testing, specification and design tools, specification appraisal techniques, schematic and graphical approaches, documentation, modeling and design of the software systems using UML.
Lectures: 3 h
Tutorial: 0 h
Credits: 3
ECTS Credits: 4
Prerequisite: None

SE 211-Software Design and Architecture
Introduction to design, design activities and process models, structured design - data flow diagrams, logical and physical design, structured design - process specification, data dictionaries and detailed design, object-oriented design - static system and behavioral model design, architectural design, design styles and patterns, design of user interface layer, design of data access layer, boundary class design.
Lectures: 3 h
Tutorial: 0 h
Credits: 3
ECTS Credits: 5
Prerequisite: None

SE 237-Object Oriented Programming
In this course, students will learn basic principles of object oriented programming using C++ programming language.
Lectures: 3 h
Tutorial: 0 h
Credits: 3
ECTS Credits: 7
Prerequisite: None

SE 305-Professional Software Engineering Practice
Software engineering approach in relation with software development, analysis and evaluation of large software project in terms of software engineering approach.
Lectures: 2 h
Tutorial: 2 h
Credits: 3
ECTS Credits: 5
Prerequisite: None

SE 307-Database Management Systems
The aim of the course is to teach the basic principles of database management systems. Requirements, analysis, design, implementation and maintenance phases which are being the fundamental topics of database engineering. Entity relationship modeling, normalization types, relational algebra are described within the database development approach. Students will learn how to develop a database in an organized step-by-step fashion. If time permits students will develop a database design project.
Lectures: 2 h
Tutorial: 2 h
Credits: 3
ECTS Credits: 6
Prerequisite: None

SE 308-Advanced Topics in Database Systems
Advanced T-SQL, Recovery and Concurrency, Missing Information, Security, Optimization, Distributed Databases, Decision Support Systems, Big Data and NoSQL, Document Databases, Graph Databases.
Lectures: 2 h
Tutorial: 2 h
Credits: 3
ECTS Credits: 6
Prerequisite: None

SE 311-Software Construction
Determining the software and hardware items managed by construction identity, managing the software development projects items by creating a project based configuration management plan for controlling project outcomes, managing of change requests specifying configuration control procedures, carry out a version planning for change requests.
Lectures: 3 h
Tutorial: 0 h
Credits: 3
ECTS Credits: 5
Prerequisite: None

SE 312-Operating Systems
Lectures: 3 h
Tutorial: 0 h
Credits: 3
ECTS Credits: 5
Prerequisite: None

SE 315-Software Engineering
The scope of software engineering, software development life cycle models, software process, software teams, software tools, software testing, objects and modules, requirements, object-oriented analysis. Types of design and object-oriented design, methods of bringing together modules/objects during the implementation process, post-delivery maintenance of the software product, UML diagrams.
Lectures: 3 h
Tutorial: 0 h
Credits: 3
ECTS Credits: 5
Prerequisite: None

SE 319-Special Topics in Software Engineering
Current issues in software engineering will be discussed.
Lectures: 3 h
Tutorial: 0 h
Credits: 3
ECTS Credits: 5
Prerequisite: None

SE 322-Software Project Architecture and Design
Lectures: 3 h
Tutorial: 0 h
Credits: 3
ECTS Credits: 6
Prerequisite: None

SE 335-Cyber Security
Lectures: 3 h
Tutorial: 0 h
Credits: 3
ECTS Credits: 5
Prerequisite: None

SE 342-Software Validation and Testing
Introduction to software verification and validation, software testing, basics of software security, software testing tools, black-box unit testing, white-box unit testing and control-flow testing, data-flow testing, website testing, usability testing, genetic algorithms, security testing and code inspections, software test metrics.
Lectures: 3 h
Tutorial: 0 h
Credits: 3
ECTS Credits: 6
Prerequisite: None

SE 343-Mobile Application Development
This course aims to give basic information about software development in mobile device environment and to teach to write a program on Android operating system.
Lectures: 2 h
Tutorial: 2 h
Credits: 3
ECTS Credits: 5
Prerequisite: None

SE 355-Advanced Programming Tool and Methods
Introduction to the basic principles of programming practice: testing, debugging, portability, performance, design alternatives, and style; application in a variety of programming languages, programming environments, and operating systems; tools used in the software development process for improving program functionality, performance, and robustness.
Lectures: 3 h
Tutorial: 0 h
Credits: 3
ECTS Credits: 5
Prerequisite: None

SE 356-Web Application Development
The purpose of this course is to teach learners electronic business (e-business) and related services they need to utilize in web-based programming. Learners who complete the course successfully will learn converting the static web pages to a dynamic structure. The overall structure of PHP language and its installation, variables, constants, operators, control structures, loops, arrays, file directory operations, cookies, session concept forms, MySQL installation, basic SQL language commands, database connections with PHP, PHP and graphics, PHP and XML, PHP and security.
Lectures: 2 h
Tutorial: 2 h
Credits: 3
ECTS Credits: 5
Prerequisite: None

SE 360-Compiler Design
The purpose of this course is to help the student learn the basic concepts of compiler design such as lexical and syntax analysis, code optimization. Compiler structure, Lexical analysis (including regular expressions and finite automata), Syntax analysis (including context-free grammars, LL parsers, bottom-up parsers, and LR parsers), Syntax-directed translation, Type checking (including type conversions and polymorphism), Run-time environment (including parameter passing, symbol tables, and storage allocation), Code generation (including intermediate code generation), Code optimization.
Lectures: 3 h
Tutorial: 0 h
Credits: 3
ECTS Credits: 4
Prerequisite: None

SE 363-Java Programming
Introduction to Java, variables, operators, methods, objects and object oriented programming, string operators, exceptions and exception handling, using methods, data structures, files and streams, network programming, using swing GUI objects, using swing controls, GUI programming, JDBC connections, Java Applets.
Lectures: 3 h
Tutorial: 0 h
Credits: 3
ECTS Credits: 5
Prerequisite: None

SE 364-Linux Scripts and Tools
Unix/Linux environment, Unix file system structure, account management, Unix compilers and interpreters, Unix window management, Unix shells and shell programming, software development in Unix/Linux environment, debugging and make tools, other system administration tools, basic process management.
Lectures: 3 h
Tutorial: 0 h
Credits: 3
ECTS Credits: 5
Prerequisite: None

SE 366-Linux System Programming
Lectures: 3 h
Tutorial: 0 h
Credits: 3
ECTS Credits: 5
Prerequisite: None

SE 373-Mobile Programming
Mobile device characteristics, application basics, activities and intents, threads, services, user interface layouts and events, multimedia techniques, hardware interface, networking, data storage methods, location-based services.
Lectures: 3 h
Tutorial: 0 h
Credits: 3
ECTS Credits: 5
Prerequisite: None

SE 374-Visual Programming
Introduction to visual programming, framework usage, project development, configuration management, use Form Tools (TextBox, ComboBox, CheckBox, RadiobButton, ListBox, Timer, Progress Bar, TabControl, ErrorProvider, DateTime, TreeView, ImageList ContexMenu, SplitContainer, MenuScript, Mouse Tracking).
Lectures: 2 h
Tutorial: 2 h
Credits: 3
ECTS Credits: 5
Prerequisite: None

SE 383-Python Programming
Introduction to Python programming, input/output, loops, control structures (if else, while, for looping), user defined functions, array lists, modules, object-oriented programming, database programming with SQLite, network programming.
Lectures: 2 h
Tutorial: 2 h
Credits: 3
ECTS Credits: 5
Prerequisite: None

SE 401-Capstone Project I
Requirements, analysis and design phases of a software system, issues related to project design and presentation, awareness of problems in real life software project, professional quality software solutions, application of software engineering methods.
Lectures: 0 h
Tutorial: 4 h
Credits: 2
ECTS Credits: 9
Prerequisite: None

SE 402-Capstone Project II
Implementation and test phases of a software system as a follow up to the project designed in the Capstone Project I, software development hints.
Lectures: 0 h
Tutorial: 4 h
Credits: 2
ECTS Credits: 8
Prerequisite: SE 401

SE 403-Software Project Management
Introduction to software project management, project evaluation and software management, overview of project planning, project planning steps, software project size estimation methods, business planning, risk management, resource allocation, project monitoring and control, administrative contracts, team management, software quality and standards, configuration management.
Lectures: 3 h
Tutorial: 0 h
Credits: 3
ECTS Credits: 6
Prerequisite: None

SE 410-Software Quality Assurance
Introduction to software quality and assurance, software quality features, aims of software quality assurance, software quality issues, quality systems, best practices approach, process concept, software process development and improvement models, software quality management, cost of software quality, software testing and application, configuration management, agile methodologies.
Lectures: 3 h
Tutorial: 0 h
Credits: 3
ECTS Credits: 4
Prerequisite: None

SE 417-Software Metrics
Measurement theory and fundamental concepts; software measurement and fundamental software metrics; software complexity metrics and models; software size metrics and estimation models; software effort metrics and estimation models; software quality metrics: ISO 9126, ISO 15504 and CMMI quality models; using function point metrics to measure software process improvement; availability metrics; measuring and analyzing customer satisfaction; software maintenance metrics.
Lectures: 3 h
Tutorial: 0 h
Credits: 3
ECTS Credits: 5
Prerequisite: None

SE 426-Real-Time Systems
Lectures: 3 h
Tutorial: 0 h
Credits: 3
ECTS Credits: 5
Prerequisite: None

SE 434-Social Network Analysis
The aim of the course is to teach the students essential techniques of Social Network
Analysis, explain basic concepts of networks, and introduce network visualization tools and
techniques.
Lectures: 3 h
Tutorial: 0 h
Credits: 3
ECTS Credits: 6
Prerequisite: None

SE 454-Distributed Computing
This course focuses on basic concepts underlying the design, implementation, and management of distributed systems. It covers fundamental topics such as basic concepts in distributed systems, synchronization, election, distributed agreement, inter-process communication and coordination, replicated data management, distributed objects, security, and directory and discovery services.
Lectures: 3 h
Tutorial: 0 h
Credits: 3
ECTS Credits: 4
Prerequisite: None

SE 456-Game Programming
Introduction to game programming, game architecture, game logic, basics of 3D games, programming keyboard, mouse and user interface for 3D games.
Lectures: 3 h
Tutorial: 0 h
Credits: 3
ECTS Credits: 5
Prerequisite: None

SE 464-Case Studies in Software Engineering I
Case studies are a powerful and flexible empirical method. They are used primarily for exploratory investigations, both prospectively and retrospectively, that attempt to understand and explain phenomenon or construct a theory. They can also be used in the validation of research results. Due to this dexterity, they have become popular in software engineering and are frequently used in papers to understand, to explain or to demonstrate the capabilities of a new technique, method, tool, process, technology. Unfortunately, they are usually not used correctly. The aim of this lecture is to teach software engineering candidates how to effectively design, conduct, evaluate and read case studies.
Lectures: 3 h
Tutorial: 0 h
Credits: 3
ECTS Credits: 4
Prerequisite: None

SE 465-Case Studies in Software Engineering II
Case studies are a powerful and flexible empirical method. They are used primarily for exploratory investigations, both prospectively and retrospectively, that attempt to understand and explain phenomenon or construct a theory. They can also be used in the validation of research results. Due to this dexterity, they have become popular in software engineering and are frequently used in papers to understand, to explain or to demonstrate the capabilities of a new technique, method, tool, process, technology. Unfortunately, they are usually not used correctly. The aim of this lecture is to teach software engineering candidates how to effectively design, conduct, evaluate and read case studies.
Lectures: 3 h
Tutorial: 0 h
Credits: 3
ECTS Credits: 4
Prerequisite: None

SE 499-Industry Tranining
Summer training is six weeks (30 working days), it provides field experience carried out in any domestic or foreign public or private institution, student is to meet all the prompts of Faculty of Engineering & Natural Sciences and Department of Software Engineering internship directives to complete the internship successfully.
Lectures: 0 h
Tutorial: 0 h
Credits: 0
ECTS Credits: 6
Prerequisite: None

TRD 157-Turkish Language I
In this course, the studies will be made about the understanding, explanation, reading and writing, various features of written explanation will be considered and examined with critical viewpoint. The punctuation marks which are the basis of the written explanation and writing rules will be made evident and the correct use of such rules for efficient and sound expression will be elicited.
Lectures: 2 h
Tutorial: 0 h
Credits: 2
ECTS Credits: 2
Prerequisite: None

TRD 158-Turkish Language II
In this course, the studies will be made about the understanding, explanation, reading and writing, various features of written explanation will be considered and examined with critical viewpoint. The punctuation marks which are the basis of written explanation and writing rules will be made evident and the correct use of such rules for efficient and sound expression will be elicited.
Lectures: 2 h
Tutorial: 0 h
Credits: 2
ECTS Credits: 2
Prerequisite: None