SEDS YL Dersleri

Course Code Ders Adı Tanım Ön Koşul(lar)
SEDS 481 Yazılım Mühendisliği ve Veri Bilimine Hazırlık I

Temel bilgisayar bilgisi, bilişimin tarihçesi, terimler ve tanımlar, sistem bileşenleri ve süreçleri, bilgisayar mimarisi, veri depolama, bilgisayar ağları ve internet, yazılım mühendisliği, yazılım mühendisliği uygulamaları, birleşik modelleme dili, birim testi, problem çözme ve algoritma tasarımı, veri yapıları, bilgisayarların uygulama alanları.

Dersin Amacı:

1. Bilgisayar bilimi hakkında ortak bir anlayış geliştirmek,

2. Sorunları tanımlama, analiz etme ve çözme becerisi kazanmak,

3. Algoritmik düşünme ve tasarımı daha üst düzeyde öğretmek,

4. Bilgisayar mimarisi, programlama dilleri, veri depolama, yazılım mühendisliği ve bilgisayar ağları hakkında temel bilgi edinmek,

5. Bilgisayarların uygulama alanlarını öğretmek.

Kaynakça:

J. G. Brookshear. Computer Science An Overview. 7th Ed. 2002. Addison-Wesley.

Volker Gruhn, Rüdiger Striemer, The Essence of Software Engineering. Springer Cham, doi.org/10.1007/978-3-319-73897-0, ISBN: 978-3-319-73896-3. Published: 04 July 2018

Öğrenim Çıktıları:
1. Bilgisayar biliminin tarihini öğrenmek
2. Algoritma tasarımını öğrenmek
3. Programlama dilleri hakkında temel bilgiye sahip olmak ve farklı programlama dillerine aşina olmak
4. Bilgisayar ağlarının prensiplerini öğrenmek
5. Farklı veri analitiği yöntemleri hakkında temel bilgiye sahip olmak
6. Yazılım mühendisliği kavramları ve uygulamaları hakkında genel bilgiye sahip olmak
7. Yazılım mimarisi hakkında temel bilgiye sahip olmak
8. Bilgisayarların uygulama alanlarını öğrenmek
Konu
Yazılım mühendisliğine giriş
Algoritmalar
Veri soyutlaması
İşletim sistemleri
Bilgisayar Ağları ve İnternet
Programlama dilleri (1)
Programlama dilleri (2)
Veri yapıları
OOP temelleri ve tasarımı
Yazılım mühendisliği ve tasarımı
UML
Yazılım mimarisi
Unit Testing
Genel değerlendirme

Notlandırma:

Ödev: %20

Literatür İncelemesi ve Okuma: %30

Final: %50

SEDS 482 Yazılım Mühendisliği ve Veri Bilimine Hazırlık II

Veri biliminin temel konularına giriş dersidir. Bu ders kapsamında incelenecek veri bilimi konuları makina öğrenmesi ve matematik modeller (eğitmenli ve eğitmensiz öğrenme, karar ağacı budama, eğitme ve veri setlerinin testi), yapısal olmayan veriyi yapısal veriye dönüştüren büyük veri araçları, karar vermeye destek iş zekasıdır.

Week Topics
1 Yapay sinir ağları tarihçesi ve giriş
2 Doğrusal yöntemler ile görüntü sınıflandırma – I
3 Doğrusal yöntemler ile görüntü sınıflandırma – II
4 Geri yayılım – I
5 Geri yayılım – II
6 Yapay sinir ağlarını eğitme I: veri önişleme, ağırlık ilklendirme ve düzenlileştirme, yığın düzgeleme ve yitim fonksiyonları
7 Yapay sinir ağlarını eğitme II: gradyan doğrulama, eğitim verileri yorum ve takibi, ağırlık güncelleme yöntemleri, hiper parametre eniyileme
8 Konvolüsyonel sinir ağları – I
9 Konvolüsyonel sinir ağları – II
10 Konvolüsyonel sinir ağları ile mekansal yerseme ve nesne tespiti
11 Konvolüsyonel sinir ağlarınu görselleştirme ve anlama
12 Yinelgeli sinir ağları
13 Pratikte konvolüsyonel yapay sinir ağları eğitme: Veri artımı, aktarım öğrenme
14 Derin yapay sinir ağları kodlama çerçeveleri
SEDS 500 Bitirme Projesi

Bir eğitim dönemi boyunca, akademik danışman ile belirlenen bir konuda deneysel ve/veya teorik bir araştırma konusunu bağımsız olarak araştırma, değerlendirme ve sunma (yazılı ve sözlü olarak) etkinliklerini içerir.

Öğrencilerin seçilen bir alanda bilimsel olarak güçlü bir şekilde bağımsız bir çalışma yapabileceğini göstermesi. Belirli bir zaman dilimi içinde özel bir problemin çözümüne yönelik olarak bilimsel, etik, detaylı ve doğru bir çalışma yapabileceğini ortaya koyması. Bulgularının yazılı ve sözlü sunulması

Hafta Konu
1-14 Konu hakkında çalışmalar; danışman ile görüşme

Ders Öğrenme Çıktıları

CO1: Bir çalışma alanında uygun teorik, pratik, ve örnek çalışmaları ayırt edebilme ve uygulayabilme

CO2: Bir araştırma çalışmasında takip edilmesi gereken etik kuralları tahmin edebilme

CO3: Bilimsel bir problemi verilen sınırlı bir zaman dilimi içinde uygun bilimsel yöntemleri uygulayarak çözebilme

CO4: Üzerinde çalışılan problemin çözümü için derlenen bilgilerin ve veri setleri ile ilgili yapılması gerekenleri ayırt edebilme ve düşünceler ile bulguları ikna edici bir yolla sunabilme

SEDS 501 Veri Bilimine Giriş

Bu ders veri toplama ve tümleme, keşifsel veri analizi, kestirimsel modelleme, tanımlayıcı modelleme, veri ürünü yaratımı, değerlendirmesi ve etkili iletişim konularını kapsar.

Hafta Konular
1 Veri Bilimine Giriş
2 İstatistiksel Çıkarsama
3 Keşifsel Veri Analizi ve Veri Bilimi Süreci
4 Temel Makine Öğrenmesi Algoritmaları
5 Bir Makine Öğrenmesi Algoritması ve Uygulamalarda Kullanımı
6 Öznitelik Üretimi ve Seçimi
7 Öznitelik Öğrenme
8 Öneri Sistemleri
9 Sosyal Ağ Çizgeleri Madenciliği
10 Bağlantı Analizi
11 Verinin Görselleştirilmesi
12 Doğal Dil İşleme
13 İmge İşleme
14 Veri Bilimi ve Ahlaki Konular

Ders Öğrenme Çıktıları
CO1 Veri bilimini ve bir veri bilimcinin sahip olması gereken yetenekleri tanımlamak.
CO2 Keşifsel veri analizi gerçekleştirmek.
CO3 Veri bilimi sürecini bir durum çalışmasına uygulamak.
CO4 Temel makine öğrenmesi algoritmalarını kestirimci modelleme için uygulamak.
CO5 Veri biliminin uygulanmasında etik ve gizlilik konularını düşünmek ve etik pratikleri uygulamak.

SEDS 502 Modern Veritabanı Yönetimi Sistemleri

Bu ders ileri veritabanı yönetim sistemleri konularına odaklanmaktadır. Birincil konular ilişkisel veritabanı sistemleri için sorgu işleme ve sorgu optimizasyon stratejileri, dizinleme yöntemleri, paralel ve dağıtık veritabanı sistemleri, büyük veri, NoSQL, veri ambarı ve veri madenciliğidir. Veritabanlarındaki ileri düzey konuları öğrenmenin yanı sıra, bu ders lisansüstü öğrencilere bilimsel yayın okuma, eleştirel değerlendirme yapma, karmaşık teknik materyali sözlü ve yazılı olarak ifade etme gibi önemli araştırma becerilerini uygulama fırsatı sağlar.

Dersin Amacı:

Veritabanı sistemlerindeki güncel eğilimler hakkında bilgi sağlamak.

Kaynakça:

Neelamkavil, F. (1987) Computer Simulation and Modelling. John Wiley and Sons. ,Law, A.M. and Kelton, W.D. (1991) Simulation Modelling and Analysis. 2nd Ed. McGraw-Hill

Öğrenim Çıktıları:

1. Sistem ve Model Kavramlarını kazanmak

2. Problem çözümünde simulasyon tekniğinin kullanılması yeteneği

3. Simulasyon çalışmalarının altyapısını bilmek ve gerçek hayatta uygulayabilme yeteneğini kazanmak

4. Simulasyon ile tahminleme yapabilme becerisi kazanmak

