Dersler

Yazılım Mühendisliği Zorunlu Dersler

Temel bilgisayar literatürü: terminoloji, sistem bileşenleri ve işleyiş. Programlamanın temelleri: dizi, karar yapısı, tekrarlı işlem, sözdizimi, derleme, hata ayıklama ve bakım, yordamlar, parametreler, diziler, arama ve sıralama algoritmaları, sıradüzensel yapısal tasarım ve biçem

Nesneye yönelik (object oriented) programlamaya giriş. Programlama dilleri, seviyeleri, tarihçe. Güvenlik, güvenilirlik ve etik. Program geliştirme; dilin yazılım kuralları; giriş/çıkış; algoritma; akış diyagramları ve sözde kod; atama; kontrol yapıları; fonksiyonlar; diziler; temel arama ve sıralama algoritmaları ve temel dosya işlemleri.; fonksiyonlar; diziler; temel arama ve sıralama algoritmaları ve temel dosya işlemleri.

Nesne yönelimli programlama temellerinin gözden geçirilmesi; yazılım tekrar kullanılabilirliği, sınıf derleme, veri soyutlama ve bilgi saklama, soyut veri tipleri, şablon sınıflar, operatör yükleme; dinamik hafıza yönetimi, miras; soyut fonksiyonlar; çokbiçimlilik; girdi/çıktı akışı; hata ayıklama; temel veri yapıları.

Ayrık matematiğin hesaplama ile ilgili temel kavramları ve teknikleri: mantığın temel kavramları, önermeler mantığı, küme teorisi, fonksiyonlar, diziler, sayma, bağıntılar, algoritmalar ve karmaşıklık analizleri, sayı teorisi uygulamaları; matematiksel nedensellik, tümevarım ve özyineleme; çizge teorisi, en kısa yol problemleri, ağaç yapıları, sıralama ve arama algoritmaları ve uygulamaları

Programa dillerinin tasarım, değerlendirme ve uygulama evrelerinde dahil edilen prensipler, sözdizimi, semantikler, bağlama, tip kontrolü, veri tipleri, ifadeler, kontrol yapıları, alt programlar, soyut veri tipleri, nesne yönelimli programlama için destek, eş zamanlılık, hata ayıklama ve fonksiyonel mantık ve nesne yönelimli programlama

Giriş; veri tipleri ve veri yapıları, soyut veri tipleri, elemanlar ve yapı, sanal ve fiziksel veri tipleri; soyut veri tipleri, nesne yönelimli programları dilleri arasında karşılaştırma; nesne yönelimli uygulamalar, nesne yönelimli yöntem üzerine dayalı yazılım sistemleri örnekleri.

Asembler dili ve makine dili kullanılarak bilgisayar organizasyonuna giriş, bilgisayar aritmetiği, veri yolu ve kontrol, mikro programlama, komut kümeleri, adresleme şekilleri, hafıza sistemleri ve hiyerarşiler, önbellekler, girdi/çıktı sistemleri, kesmeler, programlama kesmeleri, RISC mimarisi, ardışık düzen ve performans artımı için diğer gelişmiş teknikler, paralel hesaplama, açık sistem ağları ve çoklu işlemciler

Sistem teorisine giriş: grafiklerin kullanımı, formüller ve fonksiyonlar; çizelgelerle nakit akışı; istatistiğe giriş; tek değişkenli bağlanım; dizin numaralarının iş, endüstri ve devlet sektöründe kullanılması. Zaman serisi analizi ve tahmin; çok değişkenli verilerin çözümlenmesi ve araştırılmasından güvenilir sonuçların çıkarılması

Bu ders algoritma analiz temelleri, zaman ve uzay karmaşası ve kesme hatalarını kapsar. Aynı zamanda sıralama ve sorgulama gibi standart algoritmaların karmaşıklığı ve bu algoritmaların efektif uygulanabilmesi için gerekli ağaç mimarisi gibi veri yapılarını anlatır. Başlıklar grafik algoritmaları gibi temel veri yapıları, listeler, sorgular, ağaçlar, arama ve sıralama algoritmaları, dinamik programlama, karakter karşılaştırma, bilgisayarlı geometri ve yaklaşım konularını kapsar

