Mühendislik ve Doğa Bilimleri Fakültesi

Ders Tanımları

Ders Tanımları

 

 

 

S.N.

Bölüm

Kodu

Ders Adı TR

Ders Adı EN

K

U

L

Kredi

AKTS

Ders Açıklaması

1

Yazılım Mühendisliği (İngilizce)

SE 101

Fundamentals of Programming

Fundamentals of Programming

3

0

0

3

5

Net-Merkezli programlamaya giriş. Sayısal ve akrakter verinin gösterimi. C++ değişkenlerinin, veri tiplerinin, ifadelerinin ve atamalarının yazım biçimi ve semantiği. Aritmetik ve mantıksal operatörler. Koşullu kontrol yapıları. Diziler ve Karakter diziler. Tekrarlı Kontrol Yapıları. Fonksiyonlar. Temel Veri yapıları. Bağlantılı Listeler.

2

Yazılım Mühendisliği (İngilizce)

SE 102

Object-Oriented Paradigm

Object-Oriented Paradigm

3

2

0

4

6

C# kullanarak bilgisayar bilimine ve programlamaya giriş konularını kapsar. Nesneye yönelik tekniklere giriş bilgilerini kapsar. Sınıflar ve nesneler, kapsülleme, bilgi saklama ve benzer nesneye yönelik konular işlenir.

3

Yazılım Mühendisliği (İngilizce)

SE 103

Group Dynamics and Communication

Group Dynamics and Communication

3

0

0

3

5

İnsan iletişiminin temel kavramları: tanımlar, yeterlikler, modeller, nitelikler; kişisel farkındalık ve iletişim: benlik kavramı, öz saygı, algılama, sözlü ve sözsüz mesajlar; dinleme ve cevaplama: tanım, çeşitler, engeller, beceriler; çatışma yönetimi; grup ve ekip performansı: tanım, dinamikler, evreler; grup ve ekip performansını geliştirmek: sorun çözme, liderlik, toplantı yönetimi, sunuma giriş: sahne korkusu, konuyu seçme ve şekillendirme, sunumun organizasyonu, sunum yapmak: metotlar, görsel destek, kitlelere uyum; bilgilendirici konuşmalar: çeşitler, stratejiler, ikna edici konuşmalar: inandırma, dinleyici analizi.

4

Yazılım Mühendisliği (İngilizce)

SE 104

Engineering Sciences

Engineering Sciences

2

0

0

2

4

Bütün mühendislik alanlarıyla ilgili genel konuları içerir. Bireysel ve takım çalışmasını içeren mühendislik uygulamalarının durum çalışmaları incelenir. Danışmanlık mühendislik alanları hakkında bilgiler içerir. Diğer üniversitelere ve mühendislik firmalarına alan gezileri düzenlenir.

5

Yazılım Mühendisliği (İngilizce)

SE 105

Foundations of Software Engineering I

Foundations of Software Engineering I

2

2

0

3

4

Öğrenciler, belirtim, dokümantasyon ve testi kapsayan bir yazılım mühendisliği süreci içersinde temel programlama kavramlarını öğrenirler. Programlama kapsamı, değişkenlerin atanması ve bildirimi, standart veri tipleri, sabitler, koşullu ifadeler, döngüler, sınıf ve metotlara giriş, dosya giriş/çıkış işlemleri, diziler gibi temel programlama kavramlarını içerir. Süreç kavramı, iyi dokümantasyon uygulamaları, işlevsel gereksinimleri belirleme, analiz, hataları izleme, "kara-kutu" testi.

6

Yazılım Mühendisliği (İngilizce)

SE 106

Discrete Structures I

Discrete Structures I

3

0

0

3

5

Ayrık matematiğin temelleri. Fonksiyonlara ve algoritmalara giriş. Kümeler ve temel matematiksel tümevarım. Oransal mantık ve mantıksal cebir. Temel sayı teorisi. Sayısal mantığım temelleri.

7

Yazılım Mühendisliği (İngilizce)

SE 108

Foundations of Software Engineering II

Foundations of Software Engineering II

2

2

0

3

4

Öğrencilere ek programlama kavramları tanıtılır. Öğrenciler basit yeniden kullanılabilir bileşenleri kullanarak nesne-tabanlı yazılım uygulamalarının nasıl tasarlandığını, uygulandığını ve test edildiğini öğrenirler. Yeniden kullanılabilir bileşenleri oluşturmak için temel teknikler tanıtılır. Bir disiplin olarak yazılım mühendisliğine giriş sağlanır.

8

Yazılım Mühendisliği (İngilizce)

SE 130

Introduction to Software Engineering

Introduction to Software Engineering

3

0

0

3

6

Yazılım mühendisliğinin kapsamı, yazılım yaşam döngüsü modelleri, yazılım süreci, yazılım ekipleri,  yazılım araçları, yazılım sınama, modüller ve nesneler, yeniden kullanılabilirlik ve taşınabilirlik, planlama, maliyet ve zaman tahmini, gereksinimler, klasik analiz.

9

Yazılım Mühendisliği (İngilizce)

SE 202

Computer Architecture

Computer Architecture

3

2

0

4

5

