Software Engineering Program

Program title

Software Engineering

Final qualification

Bachelor of Science

Projected Study Time

4 years

ECTS Points

240 ECTS

Language of study

English

Mode of study

Full Time (Face to Face)

In today’s world of technology, software plays a highly crucial role. Software Engineers are the captains who run the ship of innovation in different industries and sectors. Introducing the phases of a software life cycle, our program prepares students for various areas of expertise such as Object-Oriented Analysis & Design, Human-Computer Interaction, Software Quality Assurance, Software Design & Architecture, Database Systems, and etc. Our graduates with their developed critical thinking and prominent teamwork skills are able to solve engineering problems through application of theories in practice.

The software is changing and innovating in many different industries and is becoming the main driving force for future development. In today's environments with rapidly changing demands, software complexity is increasing.

The goals and objective are divided into the following three main categories:
1. Technical: Software engineers always want to improve their technical skills. That is a no-brainer.
2. Soft skills: Although coding is the major part of software engineering, an engineer cannot just code. They also need to be able to argue their case, share learning achievements, communicate with their team and stakeholder etc. Ultimately this will determine you levelling up. Soft skills are as important as technical skills. With behaviour it takes a different type of skillset and experiences where the individual needs to practice it well to improve their tactics, skills and techniques mainly around their team.
3. Business related: It is another important part that realizing and understanding how you are adding value to the company you are working at.

Program graduates will be equipped with all the knowledge, skills and competencies that comprise the program learning outcomes (PLOs) to successfully join the software engineering work environment.

Upon completion of the undergraduate degree program in software engineering, students will be able to:

KNOWLEDGE (Theoretical and Factual)
1. Identifying theoretical and practical aspects of core knowledge areas in computer technology and computer usage, computer science, and mathematics.
2. Solving engineering problems; selecting and applying proper analysis and modelling techniques.
3. Analyzing, specifying, and designing quality computer solutions.

SKILLS (Theoretical and Practical)
4. Applying theoretical and practical knowledge of different knowledge areas to engineering problems.
5. Conducting research in different areas including operating systems, analysis of algorithms, databases, computer security, parallel and distributed computation, Web and Internet engineering, etc.
6. Applying problem-solving skills to solve real problems and using engineering design to produce solutions that meet specified needs.

COMPETENCES (Responsibility, Learning, Communication, Discipline)
7. Discussing the ethical, social and legal effects of using technology in the context of societies.
8. Communicating, orally and in written form, with the level of sophistication needed for academic studies.
9. Creating a collaborative and inclusive environment that incorporates both individual and teamwork skills.

Software engineering is a branch of computer science that includes the building and development of computer systems software and application software. Applications software includes user-focused programs, including database programs, Web browsers and more. Systems software consists of programs that include computing utilities and operations systems. Three main components of software engineering are: Knowledge of programming languages, software development and computer operating systems. Software engineering is a related, but slightly different occupational field than computer hardware engineering, which is focused on the design and development of hardware and computing technologies.

Some of the major branches and career paths in software engineering include: applications development, systems development, web development, embedded systems development, software testing editors, database administrators, system programmer can be programmer or analyst. Having degree in this field is also useful in finding jobs such as: IT consultant, IT technical support officer, IT sales specialist, etc.

Software Engineering Curriculum


ENGL101 Academic English I

ENGL101 is a compulsory course for freshman students. ENGL101 focuses on the cognitive skills of reading, writing, listening and speaking. The course uses current reading and listening texts and focuses on how to understand relevant parts of a text, how to read quickly and effectively, how to relate different ideas from multiple texts and how to use texts as sources for an output task. In speaking and writing, the course focuses on using sources, paraphrasing, quoting, summarizing and synthesizing. The students will learn how to write coherent, concise, informative or persuasive responses to writing questions supporting their point of view.

MATH141 Basic Mathematics

This course introduces mathematics and especially shows how mathematics is applied to solve fundamental engineering problems. Its aim is to show the students why mathematics is important in an engineering career by demonstrating how simple engineering problems can be mathematically described and methodically analyzed to find a solution.

Course Textbook:

1. Adams R. A., & Essex C. (2010). Calculus, 7th Edition, Pearson.