Bilgisayar sistemleri yapıları, işletim sistemleri yapıları; süreç ve süreç yönetimi, işlemci zaman çizelgesi, işlem senkronizasyonu, kilitlenme; kayıt yönetimi, hafıza yönetimi, sanal hafıza, dosya sistemi; girdi/çıktı sistemleri, ikincil kayıt yapıları, dağıtık sistemler, ağ yapıları, dağıtık sistem yapıları, dağıtık dosya sistemleri; koruma ve güvenlik, Örnek çalışmalar: Unix, IBM VM, MS-DOS, Windows NT, Linux, Mach, Amoeba.

Temel veritabanı sistemleri, ilişkisel model: tanım kümesi ve ilişkiler, veri bütünlüğü, ilişkisel cebir, ilişkisel hesap, SQL; veritabanı tasarımı: fonksiyonel bağımlılık, normalleştirme, varlık ilişki modeli; dosya yapıları, indeksleme, rasgele hale getirme; veri koruma, kurtarmak, eş zamanlılık, güvenlik, bütünlük, görünümler, en iyileştirme; dağıtık veritabanı sistemleri, nesne yönelimli sistemler

Yerel ve geniş alan ağ mimarileri, protokoller, servisler ve uygulamalar; Fiziksel veri iletimi, güvenli ve güvenli olmayan haberleşme protokollerinin öğeleri; Benzer veya farklı nitelikli makineler arasında bilgi aktarımı; Haberleşme servislerinin donanım ve işletim sistemleri ile uyumu

Veri madenciliği büyük veri tabanlarında ki değişiklikleri, birleşimleri anormallikleri ve desenleri otomatik bulma işlemidir. Bu ders istatistiksel temeller, birleşim keşifleri, sınıflandırma, gurupluma veri tabanı desteği, veri depolama ve OLAP teknolojileri gibi veri madenciliği ve bilgi keşfi temel konularında bilgi vermeyi amaçlar.

Ölçme ve vektörler, kinematik, Newton yasaları, dairesel hareket, evrensel çekim yasası, iş ve enerji, enerjinin korunumu, momentum, statik, dönme hareketi, basit harmonik hareket, dalgalar, ısı, termodinamiğin birinci yasası, gazların kinetik teorisi, termodinamiğin ikinci yasası, entropi (İlgili deneyler).

Yük ve madde, elektrik alan, elektrik akı ve Gauss yasası, potansiyel, kondansatörler, akım ve direnç, DC devreleri, manyetik alan ve manyetik kuvvet, Ampere ve Faraday yasaları, indüksiyon, elektromanyetik dalgalar, geometrik optik, girişim, kırınım ve polarizasyon, EM radyasyonun parçacık ve dalga özelliği (İlgili deneyler).

Bu dersin amacı, öğrencilerin dinleme, konuşma, okuma, yazma ve dil bilgisi konularındaki yabancı dil becerilerini akademik standartlara uygun materyaller üzerinde çalışarak geliştirmelerini sağlamaktır. Derste ayrıca öğrencilerin akademik çalışma becerilerinin geliştirilebilmesi için çeşitli uygulamalara yer verilmektedir. Ayrıca, sınıf içi ve dışı etkinliklerle öğrencilerin düşünme becerilerini geliştirmek, onları eleştirel düşünceye ve araştırmacılığa sevk etmek hedeflenir

Mühendislikte istatistik, olasılık, olasılık teoremleri; koşullu olasılık; Bayes teoremi, rastgele değişkenler, Binom, Poisson; Hipergeometrik dağılımlar; olasılık dağılımlarının ortalamaları ve varyansları; Chebyshev teoremi; Multinominal dağılım. Sürekli rastgele değişkenler; Normal ve diğer sürekli olasılık yoğunluk fonksiyonları; Bileşik olasılık yoğunluk fonksiyonları. Yöneylem Araştırması'na uygulamalar; Matematik ümit ve karar verme; Rastgele süreçler; Monte-Carlo yöntemi; Frekans dağılımları, grafikler, örnekleme dağılımları