Bu dersin amacı, öğrencinin temel bilgisayar yapısı, işlemciler, bilgisayar arithmetiği ve boruhatlı veriyolu hakkında bir birikim sahibi olmasıdır. Öğrenci, makine dili komutlarını ve ilgi kavramları, makine dili sembolik gösterimi (assembly) ve makine dili arasındaki ilişkiyi anlar. Komutların (MIPS komut kümesi mimarisi -ISA-) makine dili gösterimini öğrenir. Kayar noktalı sayılar ve kayar noktalı sayılar ile yapılan aritmetik işlemlerin icrası, veriyolu ve kontrol ünitelerinin tasarımı kavranır.

10

Yazılım Mühendisliği (İngilizce)

SE 203

Introduction to Software Engineering

Introduction to Software Engineering

3

2

0

4

6

Bu dersin amacı, yazılım mühendisliğinin prensipleri hakkında temel bilgileri vermektir. Derste, bir yazılım geliştirme projesinde yer alan aşamalar hakkında bilgiler, öğrencinin yazılım geliştirme hakkında genel bir bilgi verilir.

11

Yazılım Mühendisliği (İngilizce)

SE 204

Software Development

Software Development

2

2

0

3

6

Düşük seviyeli yazılım tasarımı için genel prensipler ve teknikler . BNF ve gramerin temel teorisi ve ayrıştırma. Ayrıştırıcı üreteç kullanımı. Temel dil ve protokol kullanımı. Formal diller. Durum-geçiş ve tablo tabanlı yazılım tasarımı. Yazılım yapımı için formal metotlar. Eşzamanlılık ve süreçler arası iletişim işleme için teknikler. Sayısal yazılım tasarımı için teknikler. Model odaklı yapım için araçlar. Middleware’e giriş. Hot-spot analiz ve perfomans ayarlama.

12

Yazılım Mühendisliği (İngilizce)

SE 205

Engineering Economics

Engineering Economics

2

0

0

2

4

Mühendislik ekonomisi kapsamı; makroekonomi, arz, talep ve üretim; maliyet – fayda analizi ve başabaş analizi; yatırım geri dönüşü, seçenek analizi; paranın zaman değeri; para yönetimi: akonomi analizi, risk muhasebesi.

13

Yazılım Mühendisliği (İngilizce)

SE 206

Human-Computer Interaction

Human-Computer Interaction

3

0

0

3

6

İnsan-bilgisayar etkileşiminde psikolojik ilkeler. Kullanıcı arayüzlerinin değerlendirilmesi. Kullanılabilirlik mühendisliği. Görev analizi. Kullanıcı merkezli tasarım ve prototipleme. Kavramsal modeller ve metaforlar. Yazılım mühendisliğinin mantıksal temelleri. Menü ve komut düğmeleri tasarımı. Ses ve doğal dil giriş/çıkışı. Tepki süresi ve geri bildirim. Renk, simge ve ses özellikleri. Küreselleşme ve yerel yapılandırma kavramları. Kullanıcı arayüz mimarileri ve uygulama programı. Proje ve senaryo değerlendirmeleri.

14

Yazılım Mühendisliği (İngilizce)

SE 207

Human-Computer Interaction

Human-Computer Interaction

2

2

0

3

5

Temel insan ve bilgisayar etkileşim kavramları, kullanıcı ara yüz prensipleri ve tasarım yöntemleri, grafik ve kullanıcı arayüzü özellikleri, ekran tasarım prensipleri, yazılı iletişim, uluslararasılaştırma ve erişebilirlik.

15

Yazılım Mühendisliği (İngilizce)

SE 210

Software Requirements Analysis

Software Requirements Analysis

3

0

0

3

4

Sistem gereksinimleri için kullanılacak ana başlıklar, teknikler ve pratik uygulamalar ile bunların gereksinim belirtiminde belgelendirilmesi, kullanıcı görüşmeleri ve prototip üretimi gibi gereksinim keşfi işlemleri, yazılım gereksinimlerinin düzenlenmesi ve açıklanması için yaklaşımların gösterilmesi, gereksinimlerin yazılım sistem tasarımına dönüştürülmesinde gereksinim çalışmalarına ilişkin önemin vurgulanması, şematik ve grafiksel yaklaşımlar, belirtim değerlendirme teknikleri, belirtim ve tasarım araçları ve sistem testleri geliştirmek için alternatif tasarım yaklaşımlarının sunulması, UML kullanarak yazılım sistemlerinin tasarlanması, modellenmesi ve dokümantasyonu.

16

Yazılım Mühendisliği (İngilizce)

SE 211

Software Design and Architecture

Software Design and Architecture

3

0

0

3

5

Tasarıma giriş, tasarım aktiviteleri ve süreç modelleri, yapısal tasarım - veri akış diyagramları, mantıksal ve fiziksel tasarım, yapısal tasarım - süreç tanımlama, veri sözlükleri ve ayrıntılı tasarım, oo tasarım - statik ve davranış modeli tasarımı, mimari tasarım, tasarım desenleri, kullanıcı arayüz katmanı tasarımı, veri erişim katmanı tasarımı, sınır sınıfları tasarımı.

17

Yazılım Mühendisliği (İngilizce)

SE 237

Object Oriented Programming

Object Oriented Programming

3

0

0

3

7

Bu derste, öğrenciler, C++ ile nesneye yönelik programlamanın temel prensiplerini öğrenecektirler.

18

