Software Engineering

The department was founded in 2023 and offers a Bachelor of Science (BSc) degree in English. It aims to provide students with a strong background in both the theories and practices of software engineering and to graduate engineers who will lead their fields.

The program has been developed to meet the criteria of the software development industry as documented in the ACM/IEEE Software Engineering Education Knowledge and to satisfy the accreditation criteria required by the Engineering Accreditation Commission of the Accreditation Board for Engineering and Technology (ABET).

The Software Engineering program promotes the development of practical, cost-effective software solutions under real-world constraints. Our approach is based on a solid understanding of software engineering principles and evolving best practices.

Students learn to put into practice different operating systems, various programming languages, software design and development principles, and project management. Senior-year students specialize in several areas according to their preferences. The department provides up-to-date subjects and courses based on theoretical and technological improvements. A 40 working days of summer training is required to qualify for graduation. Students should have a minimum pass grade from each course and a minimum 2.00/4.00 cumulative Grade point Average (cumulative GPA). Our graduates are awarded Software Engineer (Bachelor’s Degree/ first cycle in Bologna System) qualifications.

The program is a four-year program, two semesters per year, and the mode of study is full-time. The Software Engineering curriculum has a total of 134 credits and 240 ECTS.

Mission

Our mission is to graduate successful and well-equipped software engineers for successful careers and graduate education with a thorough understanding of software engineering and experiential learning opportunities to apply that knowledge to solve real-world problems.

 

Vision

Our vision is to be a leading department that hosts distinguished scientists to provide research and education environment in order to contribute future technologies.

Software Engineering Program Educational Objectives:

Our software engineering program provides project-friendly learning experiences to educate software engineers for success in a rapidly evolving computing field. Our program will prepare the students to:

  1. Be successful professionals in the field with solid fundamental knowledge of software engineering;
  2. Utilize and exhibit strong communication and interpersonal skills, as well as professional and ethical principles when functioning as members and leaders of multidisciplinary teams;
  3. Apply their foundations in software engineering to adapt to readily changing environments using the appropriate theory, principles, and processes.

 

 

Software Engineering Program Outcomes:

Based on the ABET and the industry and students’ expectations, graduates of the program are expected to demonstrate:

  1. an ability to identify, formulate, and solve complex engineering problems by applying principles of science, engineering, and mathematics;
  2. an ability to apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as local, global, cultural, social, environmental, and economic factors;
  3. ability to apply the software engineering lifecycle by demonstrating competence in communication, planning, analysis, design, construction, and deployment;
  4. an ability to communicate effectively with a range of audiences;
  5. an ability to recognize ethical and professional responsibilities in engineering situations and make informed judgments, which must consider the impact of engineering solutions in global, economic, environmental, and societal contexts;
  6. an ability to function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives;
  7. ability to work as an individual and as part of a multidisciplinary team to develop and deliver quality software;
  8. an ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions;
  9. an ability to acquire and apply new knowledge as needed, using appropriate learning strategies;

CURRICULUM

 
SEMESTER 1
Course Code Course Name Course Category Credit Pre-requisite
T P C ECTS
PHYS101 General Physics I FC 3 2 4 6
MATH105 Calculus I FC 4 0 4 6
MATH111 Linear Algebra NFC 3 0 3 6
WENG101 Academic English I UC 3 0 3 6
WTUR101 Turkish I UC 2 0 2 2
WATA101 Principles of Atatürk I UC 2 0 2 2
WICT101 Introduction to Information Technologies I UC 0 2 1 2
 
SEMESTER 2
PHYS102 General Physics II FC 3 2 4 6 PHYS101
MATH106 Calculus II FC 4 0 4 6 MATH106
SWEN102 Introduction to Programming DC 3 2 4 6
WENG102 Academic English II UC 3 0 3 6 WENG101
WTUR102 Turkish II UC 2 0 2 2 WTUR101
WATA102 Principles of Atatürk II UC 2 0 2 2 WATA101
WICT102 Introduction to Information Technologies II UC 0 2 1 2 WICT102
SEMESTER 3
FLAN202 Communication Skills NFC 3 0 3 6 WENG102
SWEN201 Discrete Structures DC 3 0 3 6
MATH201 Probability and Statistics NFC 3 0 3 6
BUSN201 Principles of Management NFC 3 0 3 6
SWEN203 Object-Oriented Programming DC 3 2 4 6 SWEN102

 

 

 

 

 

 

 

 

 