Hafta Konu
1 İlişkisel Model
2 Sorgu İşleme
3-4 Sorgu Optimizasyonu
5 İndeksleme
6-7 Kilitleme ve Eşzamanlılık
8 Paralel Veritabanları
9 Dağıtılmış Veritabanları
10 Büyük Veri
11 Web Araması
12 NoSQL
13 Veri Ambarlama
14 Veri Madenciliği

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Notlandırma:

Vize : %30
Araştırma Sunumu : %30
Final : %40

SEDS 504 Yazılım İnşası

Bu ders yazılım geliştirme için gerekli temel bilgileri kapsar. Nesne Temelli Programlama, Sınıflar ve Metotlar, Kalıtım, Polimorfizm, Abstrakt Sınıflar ve Arayüz Sınıfları, İstisna Yönetimi, Kolleksiyonlar, Jenerikler, Nesne Temelli Analiz ve Tasarım, UML Diagramları.

Referans kitap(lar):
• Absolute Java, Global Edition, 6/E, Walter Savitch, Kenrick Mock, Pearson, 2016
• Starting Out with Java: From Control Structures through Objects, Global Edition, 6/E, Tony Gaddis, Pearson, 2016

Dersin Amaçları: Yazılım inşasının temellerini tanıtmak.

Hafta Konular
1 Nesne Temelli Programlamaya Giriş
2 Akış Denetimi
3 Sınıf Kavramı I
4 Sınıf Kavramı II
5 Nesne Temelli Programlamada Lineer Veri Yapıları
6 Nesne Temelli Programlamada Özyinelemeli Veri Yapıları
7 Kalıtım
8 Polimorfizm
9 Abstrakt Sınıflar ve Arayüz Sınıfları
10 İstisna Yönetimi
11 Kolleksiyonlar
12 Jenerikler
13 Nesne Temelli Analiz ve Tasarım
14 UML Diagramları

Notlandırma:

Final Sınavı                                                       %40

Ara Sınav                                                 %30

Proje                                                               %30

Ders Öğrenme Çıktıları
ÖÇ1 Mühendislik problemlerini formule edip yazılım ile çözebilme
ÖÇ2 Sınıfları tasarlayabilme ve kullanabilme
ÖÇ3 Nesne temelli tasarımı kodlayabilme
ÖÇ4 Nesne temelli yazılımı tasarlayabilme

Program Öğrenme Çıktılarının Katkısı:

PO1 PO2 PO3 PO4 PO5 PO6 PO7
CO1 1 1 1 1
CO2 1 1 1 1
CO3 1 1 1 1
CO4 1 1 1 1

Dersin Gerekçesi:
Bu ders, Yazılım Mühendisliği ve Veri Bilimi Yüksek Lisans Programının temel derslerinden biridir ve önemli Yazılım Mühendisliği temel derslerinden biridir. Yazılım mühendisliğinde kullanılacak yazılım geliştirme için gerekli altyapıyı sağlar.

Derslerle örtüşen veya onları tamamlayan konular:
Bu ders, tüm Yazılım Mühendisliği derslerinin temelini oluşturur. Bu ders, Programlama ve Veri Yapıları dersini takip eder.

SEDS 505 Takım Projesi

Bu ders öğrencilerin gerçek bir yazılım mühendisliği ve veri bilimi projesinde kulanılan yöntem, Teknik standartlar ve ortaya çıkan hususları anlaması için oluşturulmuştur.  Öğrenciler takımlar olarak gruplandırılarak daha önceki derslerde öğrendikleri bilgileri var olan standartlar ile bütünleştirmeleri ve bir projede uygulamaları sağlanacaktır. Her takım hem geliştirme hem de kalite güvence rollerini üstelenerek her iki alanda deneyim kazanacaktır. Takımlar bir müşteri ile iletişim kuracak gereksinimleri belirleyip tanımlayacak, proje planı ve tasarım çözüm önerisi oluşturacak, başarılı bir şekilde sınamaları gerçekleştirecektir. Takımlar önceden belirlenen kilometre taşlarında kalite güvence grupları ve akademik kadro ile bir araya gelerek gözden geçirme ve gelişmelerin değerlendirmesini yapacaklardır.

Referans kitap(lar):

  • IEEE Std 830, IEEE Recommended Practice for Software Requirements Specifications
  • ISO/IEC/IEEE Std 16326, ISO/IEC/IEEE International Standard Systems and Software Engineering–Life Cycle Processes–Project Management
  • IEEE Std 1016, IEEE Recommended Practice for Software Design Descriptions

Ders Amaçları: Öğrencilerin önceki derslerde öğrendikleri kavramları gerçek dünya koşullarında sistem geliştirme ve yönetimi deneyimi yoluyla bütünleştirmelerini sağlamak.

Hafta Konular
I. Analiz
1 Analiz yöntem ve araçları
2 YGS standardı
3 YGS üzerinden geçilmesi
4 YGS resmi gözden geçirme
II. Proje Yönetimi
5 Proje yönetimi yöntem, araç ve standard
6 PYP üzerinden geçilmesi
7 PYP resmi gözden geçirme
III. Tasarım
8 Tasarım yöntem ve araçları
9 YTD standardı
10 YTD üzerinden geçilmesi
11 YTD resmi gözden geçirme
IV. Uygulama ve Test
12 Uygulama ve test yöntem ve araçları
13 Uygulama ve test üzerinden geçilmesi
14 Proje Sunumları

Notlandırma:

Final Sınavı                        %40

Dönem Projesi                  %50

Ödevler + katılım            %10

Ders Öğrenme Çıktıları
CO1: Öğrenciler yazılım gerçek bir projede gereksinim tanımlama, proje yönetimi, tasarım, uygulama ve test yapabilirler

CO2: Öğrenciler öğrendikleri veri bilimi ve yazılım mühendisliği bilgilerini sistem geliştirmek için kullanabilirler.

CO3: Öğrenciler veri bilimi ve yazılım mühendisliği sistemi geliştirme projelerindeki paydaşlarla iletişim kurup koordinasyon sağlayabilirler.

CO4: Öğrenciler takım çalışmalarının dokümantasyon ve sunumlarını yapabilirler.

Program Öğrenme Çıktılarının Katkısı:

PO1 PO2 PO3 PO4 PO5 PO6 PO7
CO1 x x x x
CO2 x x
CO3 x
CO4 x x

Dersin Gerekçesi:
Bu ders, Yazılım Mühendisliği ve Veri Bilimi Yüksek Lisans Programı’nın temel derslerinden biridir. Gerçek dünya deneyimi ve standartların kullanımı, yazılım sistemleri geliştirme projelerinin genel başarısı için kritik öneme sahiptir. Bu ders, yazılım mühendisliği ve veri bilimi projelerinde ekip çalışması, kalite ve yönetim bakış açısıyla kapsamlı bir deneyim sunar ve yenilikçi sistemler geliştirmek için gerekli becerileri kazandırır. Programdaki diğer tüm dersleri bütünleştiren bir ders niteliğindedir.

Diğer derslerle örtüşen veya tamamlayıcı konular:
SEDS 501 Veri Bilimine Giriş, SEDS 502 Modern Veritabanı Yönetim Sistemleri, SEDS 503 Yazılım Yönetimi, SEDS 504 Yazılım İnşası dersleri, bu derste başarılı olmak için gerekli altyapıyı sağlar. SEDS 502 ve SEDS 504 dersleri ön koşul dersleridir; SEDS 503 ve SEDS 501 ise önerilen derslerdir.

SEDS 512 Yazılım Mimarileri

Bu ders yazılım mimarileri için gerekli temel bilgileri kapsar. Yazılım Mimarisi Kavramları, Mimari Gereksinim Analizi, Yazılım Mimarisi Tasarım Teknikleri, Bileşen-temelli Mimari Tasarım, Mimari Şablonları, Mimari Değerlendirme Kriterleri, Yazılım Ürün Hatları Mühendisliği, Alan Mühendisliği ve Uygulama Mühendisliği, Yazılım Mimarisi Kodlama.

Hafta Konu
1 Yazılım Mimarisine Giriş
2 Mimari Gereksinim Analizi
3 Yazılım Mimari Tasarım ve Modelleme
4 Mimari Tasarım Yöntemleri Sınıflaması
5 Bileşen-temelli Mimari Tasarım
6 Mimari Görünümleri I
7 Mimari Görünümleri II
8 Mimari Şablonları I
9 Mimari Şablonları II
10 Mimari Değerlendirme Kriterleri
11 Yazılım Ürün Hatları Mühendisliği
12 Alan Mühendisliği ve Uygulama Mühendisliği
13 Yazılım Mimarisi Kodlama
14 Proje Sunumları ve Tartışma
SEDS 513 İnsan Bilgisayar Etkileşiminin Prensipleri

