Program tanımları
Yazılım Mühendisligi Tezsiz Yüksek Lisans Programı'nın ana hedefi 4 yıllık üniversite/yüksek okul lisans programlarından birini bitiren kisilere yazılım mühendisligi alanında ihtisas egitimi
verilmesidir. Programı basarıyla bitirenlere "Yazılım Mühendisligi Yüksek Lisans Diploması"
verilmektedir. Yazılım Mühendisligi Yüksek Lisans Programı’nda esas olarak yazılım proje
yönetimi ve yazılım gelistirme alanlarında ihtisaslasma amaçlanmaktadır.
Yazılım Mühendisligi Yüksek Lisans Programı, üç yarıyılda bitirilecek sekilde planlanmıstır ve ön
sart dersleri hariç en fazla altı yarıyılda bitirilmelidir. Dersler, önsart dersleri, zorunlu dersler ve
seçmeli dersler olarak üç gruba ayrılmıstır. Yüksek lisans tezi yerine, kisisel ve takım halinde
yapılacak projeleri kapsayan uygulama ve proje dersleri vardır. Egitim dili İngilizce’dir.
DERS LİSTESİ
SWE 501 Introduction to Object Oriented Programming 3
SWE 510 Data Structures and Algorithms 3
SWE 511 Computer Architecture 3
SWE 512 Operating Systems 3
SWE 513 Principles of Software Engineering 3
SWE 514 Computer Systems 3
SWE 520 Computer Networks 3
SWE 521 Database Systems 3
SWE 522 Software Requirements Engineering 3
SWE 523 Managing Software Development I 3
SWE 530 Software Design Process 3
SWE 531 Managing Software Development II 3
SWE 540 Multimedia and Web 3
SWE 541 Electronik Commerce 3
SWE 542 Advanced Software Engineering 3
SWE 543 Decision Support Systems 3
SWE 544 Internet Programming 3
SWE 545 Distributed Systems Programming 3
SWE 546 Data Mining 3
SWE 547 Human Computer Interaction 3
SWE 548 High Performance Computing 3
SWE 549 System Software and Programming 3
SWE 550 Software Quality Assurance and Reliability 3
SWE 551 Lightweight Client Programming 3
SWE 552 Telecommunications Software Engineering 3
SWE 553 Embedded Systems 3
SWE 554 CAD/CAM Software Development 3
SWE 555 Artificial Intelligence Techniques 3
SWE 571 Software Engineering Project 0
SWE 572 Project 2 0
SWE 573 Software Development Practice 4
SWE 574 Software Development as a Team 4
SWE 575 Case Studies in Software Engineering I 0
SWE 576 Case Studies in Software Engineering II 0
SWE 592 SP.TOP.IN SWE:ADVANCED DATABASE SYSTEMS 3
SWE 593 Formal Methods in Software Verification and Validation 3
SWE 599 Project 0
Ders Tanımları
SWE 501 Introduction To Object Oriented Programming (3+0+0) 3
(Nesneye Yönelik 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.
Programlama yöntemleri. Belirtim, tasarım, kodlama, program dogrulugu. Veri tiplerinin gözden
geçirilmesi, sayıl tipler, yapılı tipler. Veri yapıları: Dogrusal yapılar( yıgıt, kuyruk, dogrusal listeler),
dogrusal olmayan yapılar (agaçlar, kümeler), dosyalar( sıradan, rasgele erisimli). Veri yapılarının
gerçeklestirilmesi. Baglı liste gerçeklestirilmesi, çok boyutlu dizi gerçeklestirilmesi, kayıt
gerçeklestirilmesi, karakter katarı, kuyruk, agaç ve küme uygulamaları. Özyineleme.
SWE 510 Data Structures and Algorithms
(Veri Yapıları ve Algoritmalar) (3+0+0) 3
Specification, usage and implementation and analysis of advanced data structures and algorithms.
Hashing, heap structures, advanced sorting techniques, graphs and algorithm design techniques.
İleri veri yapılarının ve algoritmalarının kullanımı, gerçeklenmesi ve analizi. Kurs, formül ile veriye
ulasma, yıgın yapıları, ileri sıralama teknikleri, çizgeler ve algoritma tasarım teknikleri.
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.
Bilgisayar sistemleri hiyerarsik yapısı.Bilgisayar mimari elemanları,bilgisayar mimarilerinin
sınıflandırılması. Bilgisayar yapısının “derleme” düzeyinde irdelenmesi, komut kümeleri ,adresleme
türleri.İslemci yapısı, ayrılmıs bellek, sanal bellek, bellek yönetim mekanizması. Bilgisayar giris/çıkıs
yapıları.Von Neumann mimarisinin kısıtlı yapısı. RISC ve CISC islemci yapılarının karsılastırılması.
Boruhatlı islemciler. Dizi islemcileri. Çok islemcili sistem mimarileri.
SWE 512 Operating Systems
(İsletim 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 structure.
Protection and Security: Access matrix and rights, capabilities, security issues.
İsletim Sistemlerinin Evrimi. Çoklu programlama ve zaman paylastırma. Kullanıcı ve program
arayüzleri. Eszamanlı islemler, CPU zamanlaması, süreç eszamanlaması, kritik bölüm problemi.
Ölümcül kilitlenmenin önlenmesi, kaçınılması, belirlenmesi ve kurtulma. Bellek yönetimi, çoklu
bölmeleme. Sayfalandırma, bölümlendirme, sanal bellek, sayfa yenileme algoritmaları. Dosya sistemi
yapıları, yer alma yöntemleri, girdi/çıktı arayüzleri, ikincil depolama yapıları. Koruma ve güvenlik:
Ulasım hakları, yetkileri, güvenlik konuları.
SWE 513 Principles of Software Engineering (3+0+0) 3
(Yazılım Mühendisliginin 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.
Yazılım mühendisligine giris kavramları. Yazılım hayat döngüsü, proje planlaması, yazılım yönetimi,
kullanıcı istekleri toplama ve analizi, insan faktörü, islevsel özellikler, yazılım mimarisi, tasarım
metodları, güvenilirlik ve bakım için programlama, programlamada takım çalısması, program test
yöntemleri, program teslimi ve bakımı, programlama süreçleri ve ürün degerlendirmesi, süreç ve ürün
mükemmeliyeti, proje belgelendirilmesi.
SWE 514 Computer Systems
(Bilgisayar Sistemleri) (3+0+0) 3
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.
Bilgisayar mimarilerinin sınıflandırılması. Bilgisayar yapısı, komut kümeleri ,adresleme türleri.
İslemci ve bellek yapıları. Giris/çıkıs düzenekleri. Von Neumann mimarisinin kısıtları. RISC ve CISC
islemciler. Boruhatlı islemciler. Çok islemcili mimariler. Çoklu programlama ve zaman paylastırma.
Kullanıcı ve program arayüzleri. Eszamanlı islemler, islemci zamanlaması, süreç eszamanlaması,
kritik bölüm problemi. Ölümcül kilitlenme. Bellek yönetimi. Çoklu bölmeleme, sayfalama,
bölümlendirme, sanal bellek. Dosya ve dizin sistemi yapıları. İkincil depolama yapıları.
SWE 520 Computer Networks
(Bilgisayar Agları) (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.
Ag katmanı ve mimarileri, dayanak modelleri. Fiziksel katman ve veri iletisimi konuları. Veri bagı
katmanı konuları, kayan pencere protokolları. Yerel aglar, Ethernet, köprü ve anahtarlar. Ag katmanı
konuları, yönlendirme ve tıkanıklık denetimi, Internet Protokolu, yönlendirme protokolları. Tasıma
katmanı servisleri ve protokolları. TCP ve UDP. Ag programlama. Uygulama katmanı konuları ve
protokolları.
SWE 521 Database Systems
(Veritabanı 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.
Veritabanı ve veritabanı yönetim sistemleriyle ilgili temel konular. Bagıntısal veritabanı modeli ve
diger önemli veri modelleri. Bagıntısal veritabanlarda standart sorgulama dili olarak SQL. Veritabanı
yönetim sistemlerinin kullanımı ve tasarımı.
SWE 522 Software Requirements Engineering (3+0+0) 3
(Yazılım İsterleri Mühendisligi)
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.
Sistem ve yazılım isterleri mühendisligi, İslevsel ve islevsel olmayan isterlerin tanılanması, ortaya
çıkarılması, modellenmesi, çözümlenmesi, belirtimi, yönetimi ve evrimi. Donanım, yazılım ve
örgütlenme arasındaki ödünlesim ve etkilesimler. Gerekirlerden tasarıma geçis. İsterler
mühendisliginde kritik konular.
SWE 523 Managing Software Development I
(Yazılım Gelistirme Yönetimi I) (3+0+0) 3
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.
Proje yönetimi konularına genel bakıs. Yazılım gelistirme alanına özgü yönetim teknikleri. Yazılım
projesi yönetimi konularının temelleri. Proje personeli ve organizasyonu. Yazılım büyüklügü,
gelistirme süresi, maliyet, bütçeleme ve zamanlama kestirimleri.
SWE 530 Software Design Process
(Yazılım Tasarımı Süreci) (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.
Tasarım ve mimarinin gösterimleri. Yazılım mimarileri ve tasarım planları. Tasarım yöntemleri.
Tasarım durum degerlendirmesi. Tasarım nitelik güvencesi. Tasarım dogrulaması. Grup halinde bir
uygulamanın tasarımı ve gerçeklestirilmesi.
SWE 531 Managing Software Development II (3+0+0) 3
(Yazılım Gelistirme 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
Yazılım gelistirmede ayrıntılı proje planlama ve zamanlama. Yazılım süreçleri yönetimi. Yazılım
yapılanıs yönetimi. Yazılım projesi yönetimi için açık ve ticari araçlar.
Önkosul: SWE 523
SWE 540 Multimedia and Web
(Çokluortam 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.
Çokluortam bilgi tipleri: metin, grafik, yardımlı metin, ses, imgeler, video ve canlandırma.
Çokluortam bilgi biçem ve standartları: MPEG. Çokluortam veri sunumu için WWW. Alt, orta ve
yüksek düzeyde web sayfası tasarımı. HTML, DHTML, Javascript ve 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
Elektronik ticarete disiplinlerarası bakıs ve takım projeleri. Elektronik ticaretin teknoloji alt yapısı,
web tabanlı isletme örnekleri, İnternet ekonomisi, is ve teknoloji modelleri, İnternette güvenlik,
sosyal, yasal ve is ahlaki ile ilgili problemler. Web tabanlı isletme için is planı olusturulması.
Önkosul: SWE 544
SWE 542 Advanced Software Engineering
(İleri Yazılım Mühendisligi) (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
İleri yazılım mühendisligi konularının incelenmesi. Program gelistirilmesi ve dogrulanması, yazılım
test etme ve güvenilirligi, yazılım gelistirme araçlarında ilerlemeler.
Önkosul: 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.
İşletmelerde karar almayı destekleme, karar destek sistemleri ile rekabet avantajını artırma,
isletmelerde karar alma süreçlerinin analizi, karar destek sistemlerinin tasarımı ve programlanması,
önyüz tasarımı, karar destek sistemlerinin alt yapı mimarisinin tasarımı ve incelenmesi, ag ve
güvenlik problemleri ve karar destek sistemleri projelerinin degerlendirilmesi.
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.
İstemci-sunucu taraflarında programlama, Web-uygulama-veri tabanı sunuculu 3 katmanlı yazılım
mimarileri, web sunucular, servlet ve applet’ler. Akrandan-akrana uygulamalar, ag programlama.
SWE 545 Distributed Systems Programming
(Dagıtık Sistem Programlama) (3+0+0) 3
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
TCP/IP temelleri. Süreçler arası haberlesme. Süreç parçacıkları ve kosullama degiskenleri. Soketler –
Berkeley soketleri. Tasıma Katmanı Arayüzü (TLI) ve STREAMS kütüphanesi. Uzaktan Yordam
Çagırma (RPC). RMI ve CORBA. XML ve SOAP, ag servisleri. Hareketli ajanlar.
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.
Veritabanları, veri ambarları ve veri madenciligi. Veri önisleme ve temizleme. Bagıntı ögrenme.
Öznitelik çıkarma, sınıflandırma ve regresyon. Örnek çalısmalar: Sepet analizi ve kredi risk puanı
hesaplama.
SWE 547 Human Computer Interaction
(İnsan Bilgisayar İletisimi) (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.
İnsanlarla bilgisayarlar arasında iletisimi tanımlayan programlama dilleri, teknikler ve
mekanizmaların gözden geçirilmesi. Önyüzde grafik kullanımı, çoklu sistemler, seçenekli donanımlar,
önyüz tasarımlarında problemler, kullanıcı odaklı tasarımlar ve analizler. Psikolojik, fizyolojik ve
algılamaya dayalı etkenler. Kullanılan tekniklerin üstünlük ve zayıflıkları, komut lisanları ve veri
sunumları.
SWE 548 High Performance Computing (3+0+0) 3
(Yüksek Basarı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.
Yüksek basarımlı bilgisayar mimarileri: Çok-islemcililer, çok-bilgisayarlılar, Flynn mimari sınıfları,
SIMD, MIMD, SPMD, baglama topolojileri, öbek bilgisayarları. Önbellek kullanımı eniyileme
teknikleri. Vektörlestirme. Kosut makine ve basarım modelleri: PRAM, hızlanma, çalısma etkenligi,
ölçeklenebilme. Mesaj yollama ve çoklu-sicim kütüphaneleri ile paralel programlama. Kosut
uygulamalar. Yük dengeleme ve çizge parçalama.
SWE 549 System Software and Programming (3+0+0) 3
(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.
Derleyicilere, yorumlayıcılara, çeviricilere, baglayıcılara ve yükleyicilere bakıs. Unix ortamı ve
yönetimi. Sistem çagrıları. Sinyaller ve istisnalar. Yöresellestirme ve Unicode. Perl ve CGI
programlama. Çevirici programlama.
SWE 550 Software Quality Assurance and Reliability (3+0+0) 3
(Yazılım Kalite Güvencesi ve Güvenilirligi)
Processes and methods for developing,assessing and maintaining quality software. Quality factors,
reliability, robustness etc. Spftware quality assurance via verification, testing and fault-tolerance.
Software quality standarts and enforcement processes. Software verification vs validation.Goals of
SW testing : defect detection & removal and assurance of quality. Classification and details of
software testing procedures Problems and policies in optimum SW release time. Fault-tolerant
software design. Software reliability modeling.
Nitelikli yazılım gelistirme, güvenceleme ve bakımı ile ilgili yöntemler ve süreçler. Güvenilirlik,
gürbüzlük vb nitelik etkenleri. Saglama, test ve hataya-dayanıklılık yolu ile kalite güvenceleme.
Yazılım kalite standartları ve uygulanması. Yazılımın “dogrulanması” ve “geçerlilik saptanması”
yöntemlerinin karsılastırılması. Kalite göstergeleme ya da hata bulup düzeltme amaçlı yazılım testi.
Yazılım test yöntemleri ve ayrıntıları. En uygun test sonlandırma ve yazılım teslim zamanı ile ilgili
problem ve politikalar. Hataya dayanıklı yazılım tasarımı. Yazılım güvenilirlik modellemesi.
SWE 551 Lightweight Client Programming
(Güçsüz İstemci Programlama) (3+0+0) 3
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 APIs. J2ME development tools. Technologies used to connect
mobile devices to consumer and enterprise services: Standard data formats, security and application
layer protocols.
Güçsüz istemci örnekleri. Java 2 Micro Edition (J2ME) ve standart SML temelli diller. Gezgin
Bilisim Cihaz Profili (MIDP), Baglanmıs Sınırlı Cihaz (CLCD) yapıları. CLCD ve MIDP uygulama
gelistirme arayüzleri. J2ME gelistirme araçları. Bilgi sistemlerine gezgin araçlardan ulasım, standart
veri biçemleri, güvenlik, uygulama katmanı protokolları.
SWE 552 Telecommunications Software Engineering (3+0+0) 3
(Telekomünikasyon Yazılımı Mühendisligi)
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.
Haberlesme yazılımı özellikleri. OSI yapısı ve standardlasma, protokol yıgıtları ve katmanlar, temel
mekanizmalar: hata ve akıs kontrolü, hatadan kurtarma. Protokol modelleme, öznellik teknikleri,
modelleme dilleri SDL, MSC, LOTOS ve ASN.1. Protokol yıgıtı tasarımı ve katman arayüzleri. Tipik
yazılım mimarileri. Haberlesme yazılımı üretim süreçleri. Standartlarla uyumlu tasarım ve test. TTCN
test tanımlama dili. Test senaryosu tasarımı. Test araçları ve ortamı.
SWE 553 Embedded Systems
(Gömülü 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.
Gömülü sistemlerin tanımı. Gömülü islemciler, hafıza sistemleri, temel dıs birimler, analog dünya
arayüzleri. Kesmeler ve istisnai durumlar. Gerçek zamanlı isletim sistemleri. Gömülü sistemler için
yazılım. Benzetim ve hata ayıklama teknikleri. Tamponlama ve diger veri yapıları. Bellek ve basarım
arası iliskiler. Yazılım ve tasarım örnekleri.
SWE 554 CAD/CAM Software Development (3+0+0) 3
(Bilgisayar Destekli Tasarım/ Bilgisayar Destekli Üretim (BDT/BDÜ) Yazılımı 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.
BDT/BDÜ sistemlerinde kullanılan geometrik modelleme ve bilgisayar grafik teknikleri. BDT/BDÜ
standartları. BDT/BDÜ yazılımlarının incelenmesi. Bilgisayar destekli mühendislik analizi. Üretim
islemleri ve makine araçları. Bilgisayarlı sayısal denetim. Robot teknolojisi ve uygulamaları. Grup
teknolojisi ve bilgisayar destekli islem planlama. Üretim sistemleri.
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.
Bilgi gösterimi. Arama ve bulussal programlama. Yapay zekanın uygulama alanları: Problem çözme,
oyunlar ve bilmeceler, uzman sistemler, planlama, ögrenme, nitel uslamlama ve dogal dil anlama. Bir
yapay zeka dili.
SWE 556 Advanced Database Systems
(İleri Veritabanı Sistemleri) (3+0+0) 3
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.
Veritabanları, veritabanı yönetim sistemleri ve veritabanı uygulamalarında yeni gelismeler:
Genisletilebilir Baglantılı Metin Dili (Extensible Markup Language, XML), tümdengelimli
veritabanları, nesneye yönelik veritabanları, sorgu isleme, dizin, depo yapıları, kosut zamanlılık
denetimi, veri anbarları, tıbbi veritabanları, veritabanı tasarımı.
SWE 571, 572 Software Engineering Project I, II (0+0+3) 0
(Yazılım Mühendisligi Projesi I, 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.
Ögretim üyesi tarafından yönlendirilen, gerçek hayat problemleri için yazılım gelistirme projesi. Ara
gelisme raporları, sonuç raporu ve gelistirilen yazılımın çalısır sekilde gösterilmesi.
SWE 573 Software Development Practice (2+0+4) 4
(Yazılım Gelistirme 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.
Çok programcılı, gerçek hayat, nesneye odaklı, kaynak kodu yönetimi kullanılan çok sürümlü yazılım
gelistirme. Bütünlesik gelistirme ortamları, uluslararasılastırma, kolay bakımlı kodlama, yorumlama,
yeniden düzenleme, test etme, tasarım örüntüleri ve en iyi uygulamalar.
SWE 574 Software Development as a Team (2+0+4) 4
(Yazılım Gelistirmede Ekip Çalısması)
Hands on practice of software development process as a team. Scope, requirements 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.
Ekip olarak yazılım gelistirme süreci uygulaması. Kapsam, gereksinimlerin belirlenmesi, degisim
yönetimi, bütünlestirme ve kullanıma sunma. Yazılım gelistirme süreci yönetiminde araçlar,
yöntemler ve teknikler. Yazılım gelistirme araçları kullanımı. İletisim ve sunum teknikleri. Yazılım
ürünleri gelistirilmesi ve sunumu.
SWE 575 Case Studies in Software Engineering I (0+4+0) 0
(Yazılım Mühendisligi’nde Vaka Çalısmaları I)
Investigation of software engineering problems through seminars. Teamwork applications and
projects on software development problems.
Yazılım mühendisligi problemlerinin seminerler aracılıgı ile incelenmesi. Ekip uygulamaları ve
yazılım gelistirme problemleri üzerine projeler.
SWE 576 Case Studies in Software Engineering II (0+4+0) 0
(Yazılım Mühendisligi’nde Vaka Çalısmaları 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.
Yazılım mühendisligi problemlerinin ziyaretler ve seminerler aracılıgı ile incelenmesi. Ekip
uygulamaları ve yazılım gelistirme problemleri üzerine projeler. Sonuçların sunumlarla ortaya
konulması.
SWE 577 Directed Studies I
(Yönlendirilmis Çalısmalar I) (0+4+0) 0
Research in the field of software engineering, supervised by faculty.
Ögretim elemanı denetiminde yazılım mühendisligi alanında arastırmalar.
SWE 578 Directed Studies II
(Yönlendirilmis Çalısmalar II) (0+4+0) 0
Continued research in the field of software engineering, supervised by faculty.
Ögretim elemanı denetiminde yazılım mühendisligi alanında devam eden arastırmalar.
SWE 590-595 Special Topics in Software Engineering (3+0+0) 3
(Yazılım Mühendisligi'nde Özel Konular)
Special studies on current topics in software engineering.
Yazılım mühendisliginde güncel konular üzerine özel çalısmalar.
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.
Ögretim üyesi tarafından yönlendirilen, yazılım gelistirme ve yazılım sistemlerinin degisik yönleri
üzerine proje. Ara gelisme raporu, sonuç raporu ve sonuçların sunumu.
Simdiye kadar tanımlanmıs ve verilmis“Special Topics” dersleri asagıdadır.
SWE 592 Sp. Topics in Software Engineering: Advanced Database Systems (3+0+0) 3
(Yazılım Mühendisliginde Özel Konular: İleri Veritabanı Sistemleri)
(SWE 556 ders kodu ile yukarıdaki listede yer almıstır.)
SWE 594 Sp. Topics in Software Engineering: Multi-Core Programming (3+0+0) 3
(Yazılım Mühendisliginde Özel Konular: Çok-Çekirdek Programlama)
Introduction. to hyper-threading technology and multi-core architectures. Parallel processing
concepts. System overview of threading. Windows, POSIX and OpenMP multi-threading application
programming interfaces. Message passing programming with MPI. Tools for debugging and
performance analysis.
Hiper sicimleme teknolojisi ve çok çekirdekli mimarilere giris. Parallel islem yapma kavramları.
Windows, POSIX ve OpenMP çok-sicimli uygulama programlama arayüzleri. MPI ile mesaj geçerek
programlama. Hata ayıklama ve basarım analizi için araçlar.
SWE 595 Sp. Topics in Software Engineering: Secure Software Development (3+0+0) 3
(Yazılım Mühendisliginde Özel Konular: Güvenli Uygulama Gelistirme)
Security concepts in software. Information, operating system and network security. Symmetric and
public key cryptography, key distribution, hash codes, digital signatures. Authentication protocols.
Secure Socket Layer (SSL) application development and SSL API libraries. Secure application
requirements, design and implementation.
Yazılımda güvenlik kavramları. Bilgi, isletim sistemi ve ag güvenligi. Simetrik ve açık anahtar
sifreleme, anahtar dagıtımı, kıyımlı kodlar, sayısal imzalar. Kimlik kanıtlama protokolleri. Güvenli
Soket Katmanı (SSL) uygulama gelistirme ve SSL API kütüphaneleri. Güvenli uygulama
gereksinimleri, tasarımı ve gerçeklestirimi.
SWE 596 Sp. Topics in Software Engineering: Patterns in Software Engineering (3+0+0) 3
(Yazılım Mühendisliginde Özel Konular: Yazılım Mühendisliginde Desenler)
Introduction to patterns. Use of patterns in different fields. Pattern languages. Fundamental
requirements of patterns. Information and data entity requirement patterns. User function patterns.
Analysis patterns; Accountability, observation and measurement, conversion, object referance,
inventory and accounting patterns. Design patterns; Creational, structural, behavioral patterns.
Desenlere giris. Diger disiplinlerde desen kullanımı. Desen dilleri. Desenlerin temel isterleri. Bilgi ve
veri birim isterleri desenleri. Kullanıcı islev desenleri. Analiz desenleri; sorumluluk, gözlem ve
ölçüm, dönüsüm, nesne referans, envanter ve muhasebe desenleri. Tasarım desenleri; yaratım, yapısal
ve davranıssal desenler.
Tanımlanmıs fakat verilmemis“Special Topics” dersleri asagıdadır.:
SWE 591 Sp. Topics in Software Engineering: Web Services (3+0+0) 3
(Yazılım Mühendisliginde Özel Konular: Web Servisleri)
Service-oriented architecture; Standards for Web service description; Web Service Description
Language (WSDL); Discovery techniques; Universal Description Discovery and Integration (UDDI);
Simple Object Access Protocol (SOAP); Ontologies; Web Ontology Language (OWL); Applications
of Web services
Servis tabanlı mimari; Web Servis tanınmlamaları için standartlar; Web Servis Tanım Dili (WSDL);
Servis bulma teknikleri; Evrensel Tanım Bulma ve Entegrasyon (UDDI); Basit Nesne Ulasım
Protokolü (SOAP); Ontolojiler; Web Ontoloji Dili (OWL); Web servis uygulamaları
SWE 593 Sp. Topics in Software Engineering: Formal Methods in Software Verification and
Validation (3+0+0) 3
(Yazılım Mühendisliginde Özel Konular: Yazılım Dogrulama ve Saglamada Biçimsel Metotlar)
Propositional, predicate, and temporal logics. Formal systems and system modeling. Program and
software verification and validation. Model checking. Basics of theorem proving. Resolution, natural
deduction, and equality reasoning. Binary decision diagrams. Formal specification environments and
applications. Case studies.
Önerme, yüklem ve zamansal mantıklar. Biçimsel sistemler ve sistem modelleme. Program ve yazılım
dogrulama ve saglama. Model denetimi. Teorem ispatlamanın temelleri. Çözümleme, dogal
tümdengelim ve esitlige dayalı akıl yürütme. Akili karar diyagramları. Biçimsel belirtim araçları ve
uygulamaları. Örnek çalısmalar.