SEMESTER 4
Course Code Course Name Course Category Credit Pre-requisite
T P C ECTS
SWEN202 Data Structures and Algorithms DC 3 2 4 6 SWEN102
SWEN204 Introduction to Software Engineering DC 3 0 4 6 SWEN203
SWEN206 Introduction to Computer Organization DC 4 2 4 6 SWEN201
XXXX Faculty Elective FE 3 0 3 6
WXXX University Elective UE 3 0 3 6
 
SEMESTER 5
SWEN301 Software Requirements Engineering DC 3 0 3 6 SWEN204
RMET301 Research Methods in Engineering FC 3 0 3 6
SWEN303 Database Management Systems DC 3 0 3 6 SWEN202
SWEN305 Software Project Management DC 3 0 3 6
WXXX University Elective UE 3 0 3 6
SEMESTER 6
SWEN302 Software Design DC 4 0 4 6 SWEN301
SWEN304 Operating Systems DC 3 0 3 6 SWEN303
SWEN306 Web Design and Application Development DC 3 0 3 6 SWEN102
ECON101 Economics I NFC 3 0 3 6
WXXX University Elective UE 3 0 3 6

 

 

 

 
SEMESTER 7
Course Code Course Name Course Category Credit Pre-requisite
T P C ECTS
MISY401 Management Information Systems NFC 3 0 3 6
SWEN401 Data Communication and Computer Networking DC 3 0 3 6 SWEN206
SWEN403 Software Systems Security DC 3 0 3 6 SWEN302
SWENXXX Departmental Elective DE 3 0 3 6
SWEN481 Senior Project I DC 2 0 2 5
SWEN498 Summer Practice DC 0 0 0 1
 
SEMESTER 8
SWEN402 Software Process and Management DC 3 0 3 6 SWEN305
SWEN482 Senior Project II DC 3 0 3 6 SWEN481
SWENXXX Departmental Elective DE 3 0 3 6
SWENXXX Departmental Elective DE 3 0 3 6
SWENXXX Departmental Elective DE 3 0 3 6

 

 

 

 

 

 

 

 

 

 

 

DEPARTMENTAL ELECTIVE COURSES

 

     
Course Code Course Name Credit
T P C ECTS
SWEN450 Advanced Database Management Systems 3 0 3 6
SWEN451 Cryptography and Network Security 3 0 3 6
SWEN452 Internet Programming 3 0 3 6
SWEN453 Mobile Programming 3 0 3 6
SWEN454 Advanced Object-Oriented Programming I 3 0 3 6
SWEN455 Advanced Object-Oriented Programming II 3 0 3 6
SWEN456 Machine Learning 3 0 3 6
SWEN457 Cloud Computing 3 0 3 6
SWEN458 Embedded Systems 3 0 3 6
SWEN459 Wireless Communication 3 0 3 6
SWEN460 Image Processing 3 0 3 6
SWEN461 Introduction to Artificial Intelligence 3 0 3 6
SWEN462 Artificial Neural Networks 3 0 3 6
SWEN463 Computer Graphics 3 0 3 6
SWEN464 Application Development on Android Devices 3 0 3 6
SWEN465 IOS Programming with Swift 3 0 3 6
SWEN466 Internet of Things 3 0 3 6
SWEN467 Game Development 3 0 3 6
SWEN468 e-Government 3 0 3 6
SWEN469 e-Commerce 3 0 3 6
SWEN470 System Simulation 3 0 3 6
SWEN471 System Programming 3 0 3 6
SWEN472 Human-Computer Interaction 3 0 3 6

 

 

 

 

COURSE BREAKDOWN

 
  Total
Number Credit ECTS Credits
All Courses 45 133 240
University Compulsory Courses 8 16 24
University Elective Courses 3 9 18
Non-Faculty Compulsory Courses 6 18 36
Faculty Compulsory Courses 4 16 24
Faculty Elective Courses 1 3 6
Department Compulsory Courses 19 59 108
Department Elective Courses 4 12 24
Semester 1 2 3 4 5 6 7 8
Number of courses 7 7 5 5 5 5 6 5
Total credits 19 20 16 18 15 16 14 15
Total ECTS Credits 30 30 30 30 30 30 30 30

 

ABBREVIATIONS

  • T: Theoretical
  • P: Practical
  • C: Credits
  • ECTS: European Credit Transfer System
  • UC: University Compulsory (courses which are compulsory for all students)
  • UE: University Elective (elective course opened by the university)                                        
  • FC: Faculty Compulsory (compulsory courses opened by another department within the faculty)
  • FE: Faculty Elective (compulsory course opened by another department within the faculty)
  • NFC: Non-Faculty Compulsory (compulsory course opened by another department in another faculty)
  • NFE: Non-Faculty Elective (elective course opened by another department in another faculty)
  • DC: Department Compulsory (compulsory course opened by the department)
  • DE: Department Elective (elective course opened by the department)

 

 

 

 