Bu ders gelecek nesil kullanıcı ara yüzleri ve bunların altında yatan yaklaşımlar üzerine genel bir bakış sunmaktadır. Konular temel olarak, insan bilgisayar etkileşimi kavramlarını ve tarihini, giriş aygıtları ve etkileşim tekniklerini, bilişim uygulamalarını, kullanıcı ara yüzü tasarlama örneklemlerini, 3B ara yüzleri, uyarlanabilir ara yüzleri, kullanıcı modellemesini, konuşma tanıma ile konuşmalı ara yüzleri, giyilebilir bilgisayarları, çok kipli ara yüzleri ve algısal arayüzleri içermektedir.

Hafta Konu
1 İnsan bilgisayar etkileşimine giriş
2 Sağlarlık, kullanılırlık, kullanılırlık prensipleri
3 İnsan bilgi işleme kısıtları, insan idrakı ve algısal limitleri
4 İnsan bilgisayar etkileşiminin bilgisayar ayağı
5 Kullanıcı ara yüzü tasarımı örneklemleri, kullanıcı arayüzü tasarımı kuralları
6 Etkileşimli tasarım süreci, tasarım dilleri
7 Kullanıcı modelleme ve kullanıcı profili, uyarlanabilir ara yüzler
8 Ara sınav
9 Kullanılırlık ölçümü, kestirimci ve yorumlayıcı değerlendirme
10 3B kullanıcı ara yüzleri, arttırılmış gerçeklik
11 Konuşma tanıma ve konuşmalı ara yüzler
12 Çok kipli arayüzler, algısal arayüzler
13 Ulaşılabilir bilişim
14 Proje sunumları
SEDS 514 Yazılım Testi

Bu derste yazılım testi ve yazılım kalitesi ilişkisi test teknikleri odağında incelenecektir. Ders konuları modül ve birim testleri, entegrasyon, kabul ve diğer test metotlarını kapsamaktadır. Test planlarının hazırlanması, gereksinim tabanlı test veya testlerin gereksinimlere bağlanması konularının yanısıra, testing matematik temelleri, formel yöntemler ve yazılım sınama konuları da ders kapsamında incelenecektir.

Hafta Konu
1 Yazılım doğrulama ve onaylamaya giriş
2 Yazılım test etmeye genel bakış ve sınıflamalar
3-4 Fonksiyonel (kara kutu) test etme
5-6 Yapısal (beyaz kutu) test etme
7 Mutasyon test etme
8 Model-tabanlı test etme
9 Entegrasyon test etme
10 Regresyon test etme
11 Test durumu oluşturmaya genel bakış
12 Test süreçlerine genel bakış
13 Test etme araçları ve test otomasyonu
14 Yazılım güvenilirlik modelleme
SEDS 515 Yazılım Yönetimi

Bu ders yazılım yönetiminin ileri düzeyde iki boyutuna yoğunlaşmaktadır: kurumsal değişim ve yazılım ölçümü. Temel konular yazılım süreç iyileştirme çerçeveleri, çevik değişim modelleri, süreç modelleme notasyonları ve yazılım projelerinde ölçüm ve tahminleme modellerinden oluşmaktadır. Öğrenciler hem modelleme ve kurumsal değerlendirme projesi gerçekleştirmekte ve hem de yazılım ölçümü ve tahminleme ile ilgili deneyim kazanmaktadırlar.

Hafta Konu
1 Kalite İyileştirme Kavramları
2 Kalite Kontrol, Kalite Güvence, Kalite Yönetimi
3 Kalite Yönetimi ve Değer
4 Yazılım Altkültürleri
5 Olgunluk Modelleri
6 Çevik Olgunluk Modelleri
7 Örüntülerin Değişimi
8 Süreç Modelleme Notasyonları
9 Süreç Modelleme
10 Ölçüm Teorisi
11 Kalite Ölçümü
12 Yazılım Büyüklük Ölçümü ve Tahminleme
13 Kurumsal Değişim Engelleri
14 Öğrenen Organizasyonlar, Bilgi Tabanlı Organizasyonlar
SEDS 517 Bilgi Güvenliği

Güvenli bilgi sistemlerinin tasarlanması, gerçeklenmesi ve yürütülmesi ile ilgili güvenlik riskleri, bunların karşısında alınabilecek önlem ve yöntemlerin değerlendirilmesi, bir bilgi sisteminin oluşumundaki süreçler ve katmanlar için değerlendirilecektir. Konu alana ait standartların da değerlendirilmesi hedeflenmektedir. Bir bilgi sistemi için, gereksinim duyulan güvenlik fonksiyonları ve bunları sağlayan kriptografik güvenlik araçları, ağ güvenliği araçları ve yöntemleri tanımlanacaktır. Güncel güvenlik problemlerinin incelendiği, bulut bilişim, web uygulama ve servisleri, kablosuz ağlar gibi pek çok uygulama alanını içine alan çözülmemiş problemler ve yapılan çalışmalar değerlendirilecektir. Öğrenciler ilgi duydukları güncel problemlerden birisini analiz ederek, sorunu, çözüm yöntemlerini veya yapılan araştırma çalışmalarını dönem projesi olarak yazılı raporlar ve sunum yapar.

Hafta Konu
1 Bilgi ve İletişim güvenliğine giriş
2,3,4 Temel Güvenlik Fonksiyonları ve Kriptografik Araçlar
5,6,7 Ağ Güvenliği; Temel Güvenlik Problemleri-Tespiti, Önlenmesi ve korunması
8 Bulut Bilişim Güvenliği
9 Yazılım Geliştirme Güvenliği
10 İşletim Sistemleri Güvenliği
11 Internet Güvenliği
12,13 Kablosuz Ağların Güvenliği
14 Bilgi Güvenliği Yönetimi

Ders Öğrenme Çıktıları

CO1     Bilgi ve iletişim teknolojileriyle ilgili güvenlik risklerinin analiz edilebilmesi yetkinliğine sahip olma.

CO2     Güvenlik problemlerinin çözümünde doğru araçları seçme ve test edebilme.

CO3     Bilgi sistemlerinin güvenlik tasarımı ve yönetimini yürütecek temel bilgi ve metodolojiye sahip olma.

SEDS 518 Gerçek Zamanlı Yazılım Geliştirme

Gerçek-Zamanlı yazılım tasarımı konuları, gerçek-zamanlı işletim sistemleri, gerçek-zamanlı görev planlama algoritmaları, yazılım spesifikasyonlarında kullanılan formal metotlar, zaman otomatlarını kullanarak modelleme ve doğrulama, yazılım tasarımı, programlama dilleri, test, performans çözümlemesi ve eniyilemesi, belgeleme, yazılımın yeniden kullanımı, hataya dayanıklılık.

Referans Kitap(lar):

  • Real-Time Systems Design and Analysis – Phillip A. Laplante, John Wiley & Sons
  • Software Engineering for Real-Time Systems – J.E. Cooling, Addison Wesley

Dersin Amaçları:

Öğrencilere gerçek zamanlı sistemler için yazılım geliştirme, programlama, tasarım, test ve dokümantasyon konularında güncel araştırma problemleri hakkında bilgi vermek.

Hafta Konu
1 Gerçek Zamanlı Sistemlere Giriş
2 Gerçek Zamanlı Sistemler için Yazılım Geliştirmenin Temelleri
3-4 Gerçek Zamanlı İşletim Sistemleri
5 Yazılım Gereksinimleri
6-7 Model Denetimi
8-9 Yazılım Tasarımı
10 Programlama Dilleri
11 Test
12 Performans Analizi ve Optimizasyon
13 Güvenlik-Kritik Sistemler ve Hata Toleransı
14 Dokümantasyon, Yazılım Yeniden Kullanımı ve Sürekli İyileştirme

Notlandırma

Final %40

Ödevler %30

Okuma Ödevleri + Katılım %10

Ders Öğrenme Çıktıları

CO1 Gerçek zamanlı sistemlerin temellerine dair bilgi sahibi olmak

CO2 Güvenlik-kritik ve hata toleranslı sistemlerin güncel durumunu anlamak

CO3 Gerçek zamanlı yazılım tasarlama yetkinliği kazanmak

Program Öğrenme Çıktılarının Katkısı:

Contribution of Program Learning Outcomes:

                 P01      P02       P03       P04      P05       P06       P07

C01            x                                       x

C02                        x                          x

C03                                                                   x

Dersin Gerekçesi:

Bu ders, Yazılım Mühendisliği ve Veri Bilimi Yüksek Lisans Programı için seçmeli bir derstir. Ders, güvenlik-kritik sistemler için gerçek zamanlı yazılım geliştirme temellerini tanıtır.