Yazılım Mühendisliği (İngilizce)

SE 251

Discrete Structures II

Discrete Structures II

3

2

0

4

6

Önermeler mantığı ve küme teorisi. Matematiksel muhakeme. Fonksiyonlar ve algoritmalar. Sayılar teorisi ve diziler. İndüksiyon ve özyineleme. Ayrık olasılık. İlişkiler. Bool cebri. Graf teorisi. Ağaçlar.

19

Yazılım Mühendisliği (İngilizce)

SE 301

Operating Systems and Networking

Operating Systems and Networking

3

2

0

4

5

İşletim sistemleri ve ağlar konusuna giriş, işletim sistemleri tasarımı ve uygulaması. İşletim sistemi bileşenleri, zamanlama algoritmaları, hafıza yönetimi,  atama ve dosya sistemleri. Ağ protokolleri, yığınlar ve uygulama seviyesi protokoleri.

20

Yazılım Mühendisliği (İngilizce)

SE 302

Software Design and Architecture

Software Design and Architecture

3

0

0

3

5

Bu dersin amacı, öğrencilere etkin ve kaliteli yazılım tasarımının nasıl gerçekleştirildiğini öğretmektir. Bu ders, bir yazılım tasarım probleminin mutlak bir şekilde yalnızca bir çözümünün olmadığı, bir yazılım mühendisinin birçok alternatif arasında avantaj/dezavantaj hesabı yaptıktan sonra bir çözüm üretmek zorunda kalacağı konusunda öğrencileri duyarlı hale getirecektir. Nesneye dayalı tasarım prensiplerinin incelenmesi ve UML diyagramları dersin içerikleri arasındadır.

21

Yazılım Mühendisliği (İngilizce)

SE 303

Software Quality Assurance and Testing

Software Quality Assurance and Testing

3

0

0

3

5

Yazılım kalite ve güvencesi giriş, yazılım kalitesini belirleyen özellikler, yazılım kalite güvencenin amaçları, yazılım kalite sorunları, kalite sistemi, kalite maliyeti, en iyi uygulamalar yaklaşımı, süreç kavramı, yazılım süreci geliştirme ve iyileştirme modelleri, yazılım kalite yönetimi, yazılım kalite maliyeti, yazılım testi ve uygulaması, konfigürasyon yönetimi, agile metodolojiler.

22

Yazılım Mühendisliği (İngilizce)

SE 304

Software Requirements Analysis

Software Requirements Analysis

3

0

0

3

5

Sisteme gereksinimleri, teknikler, uygulamalar ve gereksinim belirleme dokümantasyonu için kullanılan ana konular. Prototip üretimi ve kullanıcı görüşmeleri gibi gereksinimleri ortaya çıkarma işlemleri. Yazılım gereksinimlerini açıklayan ve düzenleyen yaklaşımların gösterimi.  Gereksinimleri yazılım sistem tasarımına çevirmek için gereksinimler işinin önemini vurgulamak. Sistem testi geliştirme, şartname ve tasarım araçları, şartname değerlendirme teknikleri, şematik ve grafiksel yaklaşımlar için alternatif tasarım yaklaşımlarının gösterimi. UML kullanarak yazılım sistemlerinin tasarımı, modelleme ve dokümantasyon.

23

Yazılım Mühendisliği (İngilizce)

SE 305

Professional Software Engineering Practice

Professional Software Engineering Practice

2

2

0

3

5

Yazılım mühendisliği yaklaşımının yazılım geliştirme ile ilişkisi, büyük yazılım projesi örneklerinin yazılım mühendisliği yaklaşımı açısından incelenmesi.

24

Yazılım Mühendisliği (İngilizce)

SE 306

Software Engineering Ethics

Software Engineering Ethics

3

0

0

3

5

Mühendislik ve kurumsal sorumluluklar, kişisel haklar, bilgi uçurma, çıkar çatışması, profesyonel özerklik, risk değerlendirmesi, sürdürülebilir gelişim ile mühendislik etik kodlarının yeri ve amacı, yazılım mühendisliği ve diğer bilgi sistemlerinde etik kuralları ve ilkeleri, alanında etik çalışma ve karar verme.

25

Yazılım Mühendisliği (İngilizce)

SE 307

Database Management Systems 

Database Management Systems 

2

2

0

3

6

Dersin amacı veritabanının temel kavramlarını, varlık-ilişki modeli, ilişkisel veri modelinin esasları, ilişkisel veritabanı tasarımı, normalizasyon ve türleri, ilişkisel cebir ve temel kavramlarını öğretmektir. Bu derste öğrenciler bir veritabanının adım adım nasıl tasarlanacağını öğreneceklerdir. Öğrenciler bir veritabanı projesi gerçekleştireceklerdir.

26

Yazılım Mühendisliği (İngilizce)

SE 308

Advanced Topics in Database Systems

Advanced Topics in Database Systems

2

2

0

3

6

İleri Düzey T-SQL, Kurtarma ve Eşzamanlılık, Eksik Bilgi, Güvenlik, Optimizasyon, Dağıtık Veritabanları, Karar Destek Sistemleri, Büyük Veri ve NoSQL, Doküman Veritabanları, Graf Veritabanları.

27

Yazılım Mühendisliği (İngilizce)

SE 310

Software Architecture

Software Architecture

2

2

0