2. Bird J. (2010)a. Basic Engineering Mathematics, 5th Edition, Newnes.

3. Bird J. (2010)b. Higher Engineering Mathematics, 6th Edition, Newnes.

SOFE101 Basic Computer Technologies I

Basic concepts of information technology, learn how to use with Microsoft Office tools: MS Word, MS Excel, and MS PowerPoint. Google Applications, Internet and Social Networks, Social Media, and Operation Systems.

Course Textbook:

Catherine LaBerta (2012). Computers Are Your Future. Prentice Hall.

SOFE103 Introduction to Programming I

The main aim of this course is to provide students with an introductory overview into the Computer Science and programming. Giving the student an initial base in the C++ development world, with an emphasis on learning basic programming principles, ranging from I/O operations, variable management, using flow control capabilities and also using arrays. At the end of this course the students should be able to write procedural programs using build in data types and arrays of these data types.

Course Textbook:

1. Malik, D. S. (2014). C++ programming: Program design including data structures. Nelson Education.

2. Deitel, P., & Deitel, H. (2016). C++ how to Program. Pearson.

SOFE105 Web Design

The aim of this course is to learn about the fundamentals of designing websites. Design issues in the functionality, usability, and content of web pages are solved. By means of lectures and lab sessions, students will learn how to make their own website portfolio.

Course Textbook:

1. Duckett, J. (2011). HTML & CSS: design and build websites (Vol. 15). Indianapolis, IN: Wiley.

2. Sebesta, R. W. (2008). Programming the world wide web. Pearson Addison Wesley.

TURK101 Turkish I

This course provides an orientation to modern Turkish language for foreign students who wish to communicate in this language for their needs. Basic grammar and sentence structure forms in Turkish are practiced. The required grammar and vocabulary will also be developed through their adaptation to daily situations in contexts such as introducing yourselves, greeting, talking about the things they possess by using possessive adjectives, forming positive, negative and question sentences by using present simple, telling the time, talking about their own timetables, using demonstrative pronouns when describing the place of objects and becoming familiar with vocabulary related to family members.

ENGL102 Academic English II

ENG 102 is a compulsory course for freshman students. ENG 102 focuses on the cognitive skills of reading, writing, listening and speaking. The course uses current reading and listening texts and focuses on how to understand relevant parts of a text, how to read quickly and effectively, how to relate different ideas from multiple texts and how to use texts as sources for an output task. In speaking and writing, the course focuses on using sources, paraphrasing, quoting, summarizing and synthesizing. The students will learn how to write coherent, concise, informative or persuasive responses to writing questions supporting their point of view.

MATH142 Calculus I

Functions, limit, continuity and derivative. Mean Value Theorem and applications. Definite and indefinite integrals. Logarithmic, exponential, hyperbolic and inverse trigonometric functions. L’Hopital’s Rule. Integration techniques. Area, volume and rotational surface area calculation.

Course Textbook:

1. Adams R. A., & Essex C. (2010). Calculus, 7th Edition, Pearson.

2. Bird J. (2010)a. Basic Engineering Mathematics, 5th Edition, Newnes.

3. Bird J. (2010)b. Higher Engineering Mathematics, 6th Edition, Newnes.

SOFE102 Basic Computer Technologies II

Students will learn about fundamental concepts of information technology. Students learn how to use with Microsoft Office tools with the aim of applying these skills in their freshman year. They are also able to continue to use these skills during their undergraduate studies and even after graduation.

Course Textbook:

Catherine LaBerta (2012). Computers Are Your Future. Prentice Hall.

SOFE104 Introduction to Programming II

The main aim of this course is to provide students with an advanced overview into the computer science and programming. Giving the student the fundamental base in the C++ development world, with an emphasis on learning advanced programming principles, ranging from functions, arrays, application of arrays, structs, classes, pointers. At the end of this course the students should be able to write complicated programs.

Course Textbook:

1. Malik, D. S. (2014). C++ programming: Program design including data structures. Nelson Education.

2. Deitel, P., & Deitel, H. (2016). C++ how to Program. Pearson.

MATH144 Discrete Mathematics