SEDS 519 Yazılım Tasarım Örüntüleri

Bu ders ileri yazılım tasarım şablonları üzerine odaklanmıştır. Dersin ana konularını; ileri nesneye dayalı programlama prensipleri, nesneye dayalı tasarım şablonları, kurumsal uygulama mimarisi şablonları, kurumsal uygulama bütünleştirme şablonları ve alana dayalı tasarım şablonları oluşturmaktadır. Bu derste öğrenciler tasarım şablonları kullanarak modern yazılım geliştirme kavramlarını öğrenecek ve bu kavramları kullanarak orta büyüklükteki bir yazılımı takım olarak geliştirecektir.

Referans kitap(lar):

  • Design Patterns: Elements of Reusable Object-Oriented Software, Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, Addison-Wesley, 1995.
  • Patterns of Enterprise Application Architecture, Martin Fowler, Addison-Wesley, 2003.
  • Enterprise Integration Patterns, Gregor Hohpe, Bobby Wolf, Addison-Wesley, 2011.
  • Patterns, Principles, and Practices of Domain-Driven Design, Scott Millett, Nick Tune, John Wiley & Sons, 2015. 

Ders Amaçları: Öğrencilere yazılım tasarım kalıplarındaki güncel eğilimler hakkında bilgi vermek.

Hafta Konular
1 Nesneye Dayalı Analiz ve Tasarıma Giriş
2 Abstrakt Sınıflar ve Arayüzler ile Kalıtım ve Polimorfizm
3 Nesneye Dayalı Programlama Prensipleri
4 Mimari Tasarım Şablonu – Model Görünüm Yönetici
5 Gözlemci Tasarım Şablonu
6 Üretim Tasarım Şablonları
7 Yapısal Tasarım Şablonları
8 Davranışsal Tasarım Şablonları
9 Kurumsal Uygulama Mimarisi Şablonlarına Giriş
10 Nesne-İlişki Tasarım Şablonları
11 Kurumsal Uygulama Bütünleştirme Şablonlarına Giriş
12 Mesajlaşma Tasarım Şablonları
13 Alana Dayalı Tasarıma Giriş
14 Mikroservis Tasarım Şablonları

Notlandırma:

Final Sınavı                                                    %40

Ara Sınav                                                        %30

Proje                                                                %30

Ders Öğrenme Çıktıları
ÖÇ1 – Yazılım tasarım prensiplerini ve şablonlarını belirleyebilme ve açıklayabilme
ÖÇ2 – Tasarım prensiplerini ve şablonlarını takım olarak yazılım geliştirmede uygulayabilme
ÖÇ3 – Tasarım şablonlarının talep edilen yazılım özellikleri ile ilgisini detaylı bir şekilde değerlendirebilme ve raporlayabilme
ÖÇ4 – Tasarım prensipleri ve tasarım şablonlarının; programlama dili tasarımı, uygulama çerçeveleri veya uygulama alanları ile ilişkisini analiz edebilme ve raporlayabilme

Program Öğrenme Çıktılarının Katkısı:

PO1 PO2 PO3 PO4 PO5 PO6 PO7
CO1 1
CO2 1 1 1 1
CO3 1 1 1 1 1
CO4 1 1 1 1

Dersin Gerekçesi:
Bu ders, Yazılım Mühendisliği ve Veri Bilimi Yüksek Lisans Programı’nın seçmeli derslerinden biridir ve önemli Yazılım Mühendisliği seçmeli derslerinden biridir. Yazılım mühendisliğinde kullanılacak en güncel yazılım geliştirme yaklaşımları için gerekli altyapıyı sağlar.

Diğer derslerle örtüşen veya tamamlayıcı konular:
Bu ders, Yazılım İnşası (Software Construction) dersinin devamı niteliğindedir.

SEDS 520 Mikroservis Tabanlı Sistemlerin Analiz ve Tasarımı

Bu ders öğrencilere servis tasarımı ve mühendisliği konusunda bilgi ve uzmanlık kazandırmaktadır. Öğrenciler servis odaklı mimariler ile tasarımı çeviklik, uyumluluk ve maliyet-etkinlik olarak gerçekleştirmeyi öğrenecektir. Özellikle mikroservis tabanlı mimariler ve reaktif sitemler olay odaklı modelleme vurgulanacaktır. Öğrenciler bu bilgileri uygulayacakları bir proje gerçekleştireceklerdir.

Hafta Konu
1 Servis Odaklılık
2 Servis Odaklı Mimari
3 Servis Tasarım Prensipleri, SOM Faydaları
4 Web servislerinin evrimi
5 Programlanabilir Web
6 Kaynak Odaklı Mimari
7 Servislerin Evrimi ve Mikroservisler
8-9 Alan Odaklı Tasarım
10 Olay Odaklı Modelleme
11 Olay Odaklı Analiz Yöntemi
12-13 Reactive Systems
14 Mikroservis Tasarım Örüntüleri
SEDS 531 İstatistiksel Veri İşlemeye Giriş

Araştırmaların sonunda elde edilen verileri tanımak ve özetlemek, araştırma sonucu elde edilen verilerin yorumlamasını yapabilmek, bilimsel hipotezlerin kurulup, bazı basit testlerin yapılabilmesi, bilimsel deneme felsefesi ve deney tasarım ve analizlerinde dikkat edilecek konuların kısaca açıklanması.

Dersin Amacı:

Bu ders öğrencilere gerçek hayatta karşılaşılan ve farklı veri tiplerine uygulanan karmaşık istatistik analizlerini öğrenme ve anlama yeteneği kazandıracaktır.

Kaynakça:

Steel, R.G.D. and Torrie, J.H. (1960) Principles and Procedures of Statistics. Mc. Graw Hill ,Milton, J.S. and Arnold, J. C. (2003). Introduction to Probability and Statistics. 4th Ed. New York: McGraw-Hill. ,Allen B. Downey, Think Stats: Probability and Statistics for Programmers. 2e

Öğrenim Çıktıları:

1. Deneysel verilerin özetleyebilme

2. Olasılık, şans değişkenleri ve olasılık dağılışlarını anlayabilme

3. Parametre kestirimi uygulayabilme ve bilimsel hipotez kontrolleri kavramlarını ve felsefesini anlayabilme

4. Bilimsel deneme kavramını anlayabilme, deney tasarlayabilme ve analiz edebilme

Hafta Konu
1 Temel tanımlamalar, değişkenler, frekans tabloları, yer ve dağılış istatistikleri.
2 Olasılığa giriş.
3 Bağımsızlık, şans değişkenleri ve olasılık dağılışları. Beklenen değer.
4 Kesikli uniform, binom, geometrik, n.binom, poisson dağılışları.
5 Sürekli Uniform, normal, gamma, üssel ve weibull dağılışları.
6 Ara sınav
7 İstatistiksel yorumlamaya giriş. Nokta ve aralık tahminleri. 
8 Hipotez kontrolları: Temel kavramlar, hipotez kontrollarının felsefesi, büyük örnek testleri (z)
9 Hipotez kontrolları: Bir ve iki örnek testler.
10 Hipotez kontrolları: Küçük örnek testleri
11 Sayımla elde edilen verilerin analizi. Chi kare testleri.
12 Basit doğrusal regresyon. Korelasyon.
13 Çoklu regresyona giriş.
14 Deneme planlamaya ve desenlerine giriş. Varyans analizi.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Notlandırma:

Vize: %30

Ödev: %10

Araştırma Sunumu: %30

Final: %30

SEDS 533 Olasılıksal Çıkarsama

Çizgesel Olasılık Modelleri. Bayes Çıkarsaması. Bayes Ağları. Bayes Ağlarında Öğrenme. Bilgi Mühendisliği. Zamansal Modeller. Dinamik Bayes Ağlarında Çıkarsama. Markov Karar Verme Süreçleri.

Dersin Amacı

Bu ders kapsamında belirsizliğin modellenmesi ve belirsizlik altında karar verme sürecinde karşılaşılan sorunlarda kullanılabilecek olasılıksal çıkarsamaya dayalı çözüm yaklaşımları tartışılmaktadır.

Kaynakça

Learning Bayesian Networks; Richard E. Neapolitan, Prentice Hall, 2003. ,Bayesian Artificial Intelligence; Kevin B. Korb, Ann E. Nicholson; Chapman & Hall/CRC, 2004. ,Probabilistic Reasoning in Intelligent Systems (2nd Edition); Judea Pearl; Morgan Kaufmann Publishers Inc., 1988.

Öğrenim Çıktıları

1. Belirsizlik kavramı öğretmek

2. Çizgesel olasılıksal modelleri öğretmek