3

6

Mimari düşünme, mimari tarzlar, bağlantılar, modelleme ve simgeler, analiz teknikleri, uygulama teknikleri, mimari uygulamalar, çoklu ortam uygulamaları, fonksiyonel olmayan ihtiyaçlara göre tasarıma giriş, güvenlik, standartlar, adaptasyon, servis odaklı mimari.

28

Yazılım Mühendisliği (İngilizce)

SE 311

Software Construction

Software Construction

3

0

0

3

5

Yapılandırma kimliği aracılığıyla yönetilen yazılım ve donanım öğelerinin belirlenmesi, proje çıktılarını kontrol etmek için bir proje tabanlı konfigürasyon yönetim planı oluşturarak, yazılım geliştirme projelerinin bileşenlerinin yönetilmesi, konfigürasyon kontrol prosedürlerini belirtilerek değişim isteklerinin yönetilmesi, değişiklik talepleri için bir sürüm planlamasının yapılması.

29

Yazılım Mühendisliği (İngilizce)

SE 312

Operating Systems

Operating Systems

3

0

0

3

5

 

30

Yazılım Mühendisliği (İngilizce)

SE 315

Software Engineering

Software Engineering

3

0

0

3

5

Yazılım mühendisliğinin kapsamı, yazılım geliştirme yaşam döngüsü modelleri, yazılım süreci, yazılım takımları, yazılım araçları, yazılım sınama, gereksinimler, nesne-tabanlı analiz ve tasarım, kodlama ve test yöntemleri, teslim sonrası bakım, UML kavramı ve diyagramları.

31

Yazılım Mühendisliği (İngilizce)

SE 319

Special Topics in Software Engineering

Special Topics in Software Engineering

3

0

0

3

5

Yazılım mühendisliğinin güncel konuları dönemsel olarak ele alınacaktır.

32

Yazılım Mühendisliği (İngilizce)

SE 320

Software Verification and Validation

Software Verification and Validation

3

0

0

3

4

Bu dersin amacı yazılım projelerinde uygulanması gereken yazılım doğrulaması ve geçerlilemesi hakkında bilgiler vermektir. Derste öğrenciler, oluşturdukları yazılım grupları ile öğrendikleri test yöntemlerini, gerçekleştirdikleri yazılım projesine uygularlar.

33

Yazılım Mühendisliği (İngilizce)

SE 322

Software Project Architecture and Design

Software Project Architecture and Design

3

0

0

3

6

 

34

Yazılım Mühendisliği (İngilizce)

SE 335

Cyber Security

Cyber Security

3

0

0

3

5

 

35

Yazılım Mühendisliği (İngilizce)

SE 340

Rapid Application Development

Rapid Application Development

3

0

0

3

5

Hızlı yazılım proje yönetimine giriş, hızlı geliştirme yöntemlerinin tarihçesi, hızlı yazılım geliştirme katmanları, Extreme Programlama, Crystal Family, RUP ve SCRUM yöntemleri, metotların karşılaştırılması.

36

Yazılım Mühendisliği (İngilizce)

SE 342

Software Validation and Testing

Software Validation and Testing

3

0

0

3

6

Yazılım doğrulama ve geçerlemeye giriş, yazılım testine giriş, yazılım güvenliğinin temelleri, yazılım test gereçleri, yazılım test araçları, kara-kutu birim test tekniği, beyaz-kutu birim testi ve kontrol-akış testi, veri-akış testi, web sitesi testi, kullanılabilirlik testi, genetik algoritmalar, güvenlik için test ve kod denetimleri, yazılım test ölçütleri.

37

Yazılım Mühendisliği (İngilizce)

SE 343

Mobile Application Development

Mobile Application Development

2

2

0

3

5

Bu dersin amacı, mobil cihaz ortamında yazılım geliştirme hakkında temel bilgi vermek ve Android işletim sistemi üzerinde program yazmayı öğretmektir.

38

Yazılım Mühendisliği (İngilizce)

SE 350

Multimedia Software Development

Multimedia Software Development

3

0

0

3

4

Çoklu ortam yazılımı mühendisliğinin iskeleti. Çoklu ortam yazılımı mühendisliğinde bakış açıları. Görsel Diller. Çoklu ortam dilleri. Aktif gösterge. Tele-aksiyon nesneler. Çoklu ortam geliştirme araçları. Çoklu ortam uygulamalarında prototip oluşturma. Çoklu ortam dillerinin tasarımı. Dağıtık çoklu ortam sistemleri tasarımı.

39

Yazılım Mühendisliği (İngilizce)

SE 353

Introduction to Web Programming

Introduction to Web Programming

3

0

0

3

5

Web-tabanlı sistemlere ilişkin örnekler, HTML’e giriş, HTML tagları kullanımı, ileri HTML kullanımı ve CSS dosyaları, HTML medya, XHTML, Java Script, FTP, WinHtTrack, Java Applets, içerik yönetim sistemleri (Content Management Systems-CMS), Macromedia Flash kullanımı, CMS kullanımı, web sunucuları.

40

Yazılım Mühendisliği (İngilizce)

SE 354

Web Application Development

Web Application Development

3

0

0

3

5