Temel matematiğe giriş, koordinatlar ve vektörler, fonksiyonlar, limit, süreklilik, türev, teğet doğrular, ortalama değer teoremi, grafikler, kritik noktalar, maksimum ve minimum problemleri, doğrusallaştırma ve diferansiyeller, integral, Riemann toplamları ve belirli integraller, matematiğin temel teoremi, doğal logaritma, üstel fonksiyonlar, ters trigonometrik fonksiyonlar, L'Hospital kuralı, integral metodları, integralin uygulamaları.

Diziler ve seriler, Taylor ve Maclaurin serileri, düzlemsel eğrilerinin uzunlukları, kutupsal koordinatlar ve kompleks sayılar, uzayda doğrular, düzlemler ve kuadratik yüzeyler, çok değişkenli fonksiyonlar, limit ve süreklilik, parçalı türevler, zincir kuralı, yönlü türevler, kritik noktalar, çok katlı integraller, kutupsal, silindirik ve küresel koordinatlarda integraller, eğrisel integraller ve yüzey integralleri

Matrisler, satır denkliği, ters matris, lineer denklem sistemleri, determinantlar, Cramer kuralı, vektör uzayları, lineer bağımlılık ve bağımsızlık, tabanlar, iç çarpım uzayları, Gramm-Schmidt yöntemi, ortogonal izdüşümler, Fourier serileri, öz değerler, öz vektörler, üstel matrisler, köşegenleştirme ve uygulamaları, lineer dönüşümler ve matrisleri.

Diferansiyel denklemlerin temel kavramları, birinci mertebeden diferansiyel denklemler, lineer diferansiyel denklemlerin çözümü, sabit katsayılı diferansiyel denklemler, Cauch-Euler denklemleri, lineer diferansiyel denklem sistemleri, Laplace dönüşümleri, lineer denklemlerin lineer sistemlerin çözümüne uygulamaları, lineer denklemlerin kuvvet serileriyle çözümleri, parçalı diferansiyel denklemlere giriş, değişkenlerine ayırma.

Bu ders, ulusal ve uluslararası alanda çok önemli bir kavram olan İş Sağlığı ve Güvenliğini içermektedir. Öğrencilerde farkındalık oluşturmak için iş sağlığı ve güvenliği ile ilgili mevzuat ve uygulamalar anlatılmaktadır. Bunun yanında, evrensel etik ilkeler ve değerleri, etik teorileri, mühendislik etiği ve ilkeleri ile mesleki ikilemlerin irdelenmesi ve tartışılmasını kapsamaktadır

Türk İnkılâbının tarihi anlamı ve önemi; Türk inkılâbını hazırlayan koşullar, ortam ve gelişmeleri; Mustafa Kemal Paşa önderliğinde Ulusal Kurtuluş Savaşı; Ulus egemenliğine dayalı tam bağımsız yeni Türk Devleti'nin kuruluşu; Atatürk'ün dahi asker, büyük devlet adamı ve İnkılâpçı kişiliği ile teşkilatçılığı

Dersin amacına uygun olarak, öğrencilerin özgür ve bilimsel düşünce gücüne ve geniş bir dünya görüşüne sahip bireyler olmalarını sağlamak, ulusal kültürümüzün ve dilimizin evrensel kültür içinde korunarak geliştirilmesine ve zenginleştirilmesine katkıda bulunmalarını sağlamak amacıyla TÜRK 101 dersinde; dillerin ortaya çıkışı, köken ve yapı bakımından dünya dilleri, Türkçe'nin dünya dilleri arasındaki yeri, Türkçe'nin tarihsel gelişimi, yapı bakımından Türkçe,sözcükleri kök ve eklerine ayırma ve sözcük türetme çalışmaları, anlatım bozuklukları,dilekçe yazma,özgeçmiş hazırlama gibi konular işlenmekte; dersin amacını desteklemek üzere çeşitli romanlar, şiir kitapları, deneme kitapları okunup incelenmektedir.

Yazılım Mühendisliğine genel bakış: sistem, müşteriler, kullanıcılar ve gereksiminler. Hesaplamanın temel ilkeleri: problem çözme, soyutlama, sistemi yünetilebilir parçalara ayırma, tekrar kullanım, basit ara yüzler. Tasarım konuları: Alternatiflerin değerlendirilmesi. Test etmenin temelleri. 