COURSE DESCRIPTIONS

 

YEAR I

PHY101 Physics I

This course aims to introduce students to general physics. Course Content: Measurement, vectors, kinematics, force, mass. Newton’s laws, applications of Newton’s laws. Work and kinetic energy. Conservation of linear momentum. Impulse, collisions, rotation, moments of inertia. Torque, angular momentum, conservation of angular momentum, static equilibrium.

 

PHY102 Physics II

This course aims to introduce students to electricity. Course Content: Electrical charges. Coulomb’s law. Electrical fields. Gauss’s law. Electrical potential. Capacitance and dielectrics. Current and resistance. Direct current circuits. Magnetic fields. Sources of the magnetic field. Faraday’s law of induction. Inductance and inductors.

 

MATH105 Calculus I

Functions, limits, and continuity. Derivatives. Mean value theorem. Sketching graphs. Definite integrals, infinite integrals (antiderivatives). Logarithmic, exponential, trigonometric, and inverse trigonometric functions and their derivatives. L’Hospital’s rule. Techniques of integration. Applications of the definite integral, improper integrals.

 

MATH106 Calculus II

Plane and polar coordinates, area in polar coordinates, arc length of curves. Limit, continuity, and differentiability of function of several variables, extreme values, method of Lagrange multipliers. Double integral, triple integral with applications. Line integrals, Green’s theorem. Sequences, infinite series, power series, Taylor’s series. Complex numbers.

 

WENG101 Academic English I

WENG101 is a first-semester freshman academic English course. It is designed to help students improve their English to the 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. 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 and listening) skills in academic settings.

 

WENG102 Academic English II

This course is designed to help students improve their English to the 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 the use of technology. The course will focus on reading, writing, listening, speaking, and introducing documentation, as well as presentation skills in academic settings.

 

WTUR101 Turkish I

This course is designed to introduce students to basic grammar and writing skills and help students to further develop their Turkish language abilities and have a better understanding of the culture. The students will be able to participate in simple conversations, read and comprehend various authentic texts, listen to conversations, and answer questions.

 

WTUR102 Turkish II

Basic rules of Turkish, phonetics (sounds, alphabet reading rules), vocabulary (words as structure) recognition, relations between words), sentence knowledge (sentence structures, general structure and sentence types), reading and writing (reading rules and writing techniques, spelling rules, comprehension of spoken and written language. spelling rules.), reading –comprehension (reading comprehension techniques, applications on texts), listening (listening comprehension, listening comprehension) making necessary comments by taking notes, applications on texts suitable for students’ own professions), speaking (learning speaking techniques, learning shapes such as certain emphasis, and intonation).

 

MATH111 Linear Algebra

Matrices and Systems of Equations, Determinants, Vector Spaces, Linear Transformations, Orthogonality, Eigenvalues, and Numerical Linear Algebra.

 

WATA101 Atatürk’s Principles and History of the Turkish Revolution I

The course covers the history of the revolution that the Turkish nation went through under the leadership of Ataturk. The reasons for the collapse of the Ottoman Empire are examined, and how the State of the Republic of Turkey was established from a de facto destroyed state is evaluated in the light of documents. The founder of the Republic of Turkey, Mustafa Kemal, realized by Atatürk the Turkish Revolution, the nation-state and modernity and secularism case of Turkey in the context of phrases and meanings corresponding to the Kemalist thought to teach the students.

 

WATA102 Atatürk’s Principles and History of the Turkish Revolution I

The political, social, economic, and cultural transformation in the Republic of Turkey; the six principles of Atatürk; Turkish Foreign Policy during the Atatürk period.

 

SWEN102 Introduction to Programming

This course provides an introduction to fundamental concepts of programming and the use of built-in data structures in solving problems using the Python general-purpose programming language.

Course Content: In this course, students study how to write user-defined functions using iteration as well as recursion in Python. This course also stresses the importance of programming tools such as programming editors and debuggers. The students are expected to work within a GNU/Linux environment. The course provides a basic introduction to object-oriented programming.

 

WICT101 Introduction to Information Technologies I

This course presents the basics of computer systems. Topics include a short history of computers, basic concepts and terminology of information technology, basic hardware and software components of a computer system, and integration of computer system components.

 

WICT102 Introduction to Information Technologies II

This course contains two parts. In the first part, the students learn about the hardware setup of a personal computer and the relations between the processor, memory, and secondary devices. The laboratory part includes basic computer usage and office programs (MS Word, Excel). The second part discusses the basics of problem-solving approaches, components and construction of computer programs, flow-charting, and modular programming issues. The basics of C programming language are covered in the classroom.

 

 

 

 

 