It is the course for mathematics, computer science and engineering majors. The aim of this course is to show mathematical techniques that is used to study discrete processes rather than continuous. Discrete mathematics is prerequisite of logic design, mathematical modeling, operational research, cryptography, software development, computer algorithms courses.

Course Textbook:

1. Goodaire, E. G., & Parmenter, M. M. (2001). Discrete mathematics with graph theory. Prentice Hall PTR.

2. Grimaldi, R. P. (2006). Discrete and Combinatorial Mathematics. Pearson.

MATH241 Linear Algebra

The main subjects of the course are the vector and matrix operations, linear transformations, determinants, linear independence and dependence of vectors, linear vector spaces and subspaces, dimensions and basis vectors for vector spaces, eigenvalues eigenvectors analysis and diagonalization, solution methods for first order and second order ordinary differential equations.

Course Textbook:

Howard Anton, Chris Rorres. (2015) Elementary Linear Algebra with applications. John Wiley & Sons, Inc.

SOFE201 Programming Languages C#

Programming rules in visual and net environment, the general structure of C#, I/O operations, data types, variables, standard operations, selection statements, loops, array, user-defined data types, subprograms, and writing methods.

Course Textbook:

C# Programming: From Problem Analysis to Program Design, Barbara Doyle, Cengage Learning.

SOFE203 Algorithms and Data Structures

Data structures and their usage. Programming methods, different types of searching and sorting algorithms with their applications, space and time complexities. Linked lists. Recursion method. Trees and tree searching algorithms. Stacks and queues with their applications.

Course Textbook:

1. Deitel, P., & Deitel, H. (2016). C++ how to Program. Pearson.

2. Y. Langsam, M. Augenstein, A. Tenenbaum. Data Structures using C and C++, 2nd ed. Prentice Hall, 1996.

SOFE205 Operating Systems

Fundamental concepts of operating systems: usage areas, functions and properties. CPU scheduling, deadlocks. Resource allocation and resource organization. Management of main and virtual memory. Scheduling and Synchronization. Interrupts and their control. File systems and Input/output. Threats and security.

Course Textbook:

Abraham Silberscharz, Galvin, Gagne, Operating System Concepts, Eighth Edition, John Wiley & Sons, 2010.

MATH242 Probability and Statistics

This course gives the student understanding of the main statistical concepts. Basic probability models, random variables. Frequency distribution, measures of central tendency, measures of dispersion, discrete and continuous probability distributions, and the concept of linear regression.

Course Textbook:

1. Theory and Problems of Statistics, 2nd Edition, Murray R. Spiegel, McGraw Hill, Schaum’s Outline Series, 1992.

2. Miller and Freund’s Probability and Statistics for Engineers, 5th Edition, R.A. Johnson, Prentice Hall International Edition, 1994.

SOFE202 Software Engineering Analysis and Design

Definition and properties of Algorithms. Writing Pseudo code. Design and analysis of Algorithms. Data abstraction. Growth of functions, asymptotic notations, complexity of algorithms. Recursive algorithms. Algorithm design paradigm. Computation models.

Course Textbook:

1. Robert L. Kruse, Alexander J. Ryba. Data Structures and Program Design in C++. Prentice Hall.

2. Frank M. Carrano, Janet J. Prichard. Data Abstraction and Problem Solving with C++. Addison Wesley.

3. Mark A. Weiss. Data Structures and Algorithm Design in C++. Addison Wesley.

SOFE305 Database Systems

The fundamental concepts of database management. Data organization, data integrity, and data storing methods. Hierarchical, relational and object-oriented models. Synchronous tasks and their design. Data models (E-R diagrams). Logical database design. Relational algebra. Query languages (SQL).

Course Textbook:

1. Fundamentals of Database Systems, Elmasri & Navathe, Addison-Wesley.

2. Database Systems, Concepts, Languages and Architectures, Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, and Riccardo Torlone, Published by McGraw-Hill, ISBN:0077095006

SOFE204 Object Oriented Programming

Review of C++ programing, File Processing, Stream Input / Output, Classes and Objects, Inheritance, Operator and Function Overloading, Object Oriented Programming, Information Hiding, Polymorphism, Templates, Exception Handling.

Course Textbook:

Deitel, P., & Deitel, H. (2016). C++ how to Program. Pearson.

SOFE206 Computer Networks and Communication

Learning about communication protocols, communication model, and communication tasks. Network structures, architectures and protocols, etc. Types of links, transmission. LANs, MANs and WANs.

Course Textbook:

Stallings W., Data and Computer Communications”, 8th Ed., Prentice-Hall, 2007.

SOFE301 Software Project Management

This course is for the students who know about programming languages and basic concepts of software engineering. The aim of this course is to learn about, Identifying project purpose, project feasibility, project and product scope.

SOFE304 Introduction to Cloud Computing

Introduction to cloud computing, defining cloud computing and its characteristics, cloud architecture and service models/types, distributed storage, benefits of cloud computing, security, cloud services and software, cloud standards.

Course Textbook:

1. Judith Hurwitz, Robin Bloor, Marcia Kaufman, Fern Halper. (2010) Cloud Computing For Dummies, Wiley Pub.

2. Thomas Erl; Zaigham Mahmood, Ricardo Puttini. (2013) Cloud Computing: Concepts, Technology & Architecture, Prentice Hall.

SOFE303 Linux Utilities and Shell Scripting

Fundamental concepts of Linux/UNIX operating systems. Programming the operating system commands and scripts, become familiar with the UNIX environment, Linux/UNIX file system, text editing, shell programming, filename generation, pipes, redirecting input and output. This course requires an understanding of operating systems and programming basics.

Course Textbook:

Steve Will, (2016) Linux for Beginners: The Ultimate Beginner Guide to Linux Command Line, Linux Programming and Linux Operating System.

SOFE306 Software Architecture

The main topics to be covered: Introduction to software architecture and design, fundamental principles for architectural styles, patterns and frameworks, software architecture business cycle, quality attributes in software architecture, and software architecture process. The way that components of software are arranged such as classes, functions, subroutines and the interactions between them.

Course Textbook:

Mark Richards; Neal Ford (2020), Fundamentals of Software Architecture: An Engineering Approach. O'Reilly Media.

SOFE302 Human Computer Interaction

The course content is composed of human computer interaction fundamentals, making interactive systems natural, user modeling in user-centered system design, the user-centered system design process, task analysis, requirements gathering, storyboarding and prototyping, cognitive physiology, the model human processor, advancing simplistic theories, theories of human perception, observational evaluation and protocol analysis, experiments.

Course Textbook:

1. Alan Dix; et al. (2004) Human-computer interaction, Pearson.

2. Rosson, M. & Carroll, J. Usability Engineering: Scenario-Based Development of Human-Computer Interaction.

3. Nielsen, J. Usability engineering, AP.

SOFE405 Wireless Communications

Basic topics in wireless communications for data, multimedia, and voice. Current wireless systems and standards. Issues in physical layer, data-link layer, network layer. Evolution of wireless communications and standards. The course concludes with a brief overview of ad hoc network design, wireless sensor network, and the evolution of cell phones.

Course Textbook:

David Tse, Pramod Viswanath. (2005). Fundamentals of Wireless Communication. Cambridge University Press.

SOFE401 Non-Technical Aspects of Engineering

Engineering ethics and its standards, how to manage a project, risk and change management, creativity, entrepreneurship, legal consequences of engineering solutions; current and future issues in engineering, global and social effects of engineering practices on health, environment and safety, sustainable development, life-long learning.

Course Textbook:

Stuart G. Walesh. (2012). Engineering Your Future: The Professional Practice of Engineering, Third Edition. Wiley.

SOFE403 Software Measurement and Testing

Step by step description of the software metrics, the important phases of testing, highlighting the importance of each phase. This course also covers some concepts such as: software cost estimation, software resource, product, and process measurement.

Course textbook:

1. N.E. Fenton and S.L. Pfleeger. Software Metrics: A Rigorous and Practical Approach (2nd ed.)

2. Stephen H. Kan. Metrics and Models in Software Quality Engineering (2nd ed.)

SOFE309 Mobile Application Development

This course covers the principals behind Mobile devices, mobile applications and their requirements, current mobile platform, storing and retrieving data, developing mobile applications, web services and databases in mobile application, graphics. Mobile applications for Android devices: Material design, graphics, security, data storage, services.