3. Bayes ağlarında çıkarsama ve öğrenmenin kavratılması

4. Bayes ağları temelli uygulama geliştirmek

Hafta Konu
1 Giriş
2 Olasılıkta çizgesel modeller
3 Belirsizliklerin olduğu bir ortamda bilginin temsil edilmesi
4 Bayes çıkarsaması
5 Bayes ağlarında çıkarsama
6 Vize
7 Bayes ağlarında öğrenme
8 Bilgi Mühendisliği
9 Bayes ağlarında çeşitli uygulamalar
10 Zaman bazlı modeller
11 Dinamik Bayes Ağlarında Çıkarsama
12 Markov Karar Verme Süreçleri
13 Kısmen gözlemlenebilen Markov karar verme süreçleri
14 Proje Sunumları

 

Notlandırma

Vize: %40

Ödev: %10

Final: %50

SEDS 534 Eniyileme Yöntemleri

Vektörler ve matrisler, temel calculus, Kısıtsız optimizasyon, tek boyutlu arama metotları, “golden section”, “Fibonacci”, “Newton s method”, gradient arama metotları, “Steepest-descent”, “Newton s method”, “conjugate-gradient”, En küçük kareler analizi, lineer programlama, sezgisel optimizasyon metotları, benzetimli tavlama yöntemi.

Dersin Amacı

Çeşitli optimizasyon yöntemlerinin temel kavramlarını ve güncel araştırmaları tanıtmak.

Kaynakça

E. K. P. Chong and S. H. Zak, An Introduction to Optimization, Third Edition, New York, NY: John Wiley & Sons, Inc. (Wiley-Interscience Series), 2008

Öğrenim Çıktıları

1. Mühendislik problemlerini çözmek ve formule etmek için sahip olunan bilgiyi kullanma becerisini göstermek
2. Farklı optimizasyon metotlarını sınıflayabilmek
3. Spesifik bir problem için bir optimizasyon tekniği önerebilme
4. Optimizasyon araçlarını kullanabilmek

Hafta Konu
1 Optimizasyona Giriş
2 Matematiksel Gözden Geçirme I: Vektörler ve Matrisler
3 Matematiksel Gözden Geçirme II: Kalkülüs
4 Kısıtsız Optimizasyon
5 Golden Section, Fibonacci, Newton Metotları
6 Gradyan Arama Yöntemleri ve En Küçük Kareler
7 Kısıtlı Optimizasyon
8 Doğrusal Programlama
9 Değerlendirme ve Gözden Geçirme
10 Sezgisel (Heuristik) Optimizasyon Yöntemleri
11 Yapay Sinir Ağları, Benzetilmiş Tavlama (Simulated Annealing)
12-14 Dönem Projesi Sunumları ve Tartışmaları

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Notlandırma

Vize 30%

Araştırma Sunumu 30%

Final 40%

SEDS 535 Bilgi Çıkarımı

Tıp ve biyoloji alanında bilgisayar uygulamaları, tıbbi görüntüleme teknikleri, görüntü işleme ile hastalık tanılama, hastane bilgi sistemleri, hasta takip sistemleri, tıbbi bilginin matematiksel modellemesi, tıbbi bilişim sistemlerinde ağlar.

Dersin Amacı

1. Tıbbi bilişim sistemlerinde bilgisayar ağlarının kullanımını anlatmak,

2. Tıbbi bilgilerin matematiksel modellemelerini anlatmak,

3. Tıbbi bilişim sistemlerini tanıtmak,

4. Süreçler ve diferansiyel denklemlerin tıbbi bilişimde uygulama alanlarını anlatmak,

5. Hastane bilgi sistemlerinin temellerini öğretmek.

Kaynakça

Introduction to medical informatics, Lecture notes, N. Baykal, E. Musluoğlu, Sas Bilişim, 2000.

Öğrenim Çıktıları

1. Tıpta ve biyolojide bilgisayar uygulamaları ile ilgili genel bilgi edinme

2. Bilgisayar ağlarının tıpta ve biyolojide kullanım alanlarını anlama

3 Tıp ve biyolojide matematiksel modellemenin kullanılmasını anlama

4. Tıbbi görüntüleme tekniklerini öğrenme

5. Tıbbi görüntüleme teknikleri sonucunda elde edilen verinin matematiksel modellenmesini öğrenme

6. Görüntü işleme tekniklerinin tıp ve biyolojide kullanım alanlarını anlama

7. Süreçlerin ve diferansiyel denklemlerin tıp ve biyolojide kullanımını anlama

8. Hastane bilgi sistemlerini anlama

Hafta Konu
1 Giriş
2 Ölçüm ve Veri, Verinin Görselleştirilmesi ve Keşfedilmesi
3 Veri Madenciliği Algoritmalarına Sistematik Bir Bakış
4 Modeller ve Örüntüler
5 Veri Madenciliği Algoritmaları için Skor Fonksiyonları
6 Boyut İndirgeme
7 Tanımlayıcı Modelleleme I
8 Arama ve Optimizasyon Yöntemleri
9 Tanımlayıcı Modelleme II
10 Sınıflandırma için Öngörücü Modelleleme I
11 Sınıflandırma için Öngörücü Modelleme II
12 İlişkilendirme Analizi I
13 İlişkilendirme Analizi II
14 Bağlantı Analizi

Notlandırma

Vize 25%

Ödev 25%

Araştırma Sunumu 20%

Final 30%

SEDS 536 İmge Anlama

Bu ders temel imge işleme tekniklerini ve imge içeriğinin analiz yöntemlerini konu alır. Ders içeriğinde imgelerin hafızada temsili, basit imge işleme teknikleri, anahtar nokta çıkarım ve betimlemesi, imge eşleme ile temel kamera geometrisi yer almaktadır.

Dersin Amacı

Dersin temel amacı öğrencilerin imge işleme ve imge içerik analizi hakkında bilgi sahibi olmalarıdır. Dersin hedef kitlesi başlangıç aşamasındaki lisansüstü öğrencilerdir. Dersin lisansüstü derin öğrenme ve yapay zeka konulu derslere hazırlık teşkil etmesi amaçlanmaktadır.

Kaynakça

Computer Vision: Algorithms and Applications, R. Szeliski, 2010 ,Multiple View Geometry in Computer VIsion, R. Hartley and A. Zisserman, 2nd Ed., 2004

Öğrenim Çıktıları

1. İmge analiz yöntemlerini endüstriyel problemlere uygulayabilme

2. Verilen bir problem için farklı imge içerik analizi yöntemlerini karşılaştırabilme

3. Temel imge işleme yöntemlerini problem çözümlerinde kullanabilme

4. Temel imge işleme yöntemlerini ve özelliklerini listeleyebilme

Hafta Konu
1 Giriş
2 Görüntü Temsili
3 Temel Görüntü İşleme
4 İleri Görüntü İşleme
5 Anahtar Nokta Tespiti ve Eşleştirme
6 Düzlemsel Projeksiyon Geometrisi
7 3D Projeksiyon Geometrisi
8 Temel Kamera Geometrisi
9 Epipolar Geometri
10 Optimizasyon Teknikleri
11 Çoklu Görünüm Geometrisi
12 Yoğun Görüntü Özellikleri
13 Nesne Kategorisi Tespiti
14 Nesne Kategorisi Tespiti

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Notlandırma

Vize %30

Ödev %30

Final %40

SEDS 537 Makine Öğrenmesi

Bu ders öğrencilere yapay öğrenme konusunun temellerini öğretmeyi ve karşılaşılan makine öğrenmesi problemlerini çözebilmek için doğru yöntemleri kullanmayı öğretecek şekilde Pratik tecrübe kazadırmayı amaçlar. İşlenecek başlıca konular: Bayesçi karar kuramı. Gözetimli öğrenme teknikleri. Model seçimi. Boyut Azaltma. Öbekleme. Destek yöney makinaları. Çizgesel modeller. Sinir ağlarına giriş. Pekiştirmeli öğrenme.

Kaynakça

• Ethem Alpaydın, Introduction to Machine Learning (2nd Edition). MIT Press, 2010.
• Christopher Bishop, Pattern Recognition and Machine Learning. Springer, 2006.
• Richard Duda, Peter Hart, David Stork, Pattern Classification, 2nd Ed. John Wiley & Sons, 2001.

Dersin Amacı: Makine öğrenmesindeki güncel eğilimler konusunda öğrencileri ileri düzeye taşımak.

