Skip Navigation LinksSoftware-Engineering-CMSE(English)-

Software Engineering-CMSE(English)

Duration (Years)
Medium of Instruction

Software Engineering is a relatively new program established in 2008 to meet the increasing demand for qualified software engineers. Software engineering involves the design, production and operation of software systems based on the engineering principles. Students of the Software Engineering Program have the possibility of accessing and intensively working on the most up-to-date information regarding their field of study.

General Information

Software Engineering Program emphasizes the skills and knowledge needed in the production of large complex software needed for the functioning of our society. Software Engineering graduates have the skills to take a software solution through all phases of production. In both programs, along with the technical courses, students produce a graduation project.


The main aim of the Software Engineering Program is to introduce the students with the most up-to-date developments in the area of software engineering and, at the same time, to enhance their life-long learning skills. The Program aims to bring up qualified and well-educated software engineers who are knowledgeable in computer systems, hardware and software, and who are able to put their theoretical knowledge into practice by producing large-scale software designs. The department graduates are perfectly equipped to deal with rapidly changing environment due to their solid education and strong background in the underlying principles of the technology, as well as hands on experience they get through laboratory work.


The Software Engineering program offering education under the Computer Engineering Department has international, distinguished full time staff of academicians and researchers. Furthermore, a selected group of graduate students work as research and teaching assistants. Fully-equipped software and hardware labs enabling computer engineering students to combine theory and practice are available at the Department. There are three general-use computer laboratories, one graduation project lab, two multimedia laboratories, two logic design laboratories, one microprocessor laboratory, one circuit and electronics laboratory, one research and development laboratory and, last but not least, two research-development laboratories.

Career Opportunities

Graduates of the Software Engineering Program are equipped with the skills demanded by the sector. Designing, implementing, testing, deploying and maintaining large scale complex software systems necessitates knowledge and skills of a software engineer. Given that the world today depends so much on large scale complex software systems, it is not a surprise that qualified software engineers are in big demand, and well compensated financially. Employers of software engineers include banks, large International companies with information technology departments, the public sector and universities. Graduates of the program can also pursue graduate studies in a software related area.

Contact Information

Tel: +90 392 630 1484
Fax: +90 392 365 0711

Duration (Years)
Medium of Instruction