Course Textbook:

1. Bill Phillips, Chris Stewart, Brian Hardy, and Kristin Marsicano, Android Programming: The

Big Nerd Ranch Guide, Big Nerd Ranch LLC, 3rd edition, 2017.

2. Wei-Meng Lee, Beginning Android™ 4 Application Development, 2012 by John Wiley & Sons, Inc., Indianapolis, Indiana, ISBN: 978-1-118-19954-1

SOFE407 Senior Project I

To acquaint students with the design, analysis and development of a project by teams of students via engineering techniques; preparation of project reports and presentation.

SOFE402 Ethics in Engineering

This is a final year course with the aim of teaching responsibilities and moral rights of engineers in relation to society, clients, and colleagues. Analysis and examination of ethical and value conflict in modern engineering practice. Emphasis on intellectual property rights and conflicting interests. Ethical aspects in engineering design, manufacturing, and operations. Considering Cost-benefit-risk analysis and safety and occupational hazard.

Course textbook:

Seebauer, Edmund Gerard; Barry, Robert Laurence. (2001) Fundamentals of ethics for scientists and engineers. Oxford University Press.

SOFE418 Capstone Project

The main objective of this course is for the students to apply their theoretical knowledge to a real project including real data in a realistic setting. Students learn about the whole process of real project, from collecting and processing data to applying proper analytic methods to the problem. Depending on complexity of project, students can work either individually or in small teams.

SOFE406 Automata Theory

The following topics will be covered: Chomsky hierarchy, automata and formal languages, finite and pushdown automata, Turing machines. Regular expressions, Context free languages and grammars, Context sensitive languages and grammars. Normal structured grammars. Turing machines and their usage.

Complexity of problems.

Course textbook:

J.E. Hopcroft, J. D. Ullman, Introduction to Automata Theory, Languages and Computation, Addison Wesley 1979.

SOFE307 Internet based programming

Fundamental programming knowledge of dynamic web page. Learn about design and construct server-side and client-side components. Learn about programming using Java, JavaScript, and PHP.

Course textbook:

1. Duckett, J. (2014). JavaScript and JQuery: Interactive Front-End Web Development.

2. Duckett, J. (2011). HTML & CSS: design and build websites (Vol. 15). Indianapolis, IN: Wiley.

SOFE310 MS C# Laboratory

The course content is composed of .NET Framework, an object oriented programming overview, file operations, Windows forms, form controls (Label, Textbox, Checkbox, Listbox, Groupbox, etc.), multi-forms, dynamic controls, designing own user controls, abstract classes, inheritance.

Course Textbook:

C# Programming: From Problem Analysis to Program Design, Barbara Doyle, Cengage Learning.

SOFE308 Computing Systems

Preliminaries of computer systems such as software-hardware interface, architecture of computer, and operating systems. Emphasizes on computer system abstraction and required techniques to support them. Dynamic resource management, isolation, naming, and optimization.

Course Textbook:

Noam Nisan and Shimon Shocken. The Elements of Computing Systems. (2008), MIT Press. ISBN13-978-0-262-64068-8.

SOFE404 E-Business: Administration, Security and Marketing

Learn about different business models, e-business strategy framework Inform students about the issues and considerations that are involved in e-business, the overall management of an e-business site.

Course Textbook:

1. Efraim Turban, David King. Electronic Commerce 2012 Global Edition. (2012)

2. Turban, King, Mckay, Marshall, Lee, Viehland. Electronic Commerce: A managerial perspective. (2008)

ENGL201 Occupational English I

ENGL201 is an Occupational English course for students at the Faculty of Engineering. The course aims to introduce a range of skills, including oral skills, 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 professional life. This will include library research and an oral presentation. By investigating a topic related to Software engineering, students will develop their understanding of independent research skills. The oral presentation aims to enhance spoken fluency and accuracy and provide training in the components of a good presentation.

ENGL202 Occupational English II

ENGL202 is an Occupational English course for students at the Faculty of Engineering. The course aims to introduce a range of skills, including effective academic and professional written communication skills. Throughout the course, the students will be involved in project work intended to help them in their future academic and professional life. This will include library research, technical report writing, and an oral presentation. 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 the spoken fluency and accuracy necessary for a good presentation.