İnsan- bilgisayar etkileşiminin psikolojik prensipleri. Kullanı arayüzşerinin değerlendirilmesi. Kullanırlık Mühendisliği. Görev analizi, kullanıcı merkezli tasarım ve prototip. Kavramsal modeller ve metaforlar. Yazılım tasarım gerekçeleri. Pencere, menu ve komutların tasarımı. Ses ve doğal dil I/O. Cevap verme zamanı ve geri bildirim. Renkler, ikonlar, ve sesler. Kullanıcı ara yüzü mimarileri ve API’leri. Vaka çalışmaları ve proje. 

Alan mühendisliği. Gereksinimleri keşfetme ve belirleme yöntemleri. Gereksinim sunum dilleri ve modelleri. Analiz ve onaylama teknikleri: ihtiyaç, hedef ve vaka analizi. Sistem mühendisliği kapsamında gereksinimler. Dış nitelikleri belirleme ve ölçme: performans, güvenilirlik, erişilebilirlik, güvenlik, vb. Farklı sistemler için gereksinimleri belirleme ve analiz etme. Gereksinim dokümantasyon standartları. Çevik süreçleri kapsamında gereksinimler. Gereksinim yönetimi

Bu ders, modern yazılım mühendisliği, proje yönetiminde görev alan, hem kuramsal hem metodolojik konular üstünde anlayış sağlar . Bilgisayar öğrencisini odaklama, mantıksal analiz gelişimi, iletişim ve proje yönetimi ve transfer becerilerini geliştirmek için gereken takım tabanlı, profesyonel ortamlar içinde çalışmak için imkan sağlar. Ayrıca bilgi ve yazılım geliştirme yaşam döngüsü ve (örneğin, nesneye dayalı programlama, yazılım yaşam döngüsü, tasarım yeniden kullanım için ve kullanıcı odaklı tasarım gibi) temel yazılım mühendisliği kavramlarının anlaşılmasını sağlar. Başarılı  projeler sunmak için daha sağlam süreçleri ve tasarımlar üretmek için yardımcı olacak çağdaş yaklaşımları kullanmak koymak, geleneksel geliştirme metodolojileri prensiplerini anlamayı sağlar. Ayrıca bulut programlama, paraleldir ortamlarda gömülü sistemler arasında değişen çeşitli bağlamlarda bu bilgiyi kullanmak için öğrenmek gerekir.

Bu ders yazılım mimarisi ve tasarımı için temel tasarım ilkeleri ve stratejileri kapsar. Mimari stiller, kalite nitelikleri, gösterimler ve belgeler, referans mimarisi, mimari sürecinde etki özgü mimarisi ve desen odaklı tasarım, bileşen tabanlı tasarım , boy odaklı tasarım ve detay tasarım sürecinde arayüz tasarımı ele alınmıştır

Yazılım mühendisliği test sürecine giriş sağlamak, Kalite güvence süreci ve yazılım geliştirme rolünü açıklamak, öğrencinin test teknikleri, yöntemleri ve araçları kullanması sağlanacak, öğrencinin çalışma doğrulama ve onaylama teknikleri durumunu tarif etmesi mümkün olacak, öğrencinim müşteri ihtiyaçlarına yazılım proje yönetimi yeterlilik göstermesi sağlanacak, yazılım kalite ve test ISO 9000 etkisi ve yetenek olgunluk modeli ele alınacaktır.

Proje araştırması, kişisel çalışma amaçlı, Yazılım Mühendisliği konularını kapsayan alanlarda bölüm tarafından kabul edilebilir konunun belirlenmesi ve ders başlangıç tarihinden itibaren belirlenen süre içerisinde bu konuyla ilgili ön raporu ve sunumu kapsar. Ön rapor projenin amacını ve kapsamını ifade etmelidir. Proje çalışması belirlenen kriterlere uygun bir rapor oluşturulması ile sonuçlanır

Yazılım Mühendisliği Seçmeli Dersler