Hafta Konular
1 Yapay Öğrenmede Kavramlar
2 Bayesçi Karar Teoremi
3 Gözetimli Öğrenmenin Temelleri
4 Model Seçme Prosedürleri
5 Çok Değişkenli Sınıflandırma, Çok Değişkenli Bağlanım
6 Boyut Azaltma ve Temel Bileşen Analizi
7-8 Gözetimsiz Öğrenme
9 Doğrusal Ayrım Fonksiyonları
10 Gözetimli Öğrenme: Parametrik olmayan yaklaşımlar
11 Karar Ağaçları
12-13 Yapay Sinir Ağları
14 Pekiştirmeli Öğrenme

Notlandırma:

Final Sınavı %40

Vize Sınavı %30

Uygulama Ödevleri %30

Ders Öğrenme Çıktıları
CO1: Yapay öğrenme konusunun temel kavramlarını açıklayabilme
CO2: Yapay öğrenme ile ilgili problemleri analiz etme ve uygun çözüm yöntemlerini ayırt etme
CO3: Karşılaşılan yapay öğrenme problemlerini çözebilecek algoritmaları uygun araçları kullanarak uygulayabilme
CO4: Uygulama sırasında elde edilen çıktıları algoritma yönünden yorumlayabilme

Program Öğrenme Çıktılarına Katkısı:

PO1 PO2 PO3 PO4 PO5 PO6 PO7
CO1 1 1
CO2 1 1
CO3 1 1 1
CO4 1 1 1

Dersin Gerekçesi:

Bu ders, Yazılım Mühendisliği ve Veri Bilimi Yüksek Lisans Programı’nın seçmeli derslerinden biridir ve önemli veri bilimi seçmeli dersleri arasında yer alır. Ders, makine öğrenmesinin temel kavramlarını tanıtırken aynı zamanda karşılaşılan makine öğrenmesi problemlerini çözmek için uygun algoritma ve araçların uygulanmasına olanak tanır. Temel konular arasında denetimli ve denetimsiz öğrenme teknikleri, model seçimi, boyut indirgeme, kümeleme, sinir ağları ve pekiştirmeli öğrenme yer almaktadır. Uygulamalı alıştırmalarla birlikte öğrenciler, makine öğrenmesi problemlerini analiz edebilecek ve uygun çözüm tekniklerini belirleyebilecek yetkinliğe ulaşacaktır.

Diğer Derslerle Örtüşmesi veya Tamamlayıcılığı:

Bu ders makine öğrenmesi üzerine temel bir ders olduğundan, SEDS 538 Büyük Veri Analitiği ve SEDS 539 Derin Öğrenme gibi ileri düzey dersler için bir temel oluşturur; ancak bu derslerle önemli bir konu örtüşmesi bulunmamaktadır.

SEDS 538 Büyük Veri Analitiği

Gömülü sistemler, bilgisayar mühendisliğindeki rolü; özel ve genel amaçlı mikroişlemci tasarımı, mikrodenetleyiciler, gömülü yazılım; gerçek-zamanlı sistemler, planlama ve zamanlama problemleri; test ve performans; güvenilirlik; tasarım metodolojileri, yazılım geliştirme ortamları; süreklilik ve güncelleme problemleri;uygulamaya özel entegre devre tasarımına giriş, VHDL

Dersin Amacı

İleri Gömülü Sistem Tasarımı, Gömülü Sistemler ve tasarımı konusunda en güncel konuları ve araştırmaları yeni araştırmalara temel oluşturmak amacıyla aktarmak

Kaynakça

“Real-Time Systems Design and Analysis”. Phillip A. Laplante. A John Wiley & Sons, Inc., Publication ,“Software Engineering for Real-Time Systems”, J.E. Cooling, Addison Wesley. ,Adamski, Marian Andrzej. Design of Embedded Control Systems, Boston, MA : Springer Science+Business Media, Inc., 2005. ,Berger, Arnold. Embedded systems design:an introduction to processes tools and tecniques. San Francisco;Lawrence, Kan: CMP Books, c2002 ,“Modeling and Verification of Real-Time Systems Using Timed Automata: Theory and Practice”. Paul Pettersson. PhD. Thesis. Uppsala University.

Öğrenim Çıktıları

1. Gömülü sistemlerle ilgili temel bilgilere sahip olma

2. Gerçek-zamanlı sistem tasarımı yapabilme

3. Gömülü sistemlerle ilgili son araştırmaları takip etme

4. Hataya dayanıklı sistemler konusundaki araştırmaları takip etme

Hafta Konu
1 Büyük Veri’ye Genel Bakış
2 Güncel Hesaplama Paradigmaları ve Platformları
3 Büyük Veri Programlama Araçları (ör. Hadoop, MongoDB, Spark vb.)
4 Büyük Veri Çıkarımı ve Entegrasyonu
5 Büyük Veri Depolama Yöntemleri
6 Ölçeklenebilir Büyük Veri İndeksleme Teknikleri
7 Büyük Ölçekli Grafik (Graph) İşleme Teknikleri
8 Büyük Veri Akış (Stream) İşleme Teknikleri ve Algoritmaları
9 Büyük Veri Mahremiyeti ve Güvenliği
10 Büyük Veri Görselleştirme Teknikleri
11 Büyük Ölçekli Uzamsal-Zamansal Verilerin Gerçek Uygulamalarındaki Problemler (ör. coğrafi veritabanları)
12 Büyük Ölçekli Finansal Verilerin Gerçek Uygulamalarındaki Problemler (ör. zaman serisi verileri)
13 Büyük Ölçekli Multimedya Verilerinin Gerçek Uygulamalarındaki Problemler (ör. ses/görüntü verileri)
14 Büyük Ölçekli Tıbbi/Sağlık Verilerinin Gerçek Uygulamalarındaki Problemler

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Notlandırma

Vize %30

Araştırma Sunumu %30

Final %40

SEDS 539 Derin Öğrenme

Bu ders öğrencilere yazılım mühendisliği tekniklerini ve yaklaşımlarını tanıtmayı, değerlendirme yeteneği kazandırmayı, yazılım mühendisliği uygulamalarının vardığı son durumu ortaya koymayı ve tarihsel süreçte yaşananları aktararak, belli bir proje için doğru yaklaşımların seçiminde profesyonel karar alma becerisini kazandırmayı hedeflemektedir.

Bu ders yazılım mühendisliği kavramını ortaya koyarak başlayacaktır. Ardından yazılım geliştirme paradigma, yöntem ve anahtar modelleme notasyonları tartışılacaktır. Yazılım gereksinimleri, yazılım tasarımı, proje yönetimi, ölçüm ve kişisel iletişim, gelişim teknikler kapsanacaktır.

Dersin temel amacı öğrencilerin derin yapay sinir ağları ve derin öğrenme hakkında temel bilgi sahibi olmalarıdır. Evrişimsel sinir ağları özelinde görüntü sınıflandırma ile ilgili temel noktalar anlatılarak ve projelendirilerek verilen teorik bilginin uygulamaya da dökülmesi hedeflenmektedir. Dersin hedef kitlesi yapay öğrenme ile ilgili alt yapıya sahip lisansüstü öğrencilerdir.

Bu ders derin yapay sinir ağları oluşturma ve eğitme yöntemlerini ele almaktadır. Ders içeriğinde derin yapay sinir ağlarının geçmişten günümüze gelişimi, temel çalışma prensipleri, evrişimsel sinir ağları ile görüntü sınıflandırma ve imgede nesne tespit ve tanıma konuları yer almaktadır.

Referans kitap(lar):
• Michael A. Nielsen, “Neural Networks and Deep Learning”, Determination Press, 2015
• Ian Goodfellow, Yoshua Bengio and Aaron Courville, “Deep Learning”, MIT Press, 2016

Dersin Amacı:

Dersin Amacı: Öğrencilere derin sinir ağlarının temellerini öğretmek ve derin öğrenme çözümlerini gerçek problemlere uygulayabilmelerini sağlamak.

Hafta Konular
1 Yapay sinir ağları tarihçesi ve giriş
2-3 Doğrusal yöntemler ile görüntü sınıflandırma
4 Geri yayılım
5 Yapay sinir ağlarını eğitme I: veri önişleme, ağırlık ilklendirme ve düzenlileştirme, yığın düzgeleme ve yitim fonksiyonları
6 Yapay sinir ağlarını eğitme II: gradyan doğrulama, eğitim verileri yorum ve takibi, ağırlık güncelleme yöntemleri, hiper-parametre eniyileme
7-8 Evrişimsel sinir ağları
9 Evrişimsel sinir ağları ile mekansal yerseme ve nesne tespiti
10 Evrişimsel sinir ağlarını görselleştirme ve anlama
11 Yinelgeli sinir ağları
12 Pratikte evrişimsel yapay sinir ağları eğitme: veri artımı, aktarım öğrenme
13 Derin yapay sinir ağları kodlama çerçeveleri

Notlandırma:

Final Sınavı %40
Vize Sınavı %30
Uygulama Ödevleri %30

