Web Site of the Program
Head of Program :
Professors : Lale Akarun, Levent Akın, Fatih Alagöz, Haluk Bingöl, A. Taylan Cemgil, Cem Ersoy, Taflan Gündem, Tunga Güngör, Fikret Gürgen, Can Özturan, A. C. Cem Say, Mehmet Alper Şen, Tuna Tuğcu, Arda Yurdakul
Associate Professors : Arzucan Özgür, Albert Ali Salah•
Asistant Professors: Emre Uğur
Instructors : Suzan Üskudarlı
• Adjunct
Information technology and software systems as one of its most significant constituents play a major role in the economical development of many countries. Currently, software systems constitute a very important and critical component of computer systems that are being used in almost all aspects of daily life, such as financial systems, commercial systems, health information systems, airline transportation, telecommunication systems, automotive engineering, etc. Software engineering is a new engineering discipline in existence since 1968 and aims the design, production and operation of software systems by using the principles of engineering established in other branches of engineering throughout a large number of years. Software engineering is an area with applications in almost all disciplines.
Information and communications technology (ICT) in Turkey is not oriented for software systems R & D and production since there is a wide shortage of quality man-power. On the other hand, a large number university graduates who are specializing in areas other than ICT would like to pursue careers in ICT and especially in software systems development and software project management. The main objective of the MS in Software Engineering Program is to provide a graduate level education to students who want to work in the new and growing software industry, as software engineers, software developers and software project managers.
The targeted student body is not only the graduates of computer engineering programs but also graduates of other 4-year degree programs in engineering and science schools as well as business, management, education schools and other schools. Some work experience is preferred but not required; therefore new graduates with successful academic records can also apply.
Students will be exposed to a rigorous curriculum that provides a strong base in the fundamentals concepts of software engineering, such as systems analysis and software requirements, software design process and software implementation and testing techniques. The main emphasis is on the application of these techniques and also on software quality and software project management.
Students who have successfully completed the requirements of the Software Engineering Program will receive a Master of Science (M.S.) in Software Engineering degree. The applicants are expected to be knowledgeable in programming concepts and in at least one programming language, in addition to basic computer literacy including the use and operation of an operating system, standard office tools and Internet. Also, those applicants who do not have the necessary background in object oriented programming, data structures and algorithms, computer organization, operating systems and database systems are required to take additional remedial courses.
** This program is subject to additional tuition and fees.
MASTER OF SCIENCE PROGRAM IN SOFTWARE ENGINEERING WITHOUT THESIS
First Semester |
Cr. |
SWE 513 |
Principles of Software Engineering |
3 |
SWE 522 |
Software Requirements Engineering |
3 |
SWE 577 |
Directed Studies I |
0 |
SWE -- |
Elective |
3 |
|
9 |
Second Semester |
Cr. |
SWE 523 |
Managing Software Development I |
3 |
SWE 530 |
Software Design Process |
3 |
SWE 573 |
Software Development Practice |
4 |
SWE 578 |
Directed Studies II |
0 |
SWE -- |
Elective |
3 |
|
13 |
Third Semester |
Cr. |
SWE 550 |
Software Quality Assurance and Reliability |
3 |
SWE 574 |
Software Development as a Team |
4 |
SWE 599 |
Project |
0 |
SWE -- |
Elective |
3 |
|
10 |
Total credits : 32 Credits.
SWE 501 Introduction to Object Oriented Programming |
(3+0+0) 3 ECTS 8
|
SWE 510 Data Structures and Algorithms |
(3+0+0) 3 ECTS 8
|
SWE 514 Computer Systems
|
(3+0+0) 3 ECTS 8
|
SWE 521 Database Systems |
(3+0+0) 3 ECTS 8
|
CORE COURSES Total: 23 Credits, ECTS 67
2. SWE 522 Software Requirements Engineerin |
(3+0+0) 3 ECTS 8
|
3. SWE 523 Managing Software Development I |
(3+0+0) 3 ECTS 8
|
4. SWE 530 Software Design Process |
(3+0+0) 3 ECTS 8
|
5. SWE 550 Software Quality Assurance and Reliability |
(3+0+0) 3 ECTS 8
|
6. SWE 573 Software Development Practice |
(2+0+4) 4 ECTS 9
|
7.SWE 574 Software Development as a Team |
(2+0+4) 4 ECTS 9
|
8. SWE 577 Directed Studies I |
(0+4+0) 0 ECTS 3 P/F
|
9. SWE 578 Directed Studies II |
(0+4+0) 0 ECTS 3 P/F
|
10. SWE 599 Project |
(0+3+0) 3 ECTS 3 P/F
|
ELECTIVE COURSES Total: 9 Credits, ECTS 24
2. SWE 512 Operating Systems |
(3+0+0) 3 ECTS 8
|
3. SWE 520 Computer Networks |
(3+0+0) 3 ECTS 8
|
4. SWE 531 Managing Software Development II |
(3+0+0) 3 ECTS 8
|
5. SWE 540 Multimedia and Web |
(3+0+0) 3 ECTS 8
|
6. SWE 541 Electronic Commerce |
(3+0+0) 3 ECTS 8
|
7. SWE 542 Advanced Software Engineering |
(3+0+0) 3 ECTS 8
|
8. SWE 543 Decision Support Systems |
(3+0+0) 3 E8TS 8
|
9. SWE 544 Internet Programming |
(3+0+0) 3 ECTS 8
|
10. SWE 545 Distributed Systems Programming |
(3+0+0) 3 ECTS 8
|
11. SWE 546 Data Mining |
(3+0+0) 3 ECTS 8
|
12. SWE 547 Human Computer Interaction |
(3+0+0) 3 ECTS 8
|
13. SWE 548 High Performance Computing |
(3+0+0) 3 ECTS 8
|
14. SWE 549 Systems Software and Programming |
(3+0+0) 3 ECTS 8
|
15. SWE 551 Lightweight Client Programming |
(3+0+0) 3 ECTS 8
|
16. SWE 552 Telecommunications Software Engineering |
(3+0+0) 3 ECTS 8
|
17. SWE 553 Embedded Systems |
(3+0+0) 3 ECTS 8
|
18. SWE 554 CAD/CAM Software Development |
(3+0+0) 3 ECTS 8
|
19. SWE 555 Artificial Intelligence Techniques |
(3+0+0) 3 ECTS 8
|
20. SWE 556 Advanced Database Systems |
(3+0+0) 3 ECTS 8
|
21. SWE 557 Patterns in Software Engineering |
(3+0+0) 3 ECTS 8
|
22 SWE 571 Software Engineering Project I |
(0+3+0) 0 ECTS 8 P/F
|
23. SWE 572 Software Engineering Project II |
(0+4+0) 0 ECTS 8 P/F
|
24. SWE 575 Case Studies in Software Engineering I |
(1+0+0) 1 ECTS 1
|
25. SWE 576 Case Studies in Software Engineering II |
(1+0+0) 1 ECTS 1
|
26. SWE 580-598 Special Topics in Software Engineering |
(3+0+0) 3 ECTS 8
|
COURSE DESCRIPTIONS
SWE 501 Introduction to Object Oriented Programming (3+0+0) 3 ECTS 8
(Nesneye Yönelik Programlamaya Giriş)
Programming methodology: Specification, design, coding, program correctness. Review of data types: scalar types, structured types. Data Structures: Linear structures (stacks, queues, linear lists), nonlinear structures (trees, sets), files (sequential, random access). Implementation of data structures: Linked list implementation, multidimensional array implementation, record implementation, character string, stack, queue, tree and set implementations. Recursion.
SWE 510 Data Structures and Algorithms (3+0+0) 3 ECTS 8
(Veri Yapıları ve Algoritmalar)
Specification, usage and implementation and analysis of advanced data structures and algorithms. Hashing, heap structures, advanced sorting techniques, graphs and algorithm design techniques.
SWE 511 Computer Architecture (3+0+0) 3 ECTS 8
(Bilgisayar Mimarisi)
Hierarchical treatment of a computer system. Architectural elements, classification of computer architectures. Assembly level machine organization, instruction sets, address modes. CPU organization, local memory, data operators, interconnection topology. Memory hierarchy, cache memory, virtual memory, associative memory, memory management. I/O organization. Limitations of Von Neumann Architecture. RISC VS CISC. Pipelined processors. Multiprocessor architectures.
SWE 512 Operating Systems (3+0+0) 3 ECTS 8
(İşletim Sistemleri)
Evolution of operating systems. Multi-programming and time sharing concepts. User and program interfaces. Concurrent processes, CPU scheduling, process synchronization, critical section problem. Deadlock prevention, avoidance, detection and recovery. Memory management, swapping, multiple partitions, paging, segmentation, virtual memory, page replacement algorithms. File system structures, allocation methods, directory implementation. I/O interfaces, secondary storage structures. Protection and Security: Access matrix and rights, capabilities, security issues.
SWE 513 Principles of Software Engineering (3+0+0) 3 ECTS 8
(Yazılım Mühendisliğinin Temelleri)
Introductory concepts in software engineering covering an overview of topics in software life cycle, project planning, software management, requirements capture and analysis, human factors, functional specification, software architecture, design methods, programming for reliability and maintainability, team programming, testing methods, configuration management, system delivery and maintenance, process and product evaluation and improvement and project documentation.
SWE 514 Computer Systems (3+0+0) 3 ECTS 8
(Bilgisayar Sistemleri)
Classification of computer architectures. Computer organization, instruction sets, address modes. Processor and memory structures. I/O organization. Limitations of Von Neumann Architecture. RISC and CISC processors. Pipelined processors. Multiprocessor architectures. Multi-programming and time sharing concepts. User and program interfaces. Concurrent processes, processor scheduling, process synchronization, critical section problem. Deadlocks. Memory management. Multiple partitions, paging, segmentation, virtual memory. File and directory system structures. Secondary storage structures.
SWE 520 Computer Networks (3+0+0) 3 ECTS 8
(Bilgisayar Ağları)
Network layers and architectures, reference models. Physical layer and data communications issues. Data link layer issues, sliding window protocols. Local area networks, Ethernet, bridges and switches. Network layer issues, routing and congestion control, Internet Protocol, routing protocols. Transport layer services and protocols. TCP and UDP. Network programming. Application layer issues and protocols.
SWE 521 Database Systems (3+0+0) 3 ECTS 8
(Veritabanı Sistemleri)
Practical and intuitive understanding of databases and database management systems. The relational model. Other important data models. SQL as a standard query language for the relational model. Design and use of data base management systems.
SWE 522 Software Requirements Engineering (3+0+0) 3 ECTS 8
(Yazılım İsterleri Mühendisliği)
System and software requirements engineering. Identification, elicitation, modeling, analysis, specification, management, and evolution of functional and non-functional requirements. Interactions and trade-offs among hardware, software, and organization. Transition from requirements to design. Critical issues in requirements engineering.
SWE 523 Managing Software Development I (3+0+0) 3 ECTS 8
(Yazılım Geliştirme Yönetimi I)
Overview of general project management issues. Specialized management techniques unique to nature of software development. Fundamental issues of software project management. Project personnel and organization. Software size, development duration, cost, budgeting and schedule estimation.
SWE 530 Software Design Process (3+0+0) 3 ECTS 8
(Yazılım Tasarımı Süreci)
Representations of design and architecture. Software architectures and design plans. Design methods. Design state assessment. Design quality assurance. Design verification. Group design and implementation of an application.
SWE 531 Managing Software Development II (3+0+0) 3 ECTS 8
(Yazılım Geliştirme Yönetimi II)
Detailed project planning and scheduling in software development. Software process management. Software configuration management. Public domain and commercial tools for software project management.
Prerequisite: SWE 523.
SWE 540 Multimedia and Web (3+0+0) 3 ECTS 8
(Çokluortam ve Web)
Types of multimedia information: text, graphics, hypertext, sound, images, video and animation. Formats and standards of multimedia information: MPEG. The WWW as a medium for multimedia data. Low, medium and high level web page design. HTML, DHTML, Javascript and Java.
SWE 541 Electronic Commerce (3+0+0) 3 ECTS 8
(Elektronik Ticaret)
A critical review and analysis of electronic commerce, with emphasis on multidisciplinary aspects and team projects. Technology infrastructure for electronic commerce, examples of web-based businesses, economics and business models of the Internet, Internet security, social, legal, ethical and public policy issues of the Internet and a business plan creation for a web-based operation.
Prerequisite: SWE 544.
SWE 542 Advanced Software Engineering (3+0+0) 3 ECTS 8
(İleri Yazılım Mühendisliği)
Study of specific advanced topics in software engineering. Program construction and verification, software testing and reliability, advances in software development tools.
Prerequisite: SWE 513.
SWE 543 Decision Support Systems (3+0+0) 3 ECTS 8
(Karar Destek Sistemleri)
Supporting business decision-making. Gaining competitive advantage with Decision Support Systems (DSS). Analyzing business decision processes. Designing and developing decision support systems. Designing and evaluating DSS user interfaces. Understanding DSS architecture. Networking and security issues. Evaluating decision support system projects.
SWE 544 Internet Programming (3+0+0) 3 ECTS 8
(İnternet Programlama)
Programming in client and server side. Web-application-data base server architectures. Web servers, servlets, applets. Peer-to-peer applications. Network programming.
SWE 545 Distributed Systems Programming (3+0+0) 3 ECTS 8
(Dağıtık Sistem Programlama)
TCP/IP basics. Inter-process communication. Threads and condition variables. Sockets - Berkeley sockets. Transport Layer Interface (TLI) and STREAMS library. Remote Procedure Call (RPC). RMI and CORBA. XML and SOAP, Web Services. Mobile Agents
SWE 546 Data Mining
(Veri Madenciliği) (3+0+0) 3 ECTS 8
Databases, data warehouses, and data mining. Data preprocessing and cleansing. Association mining. Feature extraction, classification and regression. Case studies: Basket analysis and credit risk scoring.
SWE 547 Human Computer Interaction (3+0+0) 3 ECTS 8
(İnsan Bilgisayar İletişimi)
An exploration of the languages, techniques and mechanisms used to define and enhance communication between people and computer applications, both for input and output, in the general case and for a variety of important special domains. Use of graphics in the interface; multimedia environments; alternative I/O devices; issues in interface design, and user-centered design and task analysis. Overview of psychological, physiological, linguistic, and perceptual factors. Advantages and disadvantages of various interaction techniques. Command language syntax and data presentations.
SWE 548 High Performance Computing (3+0+0) 3 ECTS 8
(Yüksek Başarımlı Hesaplama)
High performance computer architectures: Multiprocessors, multicomputers, Flynn's taxonomy, SIMD, MIMD, SPMD, interconnection topologies, Beowulf clusters. Cache optimization techniques. Vectorization. Parallel machine and performance models: PRAM, speedup, work efficiency, scalability. Parallel programming with message passing and multi-threading libraries. Parallel applications. Load balancing and graph partitioning.
SWE 549 System Software and Programming (3+0+0) 3 ECTS 8
(Sistem Yazılımı ve Programlama)
Overview of compilers, interpreters, assemblers, linkers and loaders. Unix environment and administration. System calls. Signals and exceptions. Localization and Unicode. Perl and CGI programming. Assembly language programming.
SWE 550 Software Quality Assurance and Reliability (3+0+0) 3 ECTS 8
(Yazılım Kalite Güvencesi ve Güvenilirliği)
Processes and methods for developing, assessing and maintaining quality software. Quality factors, reliability, robustness etc. Software quality assurance via verification, testing and fault-tolerance. Software quality standards and enforcement processes. Software verification vs validation. Goals of software testing: defect detection, removal and assurance of quality. Classification and details of software testing procedures. Problems and policies in optimum software release time. Fault-tolerant software design. Software reliability modeling.
SWE 551 Lightweight Client Programming (3+0+0) 3 ECTS 8
(Güçsüz İstemci Programlama)
Examples of lightweight clients. The Java 2 Platform, Micro Edition (J2ME) and standard SML-based markup languages. Mobile information device profile (MIDP) and Connected Limited Device (CLCD) structures. CLCD and MIDP API's. J2ME development tools. Technologies used to connect mobile devices to consumer and enterprise services: Standard data formats, security and application layer protocols.
SWE 552 Telecommunications Software Engineering (3+0+0) 3 ECTS 8
(Telekomünikasyon Yazılımı Mühendisliği)
Telecommunications software specifics. OSI framework and standardization, protocol stack and layering, typical mechanisms: error and flow control, recovery. Protocol modeling, formal specification techniques, modeling languages SDL, MSC, LOTOS, ASN.1. Design of protocol stacks and layer interfaces. Typical software structures. Production process of telecommunications software. Importance of conformed design and testing. TTCN test specification language. Design of test cases. Testing tools and environments.
SWE 553 Embedded Systems (3+0+0) 3 ECTS 8
(Gömülü Sistemler)
Definition of embedded systems. Embedded processors, memory systems, basic peripherals, interfacing to the analogue world. Interrupts and exceptions. Real-time operating systems. Writing software for embedded systems. Emulation and debugging techniques. Buffering and other data structures. Memory and performance trade-offs. Software and design examples.
SWE 554 CAD/CAM Software Development (3+0+0) 3 ECTS 8
(Bilgisayar Destekli Tasarım/ Bilgisayar Destekli Üretim (BDT/BDU) Yazılımı Geliştirme)
Geometric modeling and computer graphics techniques that are used in CAD/CAM systems. Standards for CAD/CAM. Survey of CAD/CAM software. Computer aided engineering analysis. Manufacturing processes and machine tools. Computer numerical control. Robot technology and applications. Group technology and computer-aided process planning. Manufacturing systems.
SWE 555 Artificial Intelligence Techniques (3+0+0) 3 ECTS 8
(Yapay Zeka Teknikleri)
Representation of knowledge. Search and heuristic programming. Logic and logic programming. Application areas of artificial intelligence: Problem solving, games and puzzles, expert systems, planning, learning, qualitative reasoning, and natural language understanding. An artificial intelligence language.
SWE 556 Advanced Database Systems (3+0+0) 3 ECTS 8
(İleri Veritabanı Sistemleri)
Examination of recent topics and advancements related to databases, database management systems and their applications: Extensible Markup Language (XML), deductive databases, object oriented databases, query processing, indexing, storage structures, concurrency control, security, data warehouses, medical databases, database design.
SWE 557 Patterns in Software Engineering (3+0+0) 3 ECTS 8
(Yazılım Mühendisliğinde Örüntüler)
Role of patterns in software requirements and design. Use of patterns in other fields of engineering. Writing new patterns. Pattern languages. Fundamental requirement patterns. Information and data entity requirement patterns. User function patterns. Analysis patterns: Accountability, observations and measurements, conversions, referring to objects, inventory and accounting patterns. Architectural patterns. Design patterns: Creational, structural and behavioral patterns.
SWE 571 Software Engineering Project I (0+3+0) 0 ECTS 8
(Yazılım Mühendisliği Projesi I)
Project under the supervision of a faculty member for developing software for real-life problems. Progress reports, final report and demonstration of developed software.
SWE 572 Software Engineering Project II (0+4+0) 0 ECTS 8
(Yazılım Mühendisliği Projesi II)
Continuation of Software Engineering Project I. Project under the supervision of a faculty member for developing software for real-life problems. Progress reports, final report and demonstration of developed software.
SWE 573 Software Development Practice (2+0+4) 4 ECTS 9
(Yazılım Geliştirme Uygulamaları)
Multi-programmer, real-world, object-oriented, versioned software development using source code management. Integrated development environments, internationalization, maintainable coding, commenting, refactoring, testing, design patterns and best practices.
SWE 574 Software Development as a Team (2+0+4) 4 ECTS 9
(Yazılım Geliştirmede Ekip Çalışması)
Hands on practice of software development process as a team. Scope, requirement specification, change management, integration and deployment. Tools, methods and techniques for managing the software development process. Use of software development tools. Communication and presentation skills. Development and presentation of software products.
SWE 575 Case Studies in Software Engineering I (1+0+0) 1 ECTS 1
(Yazılım Mühendisliği'nde Vaka Çalışmaları I)
Investigation of software engineering problems through seminars. Teamwork applications and projects on software development problems.
SWE 576 Case Studies in Software Engineering II (1+0+0) 1 ECTS 1
(Yazılım Mühendisliği'nde Vaka Çalışmaları II)
Continuation of Case Studies in Software Engineering I. Investigation of software engineering problems through site visits and seminars. Teamwork applications and projects on software development problems. Demonstration of results through presentations.
SWE 577 Directed Studies I (0+4+0) 0 ECTS 3 P/F
(Yönlendirilmiş Çalışmalar I )
Research in the field of software engineering, supervised by faculty.
SWE 578 Directed Studies II (0+4+0) 0 ECTS 3 P/F
(Yönlendirilmiş Çalışmalar II )
Continued research in the field of software engineering, supervised by faculty.
SWE 579 Graduate Seminar (0+1+0) 0 / ECTS:8 P/F
(Lisansüstü Seminer)
The widening of students’ perspectives and awareness of topics of interest to software engineers through seminars offered by faculty, guest speakers and graduate students.
SWE 590-598 Special Topics in Software Engineering (3+0+0) 3 ECTS 8
(Yazılım Mühendisliği'nde Özel Konular)
Special studies on current topics in software engineering.
SWE 599 Project (0+3+0) 0 ECTS 3 P/F
(Proje )
Project under the supervision of a faculty member on software development and on various aspects of software systems. Progress report, final report and a presentation of final results.