Course Code Course Title Semester Credit Lecture Hour (hrs/week) Lab (hrs/week) Tutorial (hrs/week) ECTS
Semester 1
CMPE101 Foundations of Computer Engineering
Computers and information processing -notion of computers, concepts of data and information, applications of computers, history of computing. Computer hardware -CPU, memory, input/output (I/O) interface, secondary storage, ports, types of computer systems. Computer software -system software, utilities, application software. Data communication. An overview of operating systems. Basics of problem solving approaches, components and construction of computer programs, flowcharting, and modular programming issues. Basics of C programming language and several laboratory experiments.
1 3 3 1 - 6
MATH163 Discrete Mathematics
Set theory, functions and relations; introduction to set theory, functions and relations, inductive proofs and recursive definitions. Combinatorics; basic counting rules, permutations, combinations, allocation problems, selection problems, the pigeonhole principle, the principle of inclusion and exclusion. Generating functions; ordinary generating functions and their applications. Recurrence relations; homogeneous recurrence relations, inhomogeneous recurrence relations, recurrence relations and generating functions, analysis of algorithms. Propositional calculus and boolean algebra; basic boolean functions, digital logic gates, minterm and maxterm expansions, the basic theorems of boolean algebra, simplifying boolean function with karnaugh maps. Graphs and trees; adjacency matrices, incidence matrices, eulerian graphs, hamiltonian graphs, colored graphs, planar graphs, spanning trees, minimal spanning trees, Prim's algorithm, shortest path problems, Dijkstra's algorithms .
1 3 3 1 - 5
ENGL181 Academic English - I
ENGL 181 is a first semester freshman academic English course. It is designed to help students improve the level of their English to B1 level, as specified in the Common European Framework of Reference for Languages. The course connects critical thinking with language skills and incorporates learning technologies such as Moodle. The purpose of the course is to consolidate students? knowledge and awareness of academic discourse, language structures and lexis. The main focus will mainly be on the development of productive (writing and speaking) and receptive (reading) skills in academic settings.
1 3 5 1 - 4
ENGL191 Communication in English - I
ENGL 191 is a first semester freshman academic English course. It is designed to help students improve the level of their English to B1 level, as specified in the Common European Framework of Reference for Languages. The course connects critical thinking with language skills and incorporates learning technologies such as Moodle. The purpose of the course is to consolidate students? knowledge and awareness of academic discourse, language structures and lexis. The main focus will be on the development of productive (writing and speaking) and receptive (reading) skills in academic settings.
1 3 3 1 - 4
MATH151 Calculus - I
Limits and continuity. Derivatives. Rules of differentiation. Higher order derivatives. Chain rule. Related rates. Rolle's and the mean value theorem. Critical Points. Asymptotes. Curve sketching. Integrals. Fundamental Theorem. Techniques of integration. Definite integrals. Application to geometry and science. Indeterminate forms. L'Hospital's Rule. Improper integrals. Infinite series. Geometric series. Power series. Taylor series and binomial series.
1 4 4 - 1 7
PHYS101 Physics - I
Physical quantities and units. Vector calculus. Kinematics of motion. Newton`s laws of motion and their applications. Work-energy theorem. Impulse and momentum. Rotational kinematics and dynamics. Static equilibrium.PLAB101 must be taken with PHYS101 lab.
1 4 4 1 - 6
Semester 2
CMSE100 Introduction to Software Engineering
Introduction to Profession
2 No-Credit - 1 - 2
CMPE112 Programming Fundamentals
An overview of C programming language, Sequential structure Data types and classes of data, arithmetic operators and expressions, assignment statements, type conversions, simple I/O functions (printf, scanf, fprintf, fscanf, gets, puts, fgets, fputs). Selective structure Relational operators, logical operators, conditional expression operator, conditional statements (if, switch). Repetitive structures While, do-while, for loops, loop interruptions (goto, break, continue), Null statement, comma operator. Functions Function definition and function call, external variables, storage classes, recursion. Arrays Array declaration, array initialization, arrays as function arguments. Pointers Basics of pointers, functions and pointers, arrays and pointers, strings and pointers, library functions for processing strings, pointer arrays. Structures Basics of structures, structures and functions, arrays of structures. (Pre-requisite: CMPE 101)
2 4 4 1 - 7
ENGL192 Communication in English - II
This course is designed to further help students improve their English to B2 level, as specified in the Common European Framework of References for Languages. The course aims to reconsolidate and develop students? knowledge and awareness of academic discourse, language structures, and critical thinking. The course also incorporates use of technologies such as MOODLE. The course will focus on reading, writing, listening, speaking and introducing documentation, and will also focus on presentation skills in academic settings.
2 3 3 - 1 4
ENGL182 Academic English - II
ENGL 182 is a second semester freshman academic English course. It is designed to help students improve the level of their English to B2 level, as specified in the Common European Framework of Reference for Languages. The course connects critical thinking with language skills and incorporates learning technologies such as Moodle. The purpose of the course is to consolidate students? knowledge and awareness of academic discourse, language structures and lexis. The main focus will mainly be on the development of language skills in reading, writing, listening and speaking and the improvement of general academic study skills necessary in an academic setting.
2 3 5 1 - 4
MATH152 Calculus - II
Vectors in R3. Lines and Planes. Functions of several variables. Limit and continuity. Partial differentiation. Chain rule. Tangent plane. Critical Points. Global and local extrema. Lagrange multipliers. Directional derivative. Gradient, Divergence and Curl. Multiple integrals with applications. Triple integrals with applications. Triple integral in cylindrical and spherical coordinates. Line, surface and volume integrals. Independence of path. Green's Theorem. Conservative vector fields. Divergence Theorem. Stokes' Theorem.
2 4 4 1 - 7
PHYS102 Physics - II
Kinetic theory of ideal gases. Equipartition of energy. Heat, heat transfer and heat conduction. Laws of thermodynamics, applications to engine cycles. Coulombs law and electrostatic fields. Gauss’s law. Electric potential. Magnetic field. Amperes law. Faradays law.
PLAB102 must be taken with PHYS102 lab.
2 4 4 1 - 6
TUSL181 Turkish as a Second Language 2 2 2 - - 3
HIST280 Atatürk's Principles and History of Turkish Reforms 2 2 2 - - 3
Semester 3
CMSE201 Fundamentals of Software Engineering
Introducation to Software Enginering
3 4 4 1 - 6
CMPE211 Object Oriented Programming
Basics of C++ and Control structures. Program design, Object-Oriented programming and its specific features. Layout of a simple C++ program (elementary C++ programming. Fundamental types, scope. Overview of selection and iteration structures of C and C++ languages. Examples of C++ programs. Functions and Arrays. Review of functions and arrays. Prototypes (declarations), function definition, function overloading, inline functions, scope resolution operator (::), call-by-value, call-by-reference (reference parameters), default arguments, array declarations, operations on arrays, using arrays as function arguments. Pointers, C strings and C++ strings. Pointer variables, declaration and initialization. Use of pointers in call-by-reference function calls, returning a reference, arrays of pointers, pointers to arrays, pointers to functions, dynamic memory allocation with C++ operators new and delete, C-strings, input/output operations, standard C-string functions, formatted and unformatted input /output, C++ string type (the standard string class). Classes and Data abstraction. Structure definition, accessing members 2 of structures, class declarations, constructors, constructor initialization lists. Class destructor, member access specifiers public and private, const member functions, friend functions and classes, static data and function members. Operator Overloading. Fundamentals and restrictions of operator overloading, this pointer, overloading unary and binary operators. Composition and Inheritance. Base classes and derived classes, protected class members, virtual functions and polymorphism, virtual destructors, private access vs. protected access, abstract base classes. Revision of the material discussed in the course.
3 4 4 1 - 7
CMPE231 Data Structures
Data types and basic operations on data structures. Arrays, strings, stacks, queues, linked list structures and tree structures. Various applications of these structures. Binary trees, binary search trees, B, B+, B* trees. Graphs and their applications. Sets. Sorting techniques. Searching.
3 4 4 1 - 7
MATH241 Linear Algebra and Ordinary Differential Equations
Linear Algebra ve Ordinary Differential Equations
3 4 4 1 - 6
UE01 University Elective - I 3 3 3 - - 6
Semester 4
CMSE222 Introduction to Computer Organization 4 4 4 1 - 7
CMPE242 Operating Systems
Operating system definition, simple batch systems, multiprogramming, time-sharing, personal computer systems, parallel systems. introduction to process, process scheduling, operations on processes, cooperating processes, interprocess communications, interrupts, process synchronization, criticalsection problem, atomic instructions, semaphores, synchronization problems, CPU scheduling, scheduling criteria and algorithms, multiple processes and real-time scheduling, algorithm evaluation, deadlocks, characterization and handling of deadlocks, deadlock prevention avoidance and detection, deadlock recovery, memory management and virtual memory, address spaces, swapping, memory allocation, paging, segmentation, file-systems, file concepts, access methods, directory structure.
4 4 4 1 - 6
MATH373 Numerical Analysis for Engineers
Numerical error. Solution of nonlinear equations, and linear systems of equations. Interpolation and extrapolation. Curve fitting. Numerical differentiation and integration. Numerical solution of ordinary differential equations.
4 3 3 1 - 6
ENGL201 Communication Skills
ENGL 201 is a Communication Skills course for students at the Faculty of Engineering. The course aims to introduce a range of skills, including effective written and oral communication, research skills and study skills. Throughout the course the students will be involved in project work intended to help them in their immediate and future academic and professional life. This will include library research, technical report writing and an oral presentation. By investigating a topic of their own choice, students will develop their understanding of independent research skills. During the report writing process, students will improve their writing and develop the ability to produce organized, cohesive work. The oral presentation aims to enhance spoken fluency and accuracy and provide training in the components of a good presentation.
4 3 3 1 - 4
UE02 Uni.Elective - Arts & Humanities- I 4 3 3 - - 6
Semester 5
CMSE321 Software Requirements Analysis and Specification
Functional, non-functional and domain requirements. User and system requirements. Feasibility study. Estimation techniques. Languages and models for representing requirements. Performance, reliability, availability, safety, and security issues. Requirements documentation standards. Requirements management: handling requirements changes
5 4 4 1 - 6
CMSE353 Security of Software Systems 5 4 4 1 - 7
CMPE371 Analysis of Algorithms
Design, analysis and representation of algorithms. Models of computation, fundamental strategies -divide and conquer, recursion, search and traversal, backtracking, branch and bound, analysis tools and techniques for algorithms, representation of sets and graphs, algorithms on graphs, NP-completeness and intractability
5 4 4 1 - 7
UE03 University Elecitive - III 5 3 3 - - 4
MATH322 Probability and Statistical Methods
Introduction to probability and statistics. Operations on sets. Counting problems. Conditional probability and total probability formula, Bayes' theorem. Introduction to random variables, density and distribution functions. Expectation, variance and covariance. Basic distributions. Joint density and distribution function. Descriptive statistics. Estimation of parameters, maximum likelihood estimator. Hypothesis testing.
5 3 3 1 - 5
Semester 6
CMSE322 Software Design
Modular software design. Different architectural design styles for software. UML diagrams, Client/server paradigm. Choice of appropriate software and hardware system capabilities. Dealing with timing constraints. Formal software design specification techniques. Configuration management. Software design for distributed systems. Reusability and commercial off-the-shelf software modules.
6 4 4 1 - 7
CMPE318 Programming Language Design
General principles and paradigms of programming languages: syntax, semantics and translation, imperative programming, memory management, object oriented programming and logic (declarative) programming. Paradigms will be studied, and compared between one another, through C, Java and Prolog languages.
6 4 4 1 - 6
CMSE346 Computer Networks and Communication
This course addresses the general principles of computer networks and communication with emphasis on the software aspects of networking. In the study of the multilayered model, it begins with application level and works its way down towards the lower layers. Topics include: Internet 1 and Internet applications, transport protocols, switching and routing, link layer and LANs. Software support for networks.
6 4 4 1 - 7
CMPE354 Database Management Systems
This course introduces the student to the fundamentals of database management. Topics covered include: the Entity-Relationship model; the Relational model and its mathematical foundations; most important features of Structured Query Language (including basic structure, aggregate functions, nested queries, index definition, stored procedures and functions, views, database modification, domain constraints, assertions, triggers, transaction definition, data definition language, granting privileges, security), query languages Datalog and QBE; Object-Oriented and Object-Relational databases; design principles of Relational databases (normal forms, functional dependencies, decomposition).
6 4 4 1 - 6
CMSE326 Software Quality Assurance and Testing
Software metrics. Quality planning and quality control. Inspections and formal technical reviews. Blackbox and white-box testing, problem analysis and reporting techniques. Verification and validation techniques. Process and product quality assessment. Process measurement. Software quality assurance standards.
6 4 4 1 - 6
Semester 7
CMSE400 Summer Training
As a part of the fulfillment of the graduation requirements, all students must complete 40 work days of summer training after the second and/or third year, during summer vacations. The summer training should be carried out in accordance with the rules and regulations set by the department. (3rd/4th year standing)
7 No-Credit - - - 1
CMSE405 Graduation Project - I 7 1 1 1 - 2
CMPE471 Automata Theory
Mathematical preliminaries and basic concepts. Strings, Languages and Grammars. Chomsky hierarchy of grammars. Deterministic and nondeterministic finite automata. Equivalence of deterministic and nondeterministic finite automata. Minimization of finite automata. Regular grammars and regular expressions. Pushdown automata. Context free grammars. Chomsky normal form. Greibach normal form. Correspondence of pushdown automata and context free grammars. Introduction to Parsing
7 4 4 1 - 6
CMSE473 Software Process and Management
Software processes: standards, implementation, and assurance. Project management: requirements management and long-term evolution. Human effort, duration and cost estimation. Planning and tracking projects. Risk analysis, project control, change management.
7 4 4 1 - 6
CMPE423 Embedded System Design
The objective of the course is to introduce the concept of Harvard + RISC architecture microcontrollers and design of embedded computing systems on typical applications including interrupts, timers, LCD and LED displays, keypads, a/d converters, rotary coders, stepper motors, serial and parallel communication interfacing. The design applications are introduced on a very widely used typical 16-bit embedded microcontroller unit, PIC18F452. The scope of the course is the simple, distinct PIC18F452 embedded system design with the applications in C and RISC assembly programming. The design/theory scale of the course is around 60/40.
7 4 4 1 - 6
AE01 Area Elective - I 7 3 3 - - 6
AE02 Area Elective - II 7 3 3 - - 6
Semester 8
AE03 Area Elective - III 8 3 3 - - 6
AE04 Area Elective - IV 8 3 3 - - 6
CMSE406 Graduation Project - II
4th academic year students in Software Engineering are required to prepare and present a project under the supervision of a faculty member of the Department. Each student has to prepare a separate (individual) project. The purpose of the project is to develop an understanding of independent research by studying a particular Software Engineering topic. It is an extended exercise in the professional application of the skills and experience gained in the undergraduate program. Topics will be chosen in consultation with faculty members.
8 3 1 4 - 7
UE04 Uni. Elective - Social & Behavioral Sciences-I 8 3 3 - - 5
IENG355 Ethics in Engineering
This course is designed to introduce moral rights and responsibilities of engineers in relation to society, employers, colleagues and clients. Analysis of ethical and value conflict in modern engineering practice. Importance of intellectual property rights and conflicting interests. Ethical aspects in engineering design, manufacturing, and operations. Cost-benefit-risk analysis and safety and occupational hazard considerations.
8 3 3 - - 4

Undergraduate Programs

Apply Online

Graduate Programs

Apply Online

For Agencies

Agency Login