Ders Öğrenme Çıktıları
CO1 Yapay sinir ağlarının geçmişten günümüze gelişimini yorumlayabilme
CO2 Yapay sinir ağlarının ana çalışma prensiplerini listeleyebilme
CO3 Öğrenilen temel prensipleri derin yapay sinir ağları eğitmede uygulayabilme
CO4 Evrişimsel yapay sinir ağları ile görüntü sınıflandırabilme
CO5 Öğrenilen yöntemleri torch, TensorFlow gibi yapay sinir ağları kodlama çerçeveleri ile pratikte uygulayabilme

Program Öğrenme Çıktılarının Katkısı:

PO1 PO2 PO3 PO4 PO5 PO6 PO7
CO1 1
CO2 1
CO3 1 1 1
CO4 1 1 1
CO5 1 1 1 1

Dersin gerekçesi:
Bu ders, Yazılım Mühendisliği ve Veri Bilimi Yüksek Lisans Programı’nın seçmeli derslerinden biridir ve önemli veri bilimi seçmeli derslerinden biridir. Derste, derin sinir ağlarının nasıl eğitildiğine dair içgörü kazandırılarak derin öğrenmenin temelleri tanıtılmaktadır. Görüntü sınıflandırma üzerine yapılan bir vaka çalışması, eğitim algoritmalarının mekanizmalarını ve öğrenme parametrelerinin sınıflandırma doğrulukları üzerindeki etkisini anlamaya olanak tanımaktadır. Uygulamalı alıştırmalarla öğrenciler, en popüler derin öğrenme kütüphaneleriyle pratik deneyim kazanırlar.

Derslerle Çakışma veya Tamamlama Durumu:
Bu ders, makine öğrenmesi alanında ön bilgi gerektirir. Bu nedenle, konuları SEDS 537 Makine Öğrenimi ile örtüşmez, ancak onun üzerine inşa edilir.

SEDS 540 Dağıtık Bilgi Yönetimi

Dağıtık Veritabanı Yönetimine Giriş, İlişkisel Veritabanı Yönetim Sistemlerini Gözden Geçirme, Dağıtık Veritabanı Mimarileri, Dağıtılmış Veritabanı Tasarımı – Yatay Bölümleme, Dağıtık Veritabanı Tasarımı – Dikey Bölümleme, Dağıtık Sorgu İşleme, Dağıtık Sorgu Optimizasyonu, Dağıtık Eşzamanlılık Kontrolü, Veri Çoğaltma, Dağıtık Nesne Veritabanı Yönetimi

Dersin Amacı

Dağıtık veritabanı sistemleri hakkında bilgi sağlamak.

Kaynakça

IEEE International Conference on Dependable Systems and Networks (DSN), IEEE Trans. Dependable and Secure Computing, IEEE Trans. Reliability bildiri ve makaleleri ,Israel Koren, C. Mani Krishna, Fault-Tolerant Systems, Morgan Kaufmann, 2007.

Öğrenim Çıktıları

1. Hataları ve sınama kavramını anlayabilme

2. Donanımsal ve yazılımsal hata toleransı tekniklerini tasarlayabilme ve değerlendirebilme

3. Güvenlik açısından kritik sistemlerde güvenilirlik tekniklerinin uygulanması konusunda tecrübe gösterebilme

Hafta Konu
1 Dağıtık Veritabanı Yönetimine Giriş
2 İlişkisel Veritabanı Yönetim Sistemlerini Gözden Geçirme
3 Dağıtık Veritabanı Mimarileri
4 Dağıtılmış Veritabanı Tasarımı – Yatay Bölümleme
5 Dağıtık Veritabanı Tasarımı – Dikey Bölümleme
6-7 Dağıtık Sorgu İşleme
8-9 Dağıtık Sorgu Optimizasyonu
10-11 Dağıtık Eşzamanlılık Kontrolü
12-13 Veri Çoğaltma
14  Dağıtık Nesne Veritabanı Yönetimi

Notlandırma

Vize 30%

Araştırma Sunumu 30%

Final 40%

SEDS 541 Veri Paylaşım ve Yönetiminde Mahremiyetin Korunması

Dersin konuları, ileri koşut zamanlılık denetim yöntemleri, ilişkisel veri tabanlarında sorgu işleme ve eniyileme stratejileri, ileri indeksleme yöntemleri, paralel ve dağıtık veritabanı sistemleri, yeni nesil veri modelleri, büyük veri tabanlarında veri madenciliği, web verisi, güvenlik ve gizliliğin sağlanmasından oluşmaktadır.

Dersin Amacı

1.Veritabanı alanından ileri konularını öğrenmek (1),

2.Araştırma yayınlarını okuyup anlama yeteneği kazanmak (2, 3, 4),

3.Alan taraması yapmak, açık problem için çözüm üretmek, bunu projelendirip sözlü ve yazılı olarak sunabilmek (4, 5).

Kaynakça

E.F. CODD. A Relational Model of Data for Large Shared Data Banks, Coomunication of the ACM, vol 15, June 1970 ,P.G. SELLINGER, M.M. ASTRAHAN, D.D. CHAMBERLIN, R.A. LORIE and T.G. PRICE, Access Path Selection in a Reletional Database System, ACM, 1979 ,S.CHAUDHURI, An Overview of Query Optimization in Relational Systems, PODS 1998 ,A. GUTTMAN. R-TREES. A Dynamic Index Structure for Spatial Searching, ACM 1984 ,J. NIEVERGELT and H. HINTERBERGER. The Grid File: An Adaptable, Symmetric Multikey File Structure, ACM 1984 ,D.J. DeWITT and J. GRAY.Parallel Database Systems: The Future of High Performance Database Processing, Communications of the ACM, Vol. 36, No. 6, June 1992 ,P.O’NEAL and D. QUASS. Improved Query Performance with Variant Indexes, ACM 1997 ,M. STONEBRAKER, P. M. AOKI, W. LITWIN, A. PFEFFER, A. SAH, J. SIDELL, C. STAELIN, A. YU. Mariposa: a wide-area distributed database system, The VLDBJournal, Springer-Verlag 1996 ,R. SNODGRASSF and I. AHN. A Taxonomy of Time in Databases, ACM, 1985 ,R. AGRAWAL and R. SRIKANT. Fast Algorithms for Mining Association Rules, Proceedings of the 20th VLDB ConferenceSantiago, Chile, 1994 ,J. GRAY, S. CHAUDHURI, A. BOSWORTH, A. LAYMAN, D. REICHART and M. VENKATRAO. Data Cube: A Relational Aggregation Operator Generalizing Group-By, Cross-Tab, and Sub-Totals, Data Mining and Knowledge Discovery 1, 29–53 (1997) ,S. BRIN and L. PAGE The Anatomy of a Large-Scale Hypertextual Web Search Engine, Proceeding of 7th International Conference on World Wide Web, 1998 ,C.J. Date, An Introduction to Database Systems, Addison-Wesley, Seventh Edition, 2010

Öğrenim Çıktıları

1.Veritabanı yönetim sisteminin tüm işlevlerinin altında yatan yaklaşım ve yöntemlerin tarihçe ve gelişim süreçlerini öğrenmek.

2.Veritabanı alanında yayınlanmış önemli yayınları okuma, özümseme ve tartışabilme yeteneği kazanmak ,

3.Veritabanı alanında üzerinde çalışılan problemlerinden birini derinlemesine araştırma yapmak ,

4.Veritabanı alanında araştırma yaptığı problem üzerine çözüm önerisi geliştirebilmek ,

5.Veritabanı alanında yaptığı araştırma konusunda geliştirdiği çözümü uygulama ve başarım değerlendirmesi ile birlikte teknik rapor olarak yazılı ve sözlü olarak sunmak

Hafta Konu
1 Gizliliği Korumaya Yönelik Veri Madenciliği ve İlişki Kuralı Gizleme’ye Giriş
2 Arka Plan Bilgisi (Terimler ve Ön Bilgiler)
3 İlişki Kuralı Gizleme Yöntemlerinin Sınıfları
4 Diğer Bilgi Gizleme Yöntemleri
5 Sezgisel (Heuristik) Yaklaşımlar
6 Sınır (Border) Tabanlı Yaklaşımlar
7 Max–Min Algoritmaları (BBA Algoritması)
8 Max–Min Algoritmaları (Diğer Yöntemler)
9 Kesin Gizleme Yöntemleri (Menon’un Algoritması)
10 Kesin Gizleme Yöntemleri (Inline Algoritması)
11 Kesin Gizleme Yöntemleri (İki Aşamalı Yinelemeli Algoritma)
12 Kesin Gizleme Yöntemleri (Hibrit Algoritma)
13 Kesin Gizleme Yöntemleri (Paralelleştirme Çerçevesi)
14 Kesin Gizleme Algoritmalarında Gizliliğin Ölçülmesi