YEAR II

FLAN202 Communication Skills

The course provides the students with an understanding of the essential elements of a presentation. The participants will practice skills that will make them better speakers and presenters, preparing them for their further academic careers and enabling them to function successfully in professional environments.

 

SWEN203 Object-Oriented Programming

This course provides an in-depth discussion of object-oriented programming and how object-oriented programming can be used in solving real-life problems. Course Content: This course requires more advanced use of programming tools (mainly editors and debuggers) that were introduced in ECC102 (Programming and Problem Solving). This course uses Python 3 to teach the fundamental concepts of object-oriented programming. The students are expected to work within a GNU/Linux environment. The course builds upon the knowledge of ECC102 and ECC201 and is the third course in line that uses Python as a programming language.

 

BUSN201 Principles of Management

This course comprises an introductory exploration of Management. Course Content: Principles of Management. Functions of managers. Organization and environment. Marketing management. Production management. Personnel management. Managerial control. Accounting and financial reports. Budgeting and overall control.

 

MATH201 Probability and Statistics

This course aims to give engineering students details of probability. Course Content is Statistics, Data and Statistical Thinking, Methods for Describing Sets of Data, Probability, Random Variables, and Probability Distributions, Inferences Based on Samples, Design of Experiments and Analysis of Variance, Categorical Data Analysis, Simple Linear Regression, Multiple Regression and Model Building, Methods for Quality Improvement: Statistical Process Control, Time Series, Nonparametric Statistics.

 

SWEN202 Data Structures and Algorithms

This course comprises an introductory exploration into the design and implementation of Abstract Data Types (ADTs) along with the study of algorithm design and complexity analysis.

Even though the discussions during lectures about ADTs are language-independent, this course uses Python, a very high-level general programming language, to implement these ideas using object-oriented programming. This class starts with a brief introduction to object-oriented programming.

 

SWEN203 Discrete Structures

This course aims to introduce students to discrete structures. Sets and Logic, Proofs, Functions, Sequences and Relations, Algorithms, Introduction to Number Theory, Counting Methods and the Pigeonhole Principle, Recurrence Relations, Graph Theory, Trees, Network Models, Boolean Algebras and Combinatorial Circuits, Automata, Grammars and Languages, Computational Geometry.

 

SWEN204 Introduction to Software Engineering

The aim of the course is to prepare students for real-life applications of software engineering. Course Content: Introduction to Software Engineering, Modeling with UML, Project Organization and Communication, Requirements Elicitation, Analysis, System Design, Object Design, Mapping Models to Code, Testing, Rationale Management, Configuration Management, Project Management, Software Life Cycle, Methodologies.

 

SWEN206 Introduction to Computer Organization

The main objective of this subject is to understand the overall basic computer hardware structure, including the peripheral devices. Course content: Introduction to computers. Micro-programming control. Memory organization. Input/output system. Non-standard computer architectures, pipeline, RISC, and vector computers.

 

YEAR III

SWEN301 Software Requirements Engineering

The aim of this course is to understand the fundamental concepts of software requirements for implementation processes of software development. Course content: Domain engineering. Techniques for discovering and eliciting requirements. Languages and models for representing requirements. Analysis and validation techniques, including need, goal, and use case analysis. Requirements in the context of system engineering. Specifying and measuring external qualities: performance, reliability, availability, safety, security, etc. Specifying and analyzing requirements for various types of systems: embedded systems, consumer systems, web-based systems, business systems, and systems for scientists and other engineers. Resolving feature interactions. Requirements documentation standards. Traceability. Human factors. Requirements in the context of agile processes. Requirements management: Handling requirements changes.

 

SWEN303 Database Management Systems

This course comprises an introductory exploration of the design and implementation of database systems. Course Content: Introduction to Databases, Relational Data Model and SQL, Conceptual Modeling and Database Design, Models, Database Programming Techniques, Database Normalization Theory, File Structures-Indexing and Hashing, Query Processing-Optimization and Database Tuning, Transaction Processing-Concurrency Control and Recovery, Security and Distribution, Advanced Database Models-Systems and Applications.

 

SWEN305 Software Project Management

This course aims to deliver successful software projects that support the organization’s strategic goals, match organizational needs to the most effective software development model, and develop the skills for tracking and controlling software deliverables. Course content: Project planning, cost estimation, and scheduling. Project management tools. Factors influencing productivity and success. Productivity metrics. Analysis of options and risks. Planning for change. Management of expectations. Release and configuration management. Software process standards and process implementation. Software contracts and intellectual property. Approaches to maintenance and long-term software development. Case studies of real industrial projects.

 