Bu ders öğrencilere Linux sistem yönetimi hakkında temel bilgileri verecek ve onların sistem yönetimi programları geliştirebilmelerini sağlayacaktır. Ders Linux konutları, süreç kontrolü, dosya sistemi, kullanıcı yönetimi, sürücüler ve çekirdek, ağ yönetimi, güvenlik ve sistem programlama gibi konuları içermektedir. Derste farklı Linux versiyonları ve Türk PARDUS versiyonu genel olarak açıklanacaktır. Daha sonra ise Python gibi bu alanda popüler sistem programlama dillerinden biri üzerine odaklanarak sistem programlama anlatılacaktır

Bu ders öğrencilere mobil uygulama geliştirme ortamı temellerini vermekte ve onların mobil telefonlar, tabletler gibi cihazlar için uygulama geliştirebilmelerini sağlamaktadır. Ders mobil cihazların ve uygulama karakteristiklerinin tanıtımı ile başlamakta ve derste var olan mobil teknolojiler, uygulama modelleri ve altyapıları, mobil uygulama geliştirme platformları ve bileşen kütüphaneleri anlatılmaktadır. Dersin uygulama kısmında yaygın kullanılan mobil uygulama geliştirme platformlarından birisi seçilerek örnekler yapılacaktır

Bu dersin amacı ileri GUI ve Java, sunucu-istemci ve web uygulamaları gibi konuları öğretmektir. Bu konular, ileri nesne yönelimli programlama, çok kanallılık, dosya sistemleri, çoklu ortam, veritabanı kullanımı ve sunucu-istemci uygulamaları için ağ kavramlarından oluşmaktadır. Ek olarak JavaBeans, Kolleksiyon, Internationalization, Servlets, JSP, EJB, ve XML konuları anlatılmaktadır

Kurumlarda bilginin tabiatı, bilgisayar tabanlı sistemler ve kurumların bilgi gereksinimlerini karşılayan kapsamlara giriş. Bu sistemlerin kurumlar ve kullanıcılar üzerindeki etkisi. İş ve mühendislik alanındaki çeşitli bilgisayar uygulamaları konusunda ayrıntılı tartışma. Sistem gereksinimleri ve sistem geliştirme yaşam döngüsü analizi. Süreç ve veri modelleme, ilişkisel veri analizi.

Ders internet ve web ortamının genel özellikleri ve bunların temel olarak programlamaya etkileri ile başlamaktadır. Daha sonra ise iş dünyasında en çok kullanılan web programlama teknolojilerinden birisi seçilerek uygulamalı olarak web programlamanın temelleri ve sırasıyla kullanıcı ara yüz tasarımı, durum yönetimi, veri tabanı etkileşimi, web sitesi güvenliği gibi web programcılığına özgü konular ile AJAX ve Web servisleri gibi ileri seviye konular işlenecektir.

Bu ders bilgisayar grafiklerinin temel teknik ve kavramlarına giriş niteliğindedir Dersin amacı öğrencilere bilimsel görselleştirme, ara yüz tasarımı, 2 ve 3 boyutlu veri sunumu ve idaresi, modelleme, ışıklandırma, doku kaplama, ışın izleme tekniklerini kolayca anlayabilme yeteneğini vermektir. Bu ders grafik standardı olmayan fakat en üst grafik sistemleri için grafik kütüphanesi olarak kabul edilen OPENGL temeline dayanır.

Gereksinim analizi, veri akışı modeli, mantıksal veri modeli, veri analizi, varlık/durum modeli; yollar ve diyagramlar; karar tabloları. Programlama dilleri özellikleri, SQL/PL 3-GL, CASE araçları. Prototip geliştirme, resmi tanımlama.

Bilgi tabanlı sistemler, karmaşık problemleri çözen yapay zeka programlarıdır. Bu dersin amacı bir bilgi tabanlı sistem geliştirmek için gerekli prensipleri ve sistem-inşa deneyimini vermektir. İşlenecek konular arasında şunlar bulunmaktadır: bilgi gösterimi, neden ve sonuç, mantık programlama, kural-tabanlı sistemler, uzman sistem geliştirmek için gerekli araçlar ve kabuklar, bilgi tabanlı sistemler geliştirmek için kullanılan metodolojiler, veri madenciliği, sinir ağları, belirsizlik, bulanık mantık.

Bulanık küme ve bulanık kümeler üstünde işlemlere giriş. Bulanık sistem ve olasılık teorisi. Bulanık ilişkiler ve bulanık ilişkilerle hesaplama. Dilsel değişken ve kelimelerle hesaplama. Yaklaşık sebeplendirme. Bulanık regresyon modelleri. Bulanık ölçüm. İstatistiksel karar verme uygulaması. Teşhis uygulaması. Kontrol uygulaması. Sinir ağlarına giriş. Temel grafik teorisinin anlatımı. Sinir ağlarının arkasındaki matematiksel yaklaşım teorisinin temelleri. Öğrenme kavram ve hesaplamada öğrenme süreci. korelasyon matris belleği. Algılama ve en küçük kareler yöntemi algoritması. Çok-katmanlı algılamalar. Radyal-temelli fonksiyon ağları. Bazı ileri konular. Süreç modellemesi uygulaması. Karar ve kontrol uygulaması. Birleşik bulanık-sinir hesaplama sistemlerinin özeti

Gerçek sayı uzay ve alanı, matematiksel uzayda norm ve uzaklıkları, matrisler, gerçek katsayılı denklemler; matris tersi problemleri, özdeğer ve özvektör, tekrarlı ilişkiler matematiksel tümevarım, özyineli algoritmalar; hata analizi, değerlendirme ve tahmin, hesaplamalı sayısal analizde yinelemeli yöntemler, polinom köklerini bulma, sayısal entegral ve türev, lineer denklem takımlarının çözümleri, bilgisayar cebir sistemleri ve sembolik hesaplama kavram ve fikirleri; polinomların ve rasyonel fonksiyonların bilgisayarlı çözümü, polinomların ayrıştırılması, geliştirilmiş Euclide algoritması, ilişkisel fonksiyonlar ve kısmi parçalar.

Hızlı uygulama geliştirme özellikle iş dünyasında, bilgisayar programlama konusunda önemli bir etki göstermeye başlamıştır. Bu ders Microsoft .NET Framework görsel geliştirme ortamı kapsamında RAD işlemlerini anlatır. Dersin konuları: Microsoft .NET Framework, yönetilen uygulama ortamları, bileşenlerle çalışma, konuşlandırma ve uyarlama, ortak tip sistemi, tiplerle çalışma, karakter kümeleri, diziler ve derleme, temsilciler ve olaylar, bellek ve kaynak yönetimi, veri akımları ve dosyalar, veritabanı erişimi, Internet erişimi, XML Web servislerine genel bir bakış.

Ders, öğrencinin teorik ve pratik yollar ile arabirim tasarımının temelleri ile yapısal mühendislik kuramı çerçevesinde tanışmasını ayrıca arabirim tasarımcıları tarafından kullanılan sürecler ile bu süreçlere alışmasını sağlayacaktır. Öğrenciler kazandıkları bilgiyi, proje temelli arabirim analizi ve tasarım görevleri ile uygulama fırsatı bulacaklartır. C++, C#, Java, Pascal, yada Python'nın eksiksiz bilinmesi gereklidir. Ders: " Arabirim tasarımı temelleri " Mevcut arabirimlerin analizi " Model-View-Controller ve diğer frameworkler " Uygulama geliştirme frameworkleri ve UI prototipleri " Prototip yeniden tasarımı " Kullanıcı testi temelleri " Uygulamalı kullancı testi gibi başlıkları içermektedir

Bu ders sayısal görüntü işlemenin temel teknik ve kavramlarına giriş niteliğindedir. İşlenen konular görüntü kazanımı, sunumu, görsel algılama, resim geometrisi, resim dönüşümü, resim iyileştirme metotları, bölgesel filtreleme, frekans alanı metotları, resim restorasyonu, çoklu çözünürlük işleme, wavelet dönüşümleri; resim sıkıştırma, kodlama standartları, resim ayırma yöntemleri, köşe tanıma ve resim tanımlanmasıdır.

Roller ve uzman sistemlerin sınırlamaları; yapay zekanın maliyeti ve getirileri, mimari, kabuklar, bilgi mühendisliği, yapılandırma, kural temelli ve nesne yönelimli bilgi geliştirme metodolojileri, hızlı prototip geliştirme ve KADS.

Bu ders dağıtık sistemlerin tasarım ve uygulama aşamasında metot ve teknolojileri ile beraber model ve mimarisi hakkında temel karakteristikleri verir. Anlatılacak konular dağıtık sistem mimarisi, iletişim mekanizması, protokoller, uzlaşma algoritmaları, gerçek zamanlı ve eşzamanlı uygulamalar, depolama yönetimi erişim kontrolü, nesne yönelimli dağıtık sistemler, hata toleranslandırma, isimlendirme ve kod taşınılabilirliğini içerir.

Bu dersin amacı İnternet ve Web teknolojilerinin sistematik şekilde ve derinlemesine anlatılmasıdır. Bu derste anlatılan konular şunlardır: TCP/IP ve IP adresleme, istemci-sunucu modeli, DNS, İnternet servisleri ve protokolleri, HTTP, HTML, JavaScript, dinamik HTML, Web sunucuları, CGI programlama, ASP, PERL, PHP, JSP, ve Servlet programlama, XML, E-ticaret ve güvenlik

Büyük ölçekli yazılım sistemleri bakımı ile ilgili konuların çalışılması. Tahminleme, yazılım kalite güvencesi, metrikleri, konfigürasyon yönetimi, doğrulama ve onaylama, denetim, kişisel ve takım yazılım süreci olarak yazılım mühendisliği konularının çalışma, yazılım bakım projeleri. Yapılandırılmış analiz ve tasarım gibi geleneksel analiz ve tasarım yöntemleri kapsamı. İki dönem-uzun, takım tabanlı projeler: nesne yönelimli olması için küçük bir sistemin yeniden yapılanmasını ve orta ölçekli mevcut yazılım projesi değişiklik yapılması.

Bu ders disiplinli, iteratif ve artımlı yazılım geliştirme teknikleri ile sistem değerinin hızlı gerçekleştirilmesini ve savurgan uygulamaların ortadan kaldırılmasını vurgulamaktadır. Öğrenciler Scrum dahil çevik yöntemler, aşırı programlama, yalın, kristal yöntemleri, dinamik sistem geliştirme metodu, özellik odaklı geliştirme ve Kanban tam spektrum ele alanır. Bu yöntemler ekip çalışmasını, zengin özlü iletişimi, en yüksek öncelikli müşteri özelliklerini içeren test sistemlerini teşvik eder. Çevik yöntemler ortak işyeri uygulamaları ve Şelalesi, CMMI, PMI / PMBOK ve RUP gibi geleneksel yöntemlerle tezatlıkları vardır. Sanayide bu çevik kabul örnekleri tartışılır. Bu derste, ek alt başlıklar, ekip dinamikleri, işbirliği, yazılım kalitesi ve ilerleme raporlama ölçümleri içerecektir.

Bu ders, bir programın doğruluğunu kanıtlamak için gereken dökümantasyon ve tasarımın anlaşılmasını ve kullanılmasını, yazılım tasarımlarının modellerini oluşturmak ve bu modelleri analiz etmek için simülasyon/model kontrol tekniklerinin kullanılmasını, yazılım gereksinimlerini belirlemek ve geliştirmek için notasyonları ve kanıtları kullanmayı, açık ve kesin olan döküman gereksinimlerini yazmak ve düzenlemeye yardım etmek için formalizm kullanmayı içerecektir.

Bu ders, mikroişlemci mimarisindeki trendleri, hafıza sistem performansının limitleri, paralel işlem platformlarının özellikleri, paralel platformların fiziksel yapısı, paralel makinelerde iletişim maliyeti, bağlantılı ağlarda yönlendirme mekanizması, işlem-işlemci atamanın etkileri ve atama teknikleri hakkında bilgi içerir

Bilgi güvenliği ile ilgili temel ve kapsamlı bir anlayış kazanmak. Önemli bilgi güvenliği konuları, teknolojileri ve yaklaşımlarına genel bakış. Güvenlik nitelikleri, politikaları, modelleri, kriptografi, PKI, güvenlik duvarları, güvenlik değerlendirmesi ve gerçek hayat güvenlik olayları hakkında bilgi

Yazılımdaki güvenlik açıkları ve bunların çözümleri. Yazılım ve işletim sistemi tabanlı güvenlik yöntemleri. Yeni programlama dilleri ve programlama dili analizleri (hem kaynak kod hemde çalışan program üstünde) ve güvenlik açıklarını bulup düzeltebilen programlama araçları

Yazılım tasarım desenlerinine derinlemesine bir bakış. Programlama ağrılıklı bir ders olarak bu ders Java gibi bir nesne yönelimli programlama diliyle desenlerin sunumu, analizi ve ödevlerin yapılmasını içerir. Yazılım desenleri tekrarlanan yazılım sorunlarına tekrar tekrar kullanılabilen çözümlerdir. Yazılım desenleri daha az deneyimli geliştiricilere uzman geliştiricilerin tecrübelerini ve bakış açılarını aktarır.

Aynı zamanda büyük veriyi ve yüksek kullanıcı sayılarını yönetirken gerçek zamana yakın performans göstermesi gereken bulut bilişim uygulamaları ve mobil uygulamalar gibi büyük veri ve bulut uygulamaları geliştirmek için kullanılan tasarım desenleri. Reaktif uygulamalar hatalara, kullanıcı isteklerine ve uygulamanın çalıştığı ortamdaki değişikliklere etkin ve verimli bir şekilde tepki verir. Sonuç olarak bu uygulamalar çok yüksek ölçüde eşzamanlı ve hataya dayanıklı olup bireysel sistem bileşenleri arasında en az bağlılığa sahiptir

Büyük veri ile başa çıkmak için gerekli yaygın yazılım sistemleri ve algoritmalar. Ağ, -anahtar-değer, sütun-ailesi gibi büyük ölçekli geleneksel olmayan veri saklama çerçeveleri, veri akışı analiz algoritmaları, büyük ölçekli anormallik tespiti, bilgi difüzyonu ve tavsiye algoritmaları

Bulut bilişim prensipleri, bulut bilişim bileşenleri ve servisleri, bulut bilişim mimarileri, bulut bilişim yönetimi ve güvenlik. Veri merkezleri, sanallaştırma, bulut saklama, programlama modelleri kavramları. Vei merkezi tasarım ve yönetiminin arkasında çeşitli kavramlar. Sanallaştırma, veri dağılımı, sağlamlık, tutarlılık ve  Virtualization, data distribution, durability, consistency and fazlalık kavramları.

Yazılımın matematik modellemesi, mantık, gelişmiş sonlu durum makineleri,  işlem cebiri, fonksiyonlar, ve cebirsel özellikleri içerir. Modellerdeki matematiksel altyapıyı, geçerlilik şartlarını, tamamlanma şartlarını ve doğruluğunu ele alır. Tip kontrolü, düzenli yazım kontrolünü, simülasyonu, değişmeyenler ve özellikler kontrolünü (açmaz kontrolü, model kontrolü gibi), sınama durumlarının üretilmesini ve kaynak kod üretilmesini içeren araçlar içermektedir.

Yazılım Geçerliliği ve Doğrulanması, statik ve dinamik tekniklerle elde edilen programın istekleri karşılamasının ve paydaşların beklentilerini karşılamasının kontrolünün yapılmasını içerir. Statik teknikler, yazılım süreçlerinin tümünde sistemin denetlenmesi ve analizi ile ilgilenir. Dinamik teknikler ise sadece uygulaması tamamlanmış sistemlere uygulanır.

Yazılım kofigürasyon yönetimi, yazılım geliştirmenin başlatılması, değerlendirilmesi ve geliştirme sırasında ve sonrasında değişikliklerin kontrolü ile ilgili teknikleri ve disiplinleri içerir.yazılım ürünlerinin yönetiminde konfigürasyon kontrolünün önemi de vurgulanmaktadır

Ö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

Yazılım süreçleri. Yazılım alt-kültürleri. Değişim örüntüleri. Kontrol örüntüleri. Yazılım süreç iyileştirme kavramlari: yöntemler ve modeller. Yazılım Süreç Değerlendirme. Yazılım süreç iyileştirme çerçeveleri: CMMı, SPICE, ISO 33000