Notlandırma

Vize %30

Araştırma Sunumu %30

Final %40

SEDS 542 Büyük Ölçekli Veri Yönetimi

Bu ders öğrencilere geniş ölçekli veri yönetimi ve büyük veri yönetiminin temel kavramları ve işlemsel yaklaşımlarını tanıtır. Bunlar veri depolama, güncelleme ve sorgulamanın yanısıra veri yoğun işlemeyi içermektedir. Ders kavram, algoritma ve zorluklara odaklanırken, dağıtık ve parallel veritabanı yönetim sistemleri, eşler arası veri yönetimi, MapReduce ve bileşenleri, Spark ve veri akışları, veri gölleri ve NoSQL veritabanları konuları kapsanacaktır.

Dersin Amacı

Bu ders öğrencilere geniş ölçekli veri yönetiminin güncel yaklaşımlarını kavram, mimari, algoritma ve sistem özelliklerini kapsayarak tanıtır.

Kaynakça

T. Öszu, P. Valduriez. Principles of Distributed Database Systems. Springer, 4th ed., 2020 ,H. Garcia-Molina, J. D. Ullman, J. Widom. Database Systems: The Complete Book. Prentice Hall, 2nd ed., 2008 ,L. Wiese. Advanced Data Management: For SQL, NoSQL, Cloud and Distributed Databases. De Gruyter, 2015

Öğrenim Çıktıları

1. Büyük ölçekli veri yönetimindeki güncel araştırma ve teknoloji akımlarını öğrenme,

2. Modern veritabanı yönetim sistemlerinin temel prensiplerini kavrama,

3. Büyük ölçekli veri yönetimi uygulamaları için darboğaz noktalarını belirleyebilme ve uygun tasarım kararları alabilme,

4. Anlamlı veri yönetimi işlemlerini için gereken açık kaynak yazılım sistemleri ve kütüphanelerini kurabilme ve kullanabilme.

Konu
Dağıtık Veritabanı Tasarımı
Dağıtık Sorgu İşleme
Dağıtık Atomik Hareket İşleme
Paralel Mimariler ve Veri Yerleşimi
Paralel Sorgu İşleme
Altyapı ve Şema Eşleştirme
Sorgulama ve Tutarlılık
Blockchain
Dağıtık Depolama Sistemleri
MapReduce ve Bileşenleri
Spark ve Veri Akışları
Anahtar-Değer Depoları, Döküman Depoları
Geniş Kolon Depoları ve Çizge Veritabanı Yönetim Sistemleri
Karma Veri Depoları ve Çoklu Veri Depoları

Notlandırma

Vize %20

Ödev %20

Katılım %20

Final %40

SEDS 561 Yazılım Mühendisliğinin Temelleri

Bu ders öğrencilere yazılım mühendisliği tekniklerini ve yaklaşımlarını tanıtmayı, değerlendirme yeteneği kazandırmayı, yazılım mühendisliği uygulamalarının vardığı son durumu ortaya koymayı ve tarihsel süreçte yaşananları aktararak, belli bir proje için doğru yaklaşımların seçiminde profesyonel karar alma becerisini kazandırmayı hedeflemektedir. Bu ders yazılım mühendisliği kavramını ortaya koyarak başlayacaktır. Ardından yazılım geliştirme paradigma, yöntem ve anahtar modelleme notasyonları tartışılacaktır. Yazılım gereksinimleri, yazılım tasarımı, proje yönetimi, ölçüm ve kişisel iletişim, gelişim teknikler kapsanacaktır.

Dersin Amacı

Bilgisayar güvenliğinin temel bileşenlerini öğretmek. Bilgisayar güvenliğinin temel bileşenlerini kullanarak, problem analiz, alternatif çözümler tanımlama, doğru çözümü belirleme ve uygulama yöntemlerinin öğretilmesi. Bilgisayar bilimlerinin, güvenlikle ilişkili konularını ve güncel araştırma problemlerini öğretmek.

Kaynakça

Aleph One – Smashing the Stack for Fun and Profit: http://www.phrack.org/issues.html?issue=49&id=14#article ,US Security Awareness (.org): http://www.ussecurityawareness.org/highres/index.html ,NSU InfoSec web site (of course): http://infosec.nova.edu/ ,Bruce Schneier – Crypto-gram Newsletter: http://www.schneier.com/crypto-gram.html ,Microsoft Security Guidance Center: http://www.microsoft.com/security/guidance/default.mspx ,B. Matt, Introduction to Computer Security ,Addison-Wesley, Pearson Education, 2005 ,SNORT.ORG: http://www.snort.org/

Öğrenim Çıktıları

1. Temel yazılım mühendisliği kavramlarına hakim

2. Sıkça rastlanan yazılım mühendisliği hatalarından ders almış

3. Yazılım mühendisliği problemlerini tartışabilir

4. Profesyonel karar alma becerisine sahip

Week Topics
1 Problem ve çözüm alanları
2 Yazılım nedir?
3 Yazılım mühendisliği paradigmaları
4 Yazılım mühendisliğinde modelleme
5 Yazılım geliştirme yöntemleri
6-7 Gereksinim mühendisliği
8-9 Yazılım mimarisi ve tasarımı
10 Yazılım testleri
11-12 Yazılım yönetimi
13 Takım organizasyonu ve insan yönetimi
14 Ampirik yazılım mühendisliği

 

Notlandırma

Vize %25

Araştırma Sunumu %40

Final %35

SEDS 562 Programlama ve Veri Yapıları

Veri, veri yapıları ve veri tiplerinin temel kavramları: dizinler, katarlar, doğrusal yapılar, sıralı arama ve sıralama teknikleri, yığınlar, kuyruklar, imleçler, bağlaçlı listeler. M-way arama teknikleri and B-tree’ler.

Dersin Amacı

Öğrencilerin veri yapıları ve algoritmalar konusundaki yetilerini arttırmak, Öğrencilerin programlama becerilerini geliştirmek.

Kaynakça

Data Structures and Abstractions with Java, F.M. Carrano and T.M. Henry, 4th ed., Pearson, 2016.
Goodrich, M. T., Tamassia, R., & Goldwasser, M. H. (2013). Data structures and algorithms in Python. John Wiley & Sons Ltd.

Öğrenim Çıktıları:

  1. Soyut veri yapılarını kullanabilme ve tasarlayabilme.
  2. Dizi ve bağlı veri yapılarını gerçekleştirebilme.
  3. Özyineli veri yapıları ve algoritmaları tasarlayıp analiz edebilme.
  4. Arama için kullanılan veri yapıları ve algoritmaları gerçekleştirebilme ve kullanabilme.
KONU
Giriş
Veri Soyutlama
Kuyruklar ve Yığınlar
Algoritma Analizi
Özyinelemeli Veri Yapıları: Bağlı Listeler ve Ağaçlar
Temel Sıralama Yöntemleri: Seçme, Yerleştirme ve Kabuk Sıralama
Birleştirerek Sıralama
Hızlı Sıralama
Öbekler (Heaps) ve Öncelikli Kuyruklar
Sembol Tabloları ve İkili Arama
İkili Arama Ağaçları
Dengeli Arama Ağaçları
Karma Tablolar
Çizge Yapıları ve Çizge Ziyaret Yöntemleri

Notlandırma:

  • Ara Sınav %25
  • Ödev %25
  • Final Sınavı  %40
  • Quiz %10

Teslimler: Proje, Rapor

SEDS 590 Lisansüstü Seminer ve Etik

Davetli konuşmacıların verdiği konferansları dinlemek, günümüz en güncel konu ve problemleri hakkında bilgi sahibi olmak ve dönemin sonunda üzerinde çalışılan bir konu hakkında seminer hazırlayıp sunmak, ilgili konularda araştırma etiği konusunun öğretilmesi.
Öğrencilerin sunum tekniklerinin geliştirilmesi. Sunum formatının ve içeriğinin nasıl olması gerektiğinin kavranması Topluluk önünde konuşma yetilerinin geliştirilmesi,Araştırmada etik konuların öğretilmesi.

Hafta Konular
1 Etik ve Araştırma Teknikleri
2 Etik ve Yayın
3-14 Seminerler ve Danışman ile Toplantı

Ders Öğrenme Çıktıları
CO1: Yayın ve araştırmada etik davranabilme
CO2: Konuşma ve yazma sırasında teknik İngilizceyi doğru kullanabilme
CO3: Dinleyiciler önünde bilgisini etkili bir şekilde ifade edebilme
CO4: Zamanı etkili bir şekilde kullanabilme