|
GRADUATE PROGRAM IN SOFTWARE ENGINEERING
|
Web Site of the Department
Head of Program: Fikret Gurgen
Professors: Lale Akarun, Ethem Alpaydin, M. Ufuk Caglayan, Cem
Ersoy, Levent Akin, Taflan Gundem, Fikret Gurgen, A. C. Cem Say, Oguz
Tosun
Associate Professors: Tunga Gungor, Can Ozturan, Arda Yurdakul
Assistant Professors: Fatih Alagoz, Ayse Bener, Haluk Bingol, Pinar
Yolum Birbil, Tuna Tugcu
Instructors: Ali Vahit Sahiner
*Part-time
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 technology 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 information technology would like to pursue careers
in information technology and especially in software systems development.
The main objective of the MS in Software Engineering Program is to provide
a graduate level education to such 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 the graduates of 4-year degree programs
in engineering and science schools as well as business, management, education
schools and other 4-year 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 software
systems requirements, design, implementation and testing techniques. The
main emphasis is on the application of these techniques and on 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 graduation requirement is to complete 33 credits
of course work consisting of 9 required and 2 elective courses and two
semesters of project work. This can be accomplished in 3 semesters under
normal circumstances. 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 are required to take additional remedial courses.
**This program is subject to additional tuition and fees.
M.S. PROGRAM IN SOFTWARE ENGINEERING
Remedial Courses
| SWE 501 Introduction to Object Oriented Programming |
(3+0+0) 3
|
| SWE 510 Data Structures and Algorithms |
(3+0+0) 3
|
|
SWE 514 Computer Systems
|
(3+0+0) 3
|
| SWE 521 Database Systems |
(3+0+0) 3
|
First Semester
| SWE 513 Principles of Software Engineering
|
(3+0+0) 3
|
| SWE 522 Software Requirements Engineering |
(3+0+0) 3
|
| SWE 5xx Elective |
(3+0+0) 3
|
Total semester credits : 9
|
Second Semester
|
| SWE 523 Managing Software Development I |
(3+0+0) 3
|
| SWE 530 Software Design Process |
(3+0+0) 3
|
| SWE 5xx Elective |
(3+0+0) 3
|
| SWE 573 Software Development Practice |
(2+0+4) 4
|
|
Total semester credits : 13
|
| Third Semester |
|
| SWE 550 Software Quality Assurance and Reliability |
(3+0+0) 3
|
| SWE 5xx Elective |
(3+0+0) 3
|
| SWE 574 Software Development as a Team |
(2+0+4) 4
|
| SWE 599 Project |
(0+3+0) 0
|
| |
Total semester credits : 10
Total credits : 32
|
CORE COURSES (9*3=27 Credits)
| 1.SWE 511 Computer Architecture |
(3+0+0) 3
|
| 2. SWE 512 Operating Systems |
(3+0+0) 3
|
| 3. SWE 513 Principles of Software Engineering |
(3+0+0) 3
|
| 4. SWE 520 Computer Networks |
(3+0+0) 3
|
| 5. SWE 521 Database Systems |
(3+0+0) 3
|
| 6. SWE 522 Software Requirements Engineering |
(3+0+0) 3
|
| 7. SWE 523 Managing Software Development I |
(3+0+0) 3
|
| 8. SWE 530 Software Design Process |
(3+0+0) 3
|
| 9. SWE 531 Managing Software Development II |
(3+0+0) 3
|
| 10. SWE 571 Project I |
(0+3+0) 0
|
| 11. SWE 572 Project II |
(0+4+0) 0
|
ELECTIVE COURSES (2*3=6 Credits)
| 1. SWE 540 Multimedia and Web |
(3+0+0) 3
|
| 2. SWE 541 Electronic Commerce |
(3+0+0) 3
|
| 3. SWE 542 Advanced Software Engineering |
(3+0+0) 3
|
| 4. SWE 543 Decision Support Systems |
(3+0+0) 3
|
| 5. SWE 544 Internet Programming |
(3+0+0) 3
|
| 6. SWE 545 Distributed Systems Programming |
(3+0+0) 3
|
| 7. SWE 546 Data Mining |
(3+0+0) 3
|
| 8. SWE 547 Human Computer Interaction |
(3+0+0) 3
|
| 9. SWE 548 High Performance Computing |
(3+0+0) 3
|
| 10. SWE 549 Systems Software and Programming
|
(3+0+0) 3
|
| 11. SWE 550 Software Quality Assurance and Reliability
|
(3+0+0) 3
|
| 12. SWE 551 Lightweight Client Programming |
(3+0+0) 3
|
| 13. SWE 552 Telecommunications Software Engineering
|
(3+0+0) 3
|
| 14. SWE 553 Embedded Systems |
(3+0+0) 3
|
| 15. SWE 554 CAD/CAM Software Development |
(3+0+0) 3
|
| 16. SWE 555 Artificial Intelligence Techniques |
(3+0+0) 3
|
| 17. SWE 580-595 Special Topics in Software Engineering |
(3+0+0) 3
|
COURSE DESCRIPTIONS
SWE 501 Introduction to Object Oriented Programming
(3+0+0) 3
(Nesneye Yonelik Programlamaya Giris)
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
(Veri Yapilari 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 (Bilgisayar Mimarisi)
(3+0+0) 3
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 (Isletim Sistemleri) (3+0+0)
3
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
(Yazilim Muhendisliginin 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
(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 (Bilgisayar Aglari) (3+0+0)
3
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 (Veritabani Sistemleri) (3+0+0)
3
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
(Yazilim Isterleri Muhendisligi)
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
(Yazilim Gelistirme Yonetimi 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 (Yazilim Tasarimi
Sureci) (3+0+0) 3
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.
Prerequisites: SWE 513
SWE 531 Managing Software Development II (3+0+0) 3
(Yazilim Gelistirme Yonetimi 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 (Cokluortam ve Web) (3+0+0)
3
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 (Elektronik Ticaret) (3+0+0)
3
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.
Prerequisites: SWE 544
SWE 542 Advanced Software Engineering (Ileri Yazilim
Muhendisligi) (3+0+0) 3
Study of specific advanced topics in software engineering. Program construction
and verification, software testing and reliability, advances in software
development tools.
Prerequisites: SWE 513
SWE 543 Decision Support Systems (Karar Destek Sistemleri) (3+0+0)
3
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 (Internet Programlama)
(3+0+0) 3
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
(Dagitik 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 Madenciligi) (3+0+0) 3
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 (Insan Bilgisayar
Iletisimi) (3+0+0) 3
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 (Yuksek Basarimli
Hesaplama) (3+0+0) 3
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
(Sistem Yazilimi 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
(Yazilim Kalite Guvencesi ve Guvenilirligi)
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
(Gucsuz Istemci 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
(Telekomunikasyon Yazilimi Muhendisligi)
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 (Gomulu Sistemler) (3+0+0)
3
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
(Bilgisayar Destekli Tasarim/ Bilgisayar Destekli Uretim (BDT/BDU) Yazilimi
Gelistirme)
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 (Yapay
Zeka Teknikleri) (3+0+0) 3
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)
(Ileri Veritabani 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 571 Software Engineering Project I (0+3+0) 0
(Yazilim Muhendisligi 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
(Yazilim Muhendisligi Projesi II)
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
(Yazilim Gelistirme Pratigi)
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
(Takim OlarakYazilim Gelistirme)
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 (0+4+0)
0
(Yazilim Muhendisligi'nde Vaka Caliþmalari I)
Investigation of software engineering problems through seminars. Teamwork
applications and projects on software development problems.
SWE 576 Case Studies in Software Engineering II (0+4+0)
0
(Yazilim Muhendisligi'nde Vaka Caliþ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 presentation.
SWE 590-595 Special Topics in Software Engineering
(3+0+0) 3
(Yazilim Muhendisligi'nde Ozel Konular)
Special studies on current topics in software engineering.
SWE 599 Project (Proje ) (0+3+0) 0
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.
Web Site of the Department
|