PHP dilinin genel yapısı ve kurulumu, değişkenler, sabitler, operatörler, kontrol yapıları, döngüler, diziler, dosya dizin işlemleri, çerez kavramı, oturum kavramı, formlar, MySQL kurulumu, temel SQL dili komutları, PHP ve grafikler, veritabanı bağlantıları, PHP ve XML, PHP ve güvenlik.

41

Yazılım Mühendisliği (İngilizce)

SE 355

Advanced Programming Tool and Methods

Advanced Programming Tool and Methods

3

0

0

3

5

Programlama tekniği ile ilgili temel prensiplere giriş: test, hata ayıklama, taşınabilirlik, performans, tasarım alternatifleri ve modelleri. Çeşitli programlama dilleri, programlama ortamları ve işletim sistemlerinde uygulama. Programın işlevselliği, performansı ve sağlamlığını iyileştirmek için yazılım geliştirme sürecinde kullanılan araçlar.

42

Yazılım Mühendisliği (İngilizce)

SE 356

Web Application Development

Web Application Development

2

2

0

3

5

Bu ders ile amaçlanan, öğrencilerin elektronik iş (e-iş) hizmetlerinden yararlanabilmeleri için gereksinim duydukları web tabanlı programlamaya yönelik bireysel gelişimlerini sağlamaktır. Dersi başarıyla tamamlayan öğrenciler statik web sayfalarını dinamik bir yapıya dönüştürerek profesyonel bir web programlama becerisine sahip olacaklardır. PHP dilinin genel yapısı ve kurulumu, değişkenler, sabitler, operatörler, kontrol yapıları, döngüler, diziler, dosya dizin işlemleri, çerez kavramı, oturum kavramı, formlar, MySQL kurulumu, temel SQL dili komutları, PHP ve grafikler, veritabanı bağlantıları, PHP ve XML, PHP ve güvenlik.

43

Yazılım Mühendisliği (İngilizce)

SE 360

Compiler Design

Compiler Design

3

0

0

3

4

Bu dersin amacı derleyici tasarımıyla ilgili temel bilgi ve kavramları öğrenciye öğretmektir. Derleyici yapısı, Sözlük analizi, Sözdizimi analizi, Sözdizimi yönlü çeviri, Tip kontrolü, Çalışma zamanı ortamı, Kod üretimi, Kod eniyilemesi.

44

Yazılım Mühendisliği (İngilizce)

SE 363

Java Programming

Java Programming

3

0

0

3

5

Java'ya giriş, değişkenler, operatörler, yöntemleri, nesneleri ve nesne yönelimli programlama, dizge operatörleri, istisnalar ve özel durum işleme, swing denetimlerini kullanma yöntemleri, veri yapıları, Dosyalar ve Akımlar, Ağ programlama, swing GUI nesnelerini kullanarak GUI programlama, JDBC bağlantıları, Java appletleri.

45

Yazılım Mühendisliği (İngilizce)

SE 364

Linux Scripts and Tools

Linux Scripts and Tools

3

0

0

3

5

Unix/Linux ortamı, dosya sistemi, hesap yönetimi, Unix derleyiciler ve yorumlayıcılar, Unix pencere yöneticisi, Unix kabuğu ve kabuk programlama, Unix/Linux ortamında yazılım geliştirme, Unix araçları, diğer sistem yönetim araçları, temel süreç yönetimi.

46

Yazılım Mühendisliği (İngilizce)

SE 366

Linux System Programming

Linux System Programming

3

0

0

3

5

 

47

Yazılım Mühendisliği (İngilizce)

SE 370

Unix Scripts an Utilities

Unix Scripts an Utilities

3

0

0

3

4

Dersin temel amacı, öğrencilere Unix / Linux ortamının komut satırını, dosya ve süreç yönetimini öğretmek, kabuk ve sistem programlama dillerini tanıtmaktır. Kabuk scriptleri, kullanıcı ortamları, dosya sistemi işlemleri, sistem çağrıları ve kütüphaneleri, süreçler arası iletişim üzerine yazılım geliştirme konularına giriş yapılacaktır. Unix/Linux ortamı, dosya sistemi, hesap yönetimi, Unix derleyiciler ve yorumlayıcılar, Unix pencere yöneticisi, Unix kabuğu ve kabuk programlama, Unix/Linux ortamında yazılım geliştirme, Unix araçları, diğer sistem yönetim araçları, temel süreç yönetimi.

48

Yazılım Mühendisliği (İngilizce)

SE 373

Mobile Programming

Mobile Programming

3

0

0

3

5

Mobil cihaz karakteristikleri, uygulama temelleri, aktiviteler ve amaçlar, iş parçacıkları (threads), servisler, kullanıcı arayüz ekranları ve olayları, çoklu ortam teknikleri, donanım arayüzü, ağ, veri depolama metotları, konum-tabanlı servisler.

49

Yazılım Mühendisliği (İngilizce)

SE 374

Visual Programming

Visual Programming

2

2

0

3

5

Görsel programlamaya giriş, Framework kullanımı, proje geliştirme, konfigürasyon yönetimi, form araçları kullanımı (TextBox, ComboBox, CheckBox, RadiobButton, ListBox, Timer, Progress Bar, TabControl, ErrorProvider, DateTime, TreeView, ImageList ContexMenu, SplitContainer, MenuScript, Mouse Tracking).

50

Yazılım Mühendisliği (İngilizce)

SE 383

Python Programming