RMET301 Research Methods and Ethics

This course introduces students to engineering ethics, conceptual and practical tools for gathering primary data, and the knowledge which are necessary for completing an academic project. The course includes an overview of Ethics, Ethics for IT Professionals, Computer and Internet Crime, Privacy, Freedom of Expression, Intellectual Property, Software Development, The Impact of Information Technology on the Quality of Life, Social Networking, Ethics of IT Organizations, Introduction to Research and the Research Process, Research Ethics and Integrity, Quantitative Research, Study Designs, Analysis and Interpretation of Quantitative Data, Qualitative Research, Analysis and Interpretation of Qualitative Data, Mixed Methods Research.

 

SWEN302 Software Design

The main aim of this course is to familiarize students with concepts and methods of software design and architecture, learn how to perform architectural design and OO design and basic project management tasks using examples, and experience design and architecture in a larger project. Course content: An in-depth look at software design. Continuation of the study of design patterns, frameworks, and architectures. Survey of current middleware architectures. Design of distributed systems using middleware. Component-based design. Measurement theory and appropriate use of metrics in design. Designing for qualities such as performance, safety, security, reusability, reliability, etc. Measuring internal qualities and complexity of software. Evaluation and evolution of designs. Basics of software evolution, reengineering, and reverse engineering.

 

SWEN304 Operating Systems

The aim of this course is to give students details of operating systems and how they work. Course Content: Principles of operating systems. Memory management. Multiprocessing. Virtual memory concepts. Memory protection. Scheduling. Process management. Time-slicing and priorities, deadlocks, and process synchronization. Peripheral control. Filing system management. Resource control and monitoring. Linux and Windows Operating Systems.

 

SWEN306 Web Design and Application Development

Introduction to HTML, Dynamic HTML, Web Development Software, Publishing a Site, An Introduction to XML, Creating Mobile Documents, CSS Basics, Beginning server programming using PHP, Expressions and Control Flow in PHP, PHP Functions-Objects and Arrays, MySQL, Accessing MySQL Using PHP, Form Handling, Cookies, Sessions and Authentication, JavaScript, JavaScript Functions-Objects and Arrays, AJAX and Web Services.

 

ECON101 Economics I

This course comprises an introductory exploration of Economics. Course Content: The Scope of Economics, How Markets Work, Firms and Markets, Government in the Economy, Microeconomic Basics, Microeconomic Policy, Globalisation and the International Economy.

 

 

YEAR IV

MISY401 Management Information Systems

This is a principal course for business administration students. The course provides information on information systems and their importance for business success. This course includes organizational and technical foundations of information systems, theory of information systems design, fundamental database principles, network systems, and e-commerce and supply chain systems. Different information technology applications in business and support to decision makers for strategic business decisions will also be discussed.

 

SWEN401 Data Communication and Networking

The aim of this course is to give details of computer networking and data communication. Course Content: Introduction to Computer Networks and Data Communications, Fundamentals of Data and Signals, Conducted and Wireless Media, Making Connections, Making Connections Efficient, Errors, Error Detection and Error Control, Local Area Networks, Introduction to Metropolitan Area Networks and Wide Area Networks, The Internet, Voice and Data Delivery Networks, Network Security, Network Design and Management.

 

SWEN403 Software Systems Security

The aim of the course is to prepare students for software systems security. Course Content: Introduction to Software Systems and Security, The Need for Security, Legal, Ethical, and Professional Issues in Information Security, Risk Management, Planning for Security, Security Technology, Cryptography, Physical Security, Implementing Software and Information Security, Security and Personnel, Software and Information Security Maintenance.

 

SWEN481 Senior Project I

The course aims to give senior design experience to students. This course is the first part of a design project. The senior design project can be a software or a networking project under the supervision of a faculty member. Oral presentations and written reports are required.

 

SWEN482 Senior Project II

Students continue the project they started in the SWEN481 course. Oral presentation and written reports are required.

 

SWEN402 Software Process Management

In this course, software project processes and project management methodologies will be studied. Basic principles and methods for initiation, planning, and execution of software projects by considering software process management issues are discussed.

 

SWEN498 Summer Practice

Students must complete their compulsory internship of 30 working days.

Head of Department: Assoc. Prof. Dr. Boran Şekeroğlu

e-mail: boran.sekeroglu@wpu.edu.tr

Tel: +90 392 444 49 78 (444 4 WPU)

Address: Sht.Kemal Ali Omer Street, No: 22, Yenisehir, Nicosia, TRNC, Mersin 10 Turkey.