SOFE409 Database Management Systems

Learning data modelling techniques such as: Entity Relationship Model, UML’s Use Case and Class diagrams. Data definition and creating database objects by using SQL language. Data security and data integrity.

Course Textbook:

1. Fundamentals of Database Systems, Elmasri & Navathe, Addison-Wesley.

2. Database Systems, Concepts, Languages and Architectures, Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, and Riccardo Torlone, Published by McGraw-Hill, ISBN:0077095006

SOFE411 Artificial Intelligence

Learn Introduction to Artificial Intelligence (AI) its concepts and terms, the main topics such as: problem solving, reasoning and planning in AI, machine learning, uncertainty and probability theory, Bayesian networks, and fuzzy logic.

Course Textbook:

S. Russell and P. Norvig. Artificial Intelligence: A Modern Approach. 3rd edition. Prentice Hall

SOFE413 Data Mining

Overview of data mining. Mining frequent patterns and associations. Implementation techniques. Classification. Cluster analysis.

Course Textbook:

1. Jiawei Han, Micheline Kamber, and Jian Pei. Data Mining: Concepts and Techniques (3rd ed.). Morgan Kaufmann, 2012. ISBN: 9780123814807.

2. Ian H. Witten, Eibe Frank, Data Mining: Practical Machine Learning Tools and Techniques, Morgan Kaufmann, 1999 and 2nd Edition (2005).

SOFE408 Information and Network Security

Basic concepts in cryptography and computer security. Symmetric-key encryption: Block ciphers, One time pad and stream ciphers. Public key cryptography: Cryptography using arithmetic modulo primes, Public key encryption. IDEA, Blowfish. AKS and RSA algorithm, etc.

Course Textbook:

1. William Stallings, Cryptography and Network Security, 3rd Edition, Prentice Hall, 2003.

2. Delfs, H., Introduction to Cryptography, 3rd Edition, 2015

SOFE410 Object-Oriented Systems Analysis and Design

Advanced concepts of object oriented programming. How to produce object models in details and design from system requirements. To show the analysis and design ideas Unified Modeling Language (UML) will be used. Expand the analysis into a design.

Course Textbook:

1. Software Engineering in C, Peter A. Darnell, Philip E. Margolis, Springer Verlag, 1988.

2. Bahrami, Ali. Object Oriented Systems Development. (1998). Boston, Massachusetts: The McGraw-Hill Companies, Incorporated.

SOFE412 Modelling with Petri Nets

This course covers fundamental concepts in Petri net. Behavioral and structural properties. Finite state machines’ modeling. High level Petri nets: colored and hierarchical Petri nets. Specification, validation, simulation of discrete event systems.

Course Textbook:

1. James Peterson. Petri Net Theory and Modelling of Systems, Prentice-Hall.

2. Wolfgang Reisig (auth.) Understanding Petri Nets: Modeling Techniques, Analysis Methods, Case Studies. Springer-Verlag Berlin Heidelberg (2013).

SOFE414 Computational Intelligence

This course is about: Introduction of computational intelligence, foundations of computational intelligence, neural networks, fuzzy sets and fuzzy logic, computational intelligence, metrics and analysis, evolutionary computation, design and build computational intelligence algorithms.

Course Textbook:

1. S. Russell and P. Norvig. Artificial Intelligence: A Modern Approach. 3rd edition. Prentice Hall

2. Marsland S. (2015). Machine Learning: An Algorithmic Perspective, (2nd ed.), CRC Press.

SOFE416 Introduction to Parallel Computing

This course includes the following topic: Overview of parallel computer architectures. Various aspects of parallel computing such as: parallel architectures, systems, and algorithms. Modeling and analysis of parallel computations. Focus on solving real problems on parallel machines. Parallel algorithms for solving time-consuming problems.

Course Textbook:

1. Parallel Programming in C with MPI and OpenMP, Michael J. Quinn (Addison-Wesley, 2004).

2. Principles of Concurrent and Distributed Programming, 2nd ed., M. Ben-Ari (Addison-Wesley, 2006).

Open chat