Python Programming

2

2

0

3

5

Python programlamaya giriş, girdi/çıktı işlemleri, döngüler, koşullu durumlar, hata yakalama, listeler, fonksiyonlar, modüller, nesne tabanlı programlama, SQLite ile veritabanı programlama, ağ programlama.

51

Yazılım Mühendisliği (İngilizce)

SE 401

Capstone Project I

Capstone Project I

0

4

0

2

9

Bir yazılım sisteminin gereksinim, analiz ve tasarım safhaları, proje tasarım ve sunumuyla ilgili hususlar, gerçek hayattaki yazılım proje problemleri ile ilgili farkındalık, profesyonel kalitede yazılım çözümleri, yazılım mühendisliği metotlarının uygulaması.

52

Yazılım Mühendisliği (İngilizce)

SE 402

Capstone Project II

Capstone Project II

0

4

0

2

8

Bütünleşik Proje I dersinde tasarlanan projenin gerçekleştirim ve test safhaları, yazılım geliştirme ipuçları.

53

Yazılım Mühendisliği (İngilizce)

SE 403

Software Project Management

Software Project Management

3

0

0

3

6

Yazılım proje yönetimine giriş, proje değerlendirme ve yazılım yönetimi, proje planlamasına genel bakış, proje planlama adımları, yazılım projesi büyüklük kestirim yöntemleri, iş planı, risk yönetimi, kaynak tahsisi, proje izleme ve kontrol, idari sözleşmeler, ekip yönetimi, yazılım kalite ve standartları, konfigürasyon yönetimi.

54

Yazılım Mühendisliği (İngilizce)

SE 410

Software Quality Assurance

Software Quality Assurance

3

0

0

3

4

Yazılım kalitesi ve güvencesine giriş, yazılım kalite özellikleri, yazılım kalite güvencesinin amaçları, yazılımda kalite sorunları, kalite sistemleri, en iyi pratikler yaklaşımı, süreç kavramı, yazılım süreç geliştirme ve iyileştirme modelleri, yazılım kalite yönetimi, yazılım kalitesinin maliyeti, yazılım testi ve uygulaması, konfigürasyon yönetimi, çevik metotlar.

55

Yazılım Mühendisliği (İngilizce)

SE 416

Data Mining

Data Mining

2

2

0

3

5

Bu dersin amacı öğrencilere çeşitli veri madenciliği tekniklerini tanıtmak ve gerçek hayattaki problemlerin uygulamalarına dair bilgi vermektir. Veri Madenciliğine Giriş, Veri Madenciği Tanımları, Veri Madenciliğinin Geri Planı, Veri Madenciliği Teknikleri, Operasyonları ve Algoritmaları, Veri Madenciliği Uygulamaları, Veri Madenciliği Problemleri, Metin Madenciliği, Web Madenciliği, Örnek Uygulamalar.

56

Yazılım Mühendisliği (İngilizce)

SE 417

Software Metrics

Software Metrics

3

0

0

3

5

Ölçüm teorisi ve temel kavramlar, yazılımda ölçme ve temel yazılım ölçütleri, yazılım karmaşıklık ölçütleri ve modelleri, yazılım büyüklük ölçütleri ve kestirim modelleri, yazılım emek ölçütleri ve kestirim modelleri, yazılım kalite ölçütleri, ISO 9126, ISO 15504 ve CMMI kalite modelleri, yazılım süreç iyileştirmeyi ölçmede kullanılan işlev puanı ölçütleri, yazılım kullanılabilirlik ölçütleri, müşteri memnuniyetinin ölçüm ve analizi, yazılım bakım ölçütleri.

57

Yazılım Mühendisliği (İngilizce)

SE 420

Advanced Database Systems

Advanced Database Systems

3

0

0

3

5

İleri veritabanı sistemlerine giriş, SQL server veritabanı, SQL server ile tablolar ve aralarındaki ilişkiler, SQL server sorgular ve anahtarlar, SQL server formlar ve raporlar, DDL komutları, ileri sorgu geliştirme teknikleri ve uygulamalar, Oracle kullanımı, proje izleme ve kontrol, diğer veritabanı yönetim sistemleri, DB2 ve Solaris, OLAP küpleri, konfigürasyon yönetimi.

58

Yazılım Mühendisliği (İngilizce)

SE 426

Real-Time Systems

Real-Time Systems

3

0

0

3

5

 

59

Yazılım Mühendisliği (İngilizce)

SE 434

Social Network Analysis

Social Network Analysis

3

0

0

3

6

Dersin genel amacı Sosyal Ağ Analizi’ne ilişkin temel tekniklerini öğretmek, ağlar ile ilgili temel
kavramları açıklamak, ve ağ görselleştirme araç ve tekniklerini tanıtmaktır.

60

Yazılım Mühendisliği (İngilizce)

SE 441

Information Systems Security

Information Systems Security

3

0

0

3

5

Kriptografi teori ve kavramı, şifreleme algoritmaları ve sistemleri,  ağ güvenliğinin sağlanması için gereken teknik ve yaklaşımlar.

61

Yazılım Mühendisliği (İngilizce)

SE 442

High Performance Computing

High Performance Computing

3

0

0

3

4

Yüksek başarımlı bilgisayar mimarileri: Çokluişlemciler, çoklubilgisayarlar, Flynn'in taksonomisi, SIMD, MIMD, SPMD, bağlantı topolojileri, Beowulf kümeleri. Arabellek eniyileştirme teknikleri. Vektörleştirme. Paralel makine ve başarım modelleri: PRAM, hızlandırma, iş verimliliği, ölçeklenebilirlik. Mesaj iletimi ve çok-kanallılık kütüphaneleriyle paralel programlama. Paralel uygulamlar. Yük dengeleme ve graf bölümleme.

62

Yazılım Mühendisliği (İngilizce)

SE 443

Lightweight Client Programming

Lightweight Client Programming

3

0

0

3

4

Güçsüz istemcilere örnekler. Java 2 Platform, Micro Edition (J2ME) ve standart SML-tabanlı işaretleme dilleri. Mobile information device profile (MIDP) ve Connected Limited Device (CLCD) yapıları. CLCD ve MIDP API'leri. J2ME geliştirme araçları. Mobil cihazları tüketici ve kurumsal hizmetlere bağlamak için kullanılan teknolojiler: standart veri formatları, güvenlik ve uygulama düzeyi protokolleri.

63

Yazılım Mühendisliği (İngilizce)

SE 450

Software Engineering Ethics

Software Engineering Ethics

3

0

0

3

4

Bu dersin amacı, bilgisayar ve bilişim etiğinin teori ve uygulamalarını tanıtmaktır. Ayrıca, etiksel karar verme temellerini kapsamaktadır. Bunun yanında, grup çalışmaları ve sunumları üzerinde durulmaktadır. Mühendislik ve kurumsal sorumluluklar, kişisel haklar, bilgi uçurma, çıkar çatışması, profesyonel özerklik, risk değerlendirmesi, sürdürülebilir gelişim ile mühendislik etik kodlarının yeri ve amacı, yazılım mühendisliği ve diğer bilgi sistemlerinde etik kuralları ve ilkeleri, alanında etik çalışma ve karar verme.

64

Yazılım Mühendisliği (İngilizce)

SE 453

Large Scale System Software Development

Large Scale System Software Development

3

0

0

3

4

Bu dersin amacı öğrencilere günümüzün en ileri düzeyli araç ve yöntemlerini kullanarak büyük ölçekli yazılım sistemlerinin analizi, tasarımı ve geliştirilmesini öğretmektir. Derste işlenecek konulara arasında operatör aşırı yükleme, dinamik çokbiçimlilik, görsel kullanıcı arabirimleri, jenerik programlama, dinamik bağlı kütüphaneler, ve çok kanallılık yer almaktadır.

65

Yazılım Mühendisliği (İngilizce)

SE 454

Distributed Computing

Distributed Computing

3

0

0

3

4

Bu ders, dağıtık sistemlerin tasarımı, uygulanması ve yönetimi altında yatan temel kavramlar üzerinde durur. Dağıtık sistemlerde temel kavramlar, senkronizasyon, seçim, dağıtılan anlaşma, süreçler arası iletişim ve koordinasyon, çoğaltılmış veri yönetimi, dağıtılmış objeler, güvenlik, ve dizin ve keşif hizmetleri gibi temel konuları kapsar.

66

Yazılım Mühendisliği (İngilizce)

SE 456

Game Programming

Game Programming

3

0

0

3

5

Oyun programlamaya giriş, oyun mimari, oyun mantığı, 3 boyutlu oyunlarda temel kavramlar, 3 boyutlu oyunlar için klavye, fare, kullanıcı arabirimi programlama.

67

Yazılım Mühendisliği (İngilizce)

SE 458

Service Oriented Architecture

Service Oriented Architecture

2

2

0

3

5

Servis Odaklı Mimari’ye (SOA) Giriş, SOA'nın Özellikleri, SOA’nın Evrimi, Web Servisleri ve SOA, XML'e Giriş, WSDL: Web Servis Tanımlama Dili, SOAP: Simple Object Access Protocol, SOA Platformlarına Giriş, .NET Platformunda Web Servis Geliştirme, .NET Platformunda WCF ve SOA, İkinci Nesil Web Servisleri –  WS-* Uzantıları.

68

Yazılım Mühendisliği (İngilizce)

SE 460

Mathematics for Computer Games

Mathematics for Computer Games

3

0

0

3

4

Bu ders 3 boyutlu dünyayı tarif etmek, simule etmek ve canlandırmak için gerekli olan metamatik konularını içermektedir. Nesneler ve pozisyonları, uyumları ve yörüngeleri 3 boyutlu matematik kullanılarak nasıl tanımlanır? Ders oyun tasarımcıları ve grafik programcıları için gerekli olan temel koordinat uzayı, vektörler ve matris konularını içerir. Ayrıca üç boyutta yönlendirme, ileri matematik ve dinamikler, grafikler ve parametrik eğriler konularını da içerir.

69

Yazılım Mühendisliği (İngilizce)

SE 462

Embedded Systems

Embedded Systems

3

0

0

3

4

Gömülü Sistemler spesifik uygulamalar için tasarlanan ve mobil telefonlar, akıllı kartlar, araç elektroniği, tüketici elektronik aygıtları gibi donanımlara gömülen bilgisayar sistemleridir. Uygulamaların çeşitliliği ve karmaşıklığındaki artış bu gibi sistemlerin tasarımına olan ilgiyi giderek arttırmaktadır. Bu ders gömülü sistemler alanında geniş bilgi vermektedir ve üç anala yönelik çalışmalar yapılmaktadır: yazılım ve programlama, işleme ve iletişim, donanım.

70

Yazılım Mühendisliği (İngilizce)

SE 463

CAD/CAM Software Development

CAD/CAM Software Development

3

0

0

3

4

Derste bilgisayar destekli tasarım ve modelleme için güncel yaklaşımlar sunulmaktadır. Donanım ve yazılım özelliklerinin yanı sıra geometrik modellemede, geometri tabanlı fiziksel hesaplamalarda ve model optimizasyonunda kullanılan algoritmalar ve bunların uygulamaları da incelenmektedir. Dersin uygulama kısmı bilindik CAD sistemlerinin kullanımını içermektedir.

71

Yazılım Mühendisliği (İngilizce)

SE 464

Case Studies in Software Engineering I

Case Studies in Software Engineering I

3

0

0

3

4

Durum çalışmaları güçlü ve esnek olan gözlemsel bir metottur. Öncelikli olarak ileriye ve geriye dönük bir teorinin yapısını anlatmak ve açıklamak için araştırmalarda kullanılır. Araştırma sonuçlarının doğrulanmasında da kullanılabilirler. Bu beceriden ötürü yazılım mühendisliği alanında popüler hale gelmiştir ve yeni bir tekniğin, metodun, aracın, sürecin veya teknolojinin kabiliyetlerini sunmak veya açıklamak için sıklıkla kullanılırlar. Ne yazık ki genellikle doğru şekilde kullanılamamaktadırlar. Bu dersin amacı yazılım mühendisi adaylarına durum çalışmalarının nasıl etkin bir biçimde tasarlanabileceği, yürütüleceği, değerlendirileceği ve okunacağını öğretmektir.

72

Yazılım Mühendisliği (İngilizce)

SE 465

Case Studies in Software Engineering II

Case Studies in Software Engineering II

3

0

0

3

4

Durum çalışmaları güçlü ve esnek olan gözlemsel bir metottur. Öncelikli olarak ileriye ve geriye dönük bir teorinin yapısını anlatmak ve açıklamak için araştırmalarda kullanılır. Araştırma sonuçlarının doğrulanmasında da kullanılabilirler. Bu beceriden ötürü yazılım mühendisliği alanında popüler hale gelmiştir ve yeni bir tekniğin, metodun, aracın, sürecin veya teknolojinin kabiliyetlerini sunmak veya açıklamak için sıklıkla kullanılırlar. Ne yazık ki genellikle doğru şekilde kullanılamamaktadırlar. Bu dersin amacı yazılım mühendisi adaylarına durum çalışmalarının nasıl etkin bir biçimde tasarlanabileceği, yürütüleceği, değerlendirileceği ve okunacağını öğretmektir.

73

Yazılım Mühendisliği (İngilizce)

SE 470

Parallel Programming

Parallel Programming

2

2

0

3

5

Paralel programlamaya giriş, Thread tabanlı paralel programlama ve pthread kütüphanesi, OpenMP kütüphanesi ile thread tabanlı paralel programlama, Process tabanlı paralel programlama, Open MPI kütüphanesi ile paralel programlama, Grafik kartları üzerinde paralel programlamaya giriş, CUDA programlama.

74

Yazılım Mühendisliği (İngilizce)

SE 472

Java-Based Application Development

Java-Based Application Development

2

2

0

3

5

Genel bakış, JavaServerFaces teknolojisi, Facelets giriş, web sayfalarında JavaServerFaces teknoloji kullanımı, dönüştürücüler, dinleyiciler ve doğrulayıcılar JavaServerFaces teknolojisi ile uygulamalar geliştirme, Java Servlet teknolojisi, web hizmetlerine giriş, JAXWS ile web servisleri geliştirme, JAX-RS ile RESTful web hizmetleri, kurumsal Beans, kurumsal Beans ile çalışmaya başlama, Enterprise Bean örnekleri, Java persistence API giriş, persistence örnekleri çalıştırma, Java persistence sorgu dili.

75

Yazılım Mühendisliği (İngilizce)

SE 473

Secure Software Design

Secure Software Design

2

2

0

3

5

Güvenli yazılım uygulamaları geliştirmek için ilkeler, teknikler ve en iyi pratikler. Yazılım geliştirme sürecinin safhaları için güvenlik dallanmaları, güvenlik gereksinim analizi, tehdit modelleme, güvenli tasarım, güvenli programlama, güvenlik testleri ve doğrulama.

76

Yazılım Mühendisliği (İngilizce)

SE 499

Industry Tranining

Industry Tranining

0

0

0

0

6

Staj altı hafta (30 işgünü) dır, herhangi bir yurtiçi veya yurtdışı kamu veya özel kuruluşlarda saha deneyimi kazanmayı öngörmektedir. Öğrenciler, stajlarını başarıyla tamamlayabilmeleri için Mühendislik & Doğa Bilimleri Fakültesi ve Yazılım Mühendisliği Bölümü Staj Yönergelerinde istenenleri yerine getirmeleri gerekmektedir.

 

Düşüncede Özgür, Eğitimde Çağdaş, Bilimde Evrensel