2022 Müfredatı
Bilgisayar Mühendisliği Bölüm Dersleri
CS 101 – Programlamaya Giriş I
Bu dersin temel amaçları, öğrencileri değişkenler, koşullu ifadeler ve fonksiyonlar gibi bilgisayar programlamanın temel kavramlarıyla tanıştırmak ve öğrencilerin küçük görevleri çözmek amacıyla Python programları yazıp çalıştırabilmelerini sağlamaktır. Ders; değişkenler, veri tipleri, döngüler, fonksiyonlar, listeler, sözlükler ve dosya girdi/çıktısı gibi temel programlama kavramlarını kapsamaktadır.
CS 102 – Programlamaya Giriş II
Bu ders, temel nesne yönelimli programlama kavramlarına giriş niteliğinde bir derstir. Temel programlama bilgisi ön koşul olarak gerekmektedir. Ders; değişkenler, kontrol yapıları, diziler, sınıflar ve nesneler, sınıf yazımı, nesne yönelimli düşünce ve kalıtıma giriş konularını kapsamaktadır. Tanıtılan kavramların aktarımında Java programlama dili kullanılmaktadır.
CS 203 – Nesne Yönelimli Programlama
Bu ders, Java ile nesne yönelimli programlamanın ileri düzey kavramlarını ele almaktadır. İşlenecek konular arasında; kalıtım ve arayüzler aracılığıyla çok biçimlilik, soyut sınıfların kullanımı, grafiksel kullanıcı arayüzleri, istisna yönetimi ve Birleşik Modelleme Diline (UML) giriş kapsamında kullanım senaryosu ve sınıf diyagramları yer almakta olup bu konularla sınırlı kalınmamaktadır.
CS 220 – Veri Yapıları
Veri yapıları ve algoritmalar alanındaki temel kavramlara giriş yapılmaktadır. Analiz araçlarına ve asimptotik gösterime genel bir bakış sunulmaktadır. Özyineleme ve bilgisayar bilimindeki problem çözme uygulamaları ele alınmaktadır. Bağlı listeler, çift yönlü bağlı listeler, yığıtlar, kuyruklar ve öncelik kuyrukları gibi önemli soyut veri tiplerinin tasarımı ve gerçeklenmesi incelenmektedir. Verimli sıralama, arama ve arama ağacı yapıları da tartışılmaktadır.
CS 212 – Ayrık Hesaplama Yapıları I
Ayrık hesaplama yapılarının temel kavramlarına giriş yapılmaktadır. Matematiksel akıl yürütme ve ispat oluşturma için gerekli biçimsel araçlara genel bir bakış sunulmaktadır. Matematiksel tümevarım ve bunun problem çözme, algoritma tasarımı ile program doğrulamadaki kullanımı ayrıntılı biçimde incelenmektedir. Özyineleme, temel sayma teknikleri ve kombinatoryal analiz de ele alınan konular arasındadır.
CS 215 – Ayrık Hesaplama Yapıları II
Kümeler ve çok kümeler üzerinde tanımlanan permütasyon ve kombinasyonlar kullanılarak sayma teknikleri ele alınmaktadır. Temel tanımlar verilerek, genel çizge aileleri tanıtılarak ve temel teoremler sunularak çizge teorisine giriş yapılmaktadır. En kısa yol problemi, ağırlıklı çizgeler, Dijkstra algoritması, yayılan ağaç algoritması ve arama algoritmaları gibi bilinen çizge teorisi konuları incelenmektedir.
EE 221 – Sayısal Sistemler
Bu ders; sayı sistemleri, Boole cebiri, lojik ağlar ve sadeleştirilmesi, kanonik formlar gibi sayısal sistemlerin temel kavramlarını tanıtmaktadır. Kombinasyonel devreler; toplayıcılar, kod çözücüler, kodlayıcılar, çoklayıcılar, flip-floplar, ardışıl devre analizi ve tasarımı, yazmaçlar, sayıcılar, bellek ve programlanabilir lojik konuları işlenmektedir.
EE 223 – Sayısal Sistemler Laboratuvarı
Bu ders; sayı sistemleri, Boole cebiri, lojik ağlar ve sadeleştirilmesi, kanonik formlar gibi sayısal sistemlerin temel kavramlarını içeren deneyleri kapsamaktadır. Kombinasyonel devreler; toplayıcılar, kod çözücüler, kodlayıcılar, çoklayıcılar, flip-floplar, ardışıl devre analizi ve tasarımı, yazmaçlar ve sayıcılar da dersin kapsamındadır.
CS 224 – Bilgisayar Organizasyonu ve Mimarisi
Bu dersin temel amacı, bilgisayarların mimari boyutunu ele almaktır. Başka bir deyişle ders, bilgisayarların makine olarak komutları donanım ve assembly dili düzeyi dahil olmak üzere çeşitli seviyelerde nasıl yürüttüğüne odaklanmaktadır. Öğrenciler; bilgisayarların temel teknolojik yapısını ve evrimini, temel donanım bileşenlerini, komut kümesi mimarilerini (özellikle MIPS ve x86) ve bunların assembly dillerini, kontrol birimi dahil işlemci mikro mimarisini (örnek olarak MIPS ele alınmaktadır), bellek hiyerarşisini, depolama birimlerini ile giriş/çıkış sistemlerini öğrenmektedir.
CS 230 – Veritabanı Sistemlerine Giriş
Bu ders; ilişkisel veri modeli, varlık/ilişki modeli, SQL, sorgu optimizasyonu, bütünlük kısıtlamaları, normalleşme, işlem yönetimi, eşzamanlılık denetimi ve kurtarma sistemleri dahil olmak üzere veritabanı sistemlerinin temellerini tanıtmaktadır.
CS 293 – Yaz Stajı I
Bilgisayar mühendisliğiyle ilgili çözümler sunan bir şirkette veya kurumda yürütülen bu ders, en az 20 iş günü süren bir stajı kapsamaktadır. Okulda edinilen bilgi ve becerilerin gerçek dünyadaki bilgisayar sistemlerine ilişkin mühendislik problemlerini çözmek amacıyla uygulanması hedeflenmektedir. Çok disiplinli ekiplerde çalışırken mesleki ve etik sorumluluğa ilişkin farkındalık kazanılması, bilgiye erişmek için gerekli kaynakları bulma becerisinin geliştirilmesi, bilgisayar biliminde kullanılan çağdaş araç, teknik ve yöntemlerin gözlemlenmesi ve teknik dokümantasyon hazırlanması dersin amaçları arasında yer almaktadır.
CS 301 – Programlama Dili İlkeleri
Bu ders; programlama dili tasarımı, anlambilimi ve gerçeklenmesinin temellerini tanıtmaktadır. Konular arasında işlevsel, zorunlu, mantıksal ve eşzamanlı programlama paradigmalarının sözdizimi ve anlambilimi, sözcüksel ve sözdizimsel çözümleyicilere yönelik araçlar, lambda hesabı, tür sistemleri ve soyut veri tipleri yer almaktadır.
CS 305 – Yazılım Mühendisliği
Bu ders; gereksinim belirleme, tasarım planları ve yöntemleri ile doğrulama ve test dahil olmak üzere profesyonel yazılım sistemleri geliştirmenin temellerini tanıtmaktadır. Konular arasında yazılım tasarım süreç modelleri, yazılım doğrulama, hata ayıklama, kalite güvencesi ve yazılım güvenilirliği tahmini yer almaktadır.
CS 312 – Biçimsel Diller ve Otomat Kuramı
Bilgisayar biliminde kullanılan hesaplama modelleri olan sonlu otomatlar, yığmalı otomatlar ve Turing makinelerine ilişkin temel kavramlara giriş yapılmaktadır. Bu modeller arasındaki hiyerarşik ilişkiler, göreli güçleri ve sınırlılıkları ile çeşitlemeleri incelenmektedir. Hesaplanabilirlik ve hesaplama üzerine soruları çözmek amacıyla kesin tanımlar ve ispatlar kullanma becerileri geliştirilmektedir. Ele alınan konular şunlardır: Sonlu otomatlar, düzenli ifadeler, düzenli diller ve özellikleri, düzenli diller için pompalama önsavı, bağlamdan bağımsız dilbilgisi, yığmalı otomatlar, bağlamdan bağımsız diller için pompalama önsavı, Turing makineleri ve özellikleri, Church-Turing tezi, karar verilemeyen problemler ve indirgenebilirlik.
CS 313 – Algoritmalar
Algoritma tasarımı ve analizinin temel kavramlarına giriş yapılmaktadır. Temel analiz tekniklerine genel bakış: fonksiyonların asimptotik yaklaşımı, toplam sınırları ve yineleme çözümleri. Böl ve yönet, rasgeleleştirme, dinamik programlama, amortisman ve açgözlü algoritmalar gibi tasarım tekniklerine odaklanılarak verimli çözülebilir problemler ele alınmaktadır. Kümeler, diziler, karakter dizileri, çizgeler vb. ile ilgili problemlere uygulanan algoritmalar aracılığıyla çeşitli yeni kavramlar örneklendirilmektedir.
CS 335 – Veritabanı Sistemleri ve Uygulamaları
Dersin amacı, ilişkisel veritabanı sistemlerinin ilkelerini gözden geçirmek ve ardından öğrencilere yoğun uygulama imkânı sunmaktır.
CS 362 – İşletim Sistemleri
Bu ders, öğrencilere standart işletim sistemi yapılarını öğretmektedir. Öğrenciler; eşzamanlılık ve gerçek zamanlı konularla karşılaşmaktadır. Ders, Unix ve Windows gibi yaygın işletim sistemlerinin nasıl tasarlandığını ve gerçeklendiğini ele almaktadır. Dersin kapsamı şu konuları içermektedir: süreçler, iş parçacıkları, süreçler arası iletişim, eşzamanlama (kritik bölgeler, semaforlar, mutex, kilitlenmeler), çizelgeleme, bellek yönetimi, G/Ç sistemleri ve dosya sistemleri.
CS 365 – Sistem Programlama
Bu ders, öğrencilere Unix ortamında programlama ve C programlamanın temellerini tanıtmaktadır. Öğrenciler; Unix bash kabuğu, Unix dosya sistemi, C yapısı ve temel C kütüphane rutinleri gibi konularla karşılaşmaktadır.
CS 393 – Yaz Stajı II
Bilgisayar mühendisliğiyle ilgili çözümler sunan bir şirkette veya kurumda yürütülen bu ders, en az 20 iş günü süren bir stajı kapsamaktadır. Okulda edinilen bilgi ve becerilerin gerçek dünyadaki bilgisayar sistemlerine ilişkin mühendislik problemlerini çözmek amacıyla uygulanması, çok disiplinli ekiplerde çalışırken mesleki ve etik sorumluluğa ilişkin farkındalık kazanılması, bilgiye erişmek için gerekli kaynakları bulma becerisinin geliştirilmesi, bilgisayar biliminde kullanılan çağdaş araç, teknik ve yöntemlerin gözlemlenmesi, staj yerindeki yazılım/sistem geliştirme projelerine etkin biçimde katılım sağlanması ve teknik dokümantasyon hazırlanması dersin amaçları arasında yer almaktadır.
CS 493 – Bilgisayar Mühendisliğinde Proje Yönetimi ve Etik
Bu ders, öğrenciye açık uçlu bir mühendislik problemini çözmek için gerekli arka planı kazandırmaktadır. Bu nedenle, öğrencilerin programları boyunca edindikleri tüm bilgi ve becerileri gerçek bir mühendislik problemini çözmek amacıyla uyguladıkları Bitirme Projesi II dersine hazırlık niteliğinde bir ders olarak değerlendirilebilir.
CS 494 – Bitirme Projesi
Öğrenciler, programları boyunca edindikleri tüm bilgi ve becerilerini gerçek bir mühendislik problemini çözmek amacıyla uygulamaktadır. Ders; proje yönetimi, yazılım tasarımı ve gerçeklenmesi, değerlendirme ve ölçme metodolojisi, teknik yazım ve sunum alanlarında kazanılan becerilerin uygulanmasını kapsamaktadır.
Mühendislik Temel Bilim ve Ortak Dersler
CHEM 101 – Genel Kimya
Bu ders, kimyanın mühendisliğe uygulamasını ve kimyanın temel ilkelerini kapsamaktadır. Ders içeriği; madde ve özellikleri, belirsizlik ve anlamlı rakamlar, boyutsal analiz, atom ve atom teorisi, kimyasal tepkimelerde kütle ilişkileri, sulu çözeltilerdeki tepkimeler, gazlar, termokimya, atomların elektronik yapısı, periyodik tablo, kimyasal bağ, sıvılar ve katılar, çözeltilerin fiziksel özellikleri, termodinamik ve elektrokimyayı kapsamaktadır.
BIO 102 – Biyoloji
Bu ders, canlı organizmaların biyolojik mekanizmalarının mühendislik perspektifinden anlaşılmasını kapsamakta ve mühendislik uzmanlığı gerektiren biyolojik problemler hakkında bilgi sunmaktadır. Ders içeriği; hücre, genetik, evrim, bitki ve hayvan biyolojisi ile ekoloji konuları çerçevesinde Genel Biyoloji'nin temel yönlerini kapsamaktadır.
ACE 101 – Akademik Makale Okuma ve Yazma'ya Giriş
Bu ders, öğrencilerin okuma, dinleme, konuşma ve yazma olmak üzere dört temel dil bileşenine odaklanarak İngilizce dil becerilerini geliştirmelerine yardımcı olmak amacıyla tasarlanmıştır. Ders; öğrencilerin genel İngilizce dil yetkinliklerini ve özellikle ilgili konular çerçevesinde yürütülecek okuma ve yazma becerilerini geliştirmeyi amaçlayan öğrenme etkinliklerini içermektedir.
ACE 103 – İngilizce Sunum Becerileri
Bu ders, öğrencilerin sunum becerilerini ve alana özgü İngilizce dil becerilerini; okuma, dinleme, konuşma ve yazma olmak üzere dört temel dil bileşenine odaklanarak geliştirmelerine yardımcı olmak amacıyla tasarlanmıştır.
MATH 101 – Matematik I (Diferansiyel ve İntegral Hesap)
Trigonometrik fonksiyonlar ve temel özellikleri, ters trigonometrik fonksiyonlar, logaritmik ve üstel fonksiyonlar, tek değişkenli fonksiyonlarda limit ve süreklilik, türev, fonksiyon grafiği çizimi, türev uygulamaları, optimizasyon problemleri, belirli ve belirsiz (Riemann) integral, eğri altındaki alanın hesaplanması, integral teknikleri, alanlar, yüzeyler, hacimler, uygunsuz integraller, diziler ve seriler.
MATH 102 – Matematik II (Diferansiyel ve İntegral Hesap)
Diziler, seriler, yakınsama testleri, üç boyutlu koordinat sistemi, vektörler, nokta ve çapraz çarpımlar, doğrular ve konikler, vektör fonksiyonları ve uzay eğrileri, vektör fonksiyonlarının türevleri ve integralleri, çok değişkenli fonksiyonlar, limit ve süreklilik, kısmi türev, yönlü türev ve gradyan vektörü, yerel ve mutlak ekstremum değerlerinin bulunması ve sınıflandırılması, Lagrange çarpanları yöntemi, çift ve üçlü integraller ile uygulamaları, vektör alanları, Green ve Stokes teoremleri, rotasyonel ve diverjans, eğri ve yüzey integralleri, Diverjans teoremi.
PHYS 101 & PHYL 101 – Fizik I ve Fizik I Laboratuvarı
Bu ders; Newton mekaniği, kinematik, dinamik, kuvvetler, iş, kinetik ve potansiyel enerji, momentum, dairesel ve dönme hareketi ile yerçekimi gibi konuları kapsamaktadır.
PHYS 102 & PHYL 102 – Fizik II ve Fizik II Laboratuvarı
Bu ders; elektromanyetizma ve temel elektrik devreleri, elektrik alanı, elektrik potansiyeli, kapasitans, direnç, doğru akım ve alternatif akım devreleri, manyetik alanlar ve manyetik kuvvetler, elektromanyetik endüksiyon, endüktans ve elektromanyetik dalgalar deneylerini kapsamaktadır.
MATH 210 – Doğrusal Cebir
Doğrusal cebirin temel kavramları, doğrusal denklem sistemlerinin çözümleri, vektörler ve matrisler, vektör alt uzayları, doğrusal bağımsızlık ve taban, determinantlar, özdeğer ve özvektörler, diğer konular ve uygulamalar.
MATH 220 – Diferansiyel Denklemler
Birinci mertebe diferansiyel denklemlerin incelenmesi, varlık ve teklik teoremi; çeşitli diferansiyel denklemlerin çözümleri ve uygulamaları; değişken katsayılı birinci mertebe ve sabit katsayılı yüksek mertebe doğrusal diferansiyel denklemler; sabit katsayılı doğrusal denklemler için temel teoremler; belirsiz katsayılar ve operatör yöntemi; parametrelerin değişimi yöntemi; mertebe düşürme yöntemi; değişken dönüşümü yöntemi; Euler-Cauchy diferansiyel denklemi; yüksek mertebe diferansiyel denklemlerle başlangıç değer problemlerinin tam çözümü; Laplace yöntemi; doğrusal diferansiyel denklem sistemleri.
ENEC 200 – Mühendislik Ekonomisi
Bu ders, öğrencileri üretim sistemlerinin modellenmesi ve analizi konusunda bilgilendirmek amacıyla tasarlanmıştır. Üretim sistemlerinin niteliği ve bağlamı ile bir sistemin yaşam döngüsü boyunca çeşitli aşamalardaki temel karar alanları anlaşıldıktan sonra, ders özellikle tasarım aşamasına ilişkin stratejik ve uzun vadeli konulara odaklanmaktadır. Modern üretim ortamlarında karşılaşılan çeşitli tasarımlar, çeşitli sayısal yöntemler ve modelleme yaklaşımlarıyla ele alınacaktır.
MATH 211 – Mühendislik için Olasılık ve İstatistik
Verinin grafiksel gösterimleri; olasılık aksiyomları; Bayes teoremi; kesikli dağılımlar (geometrik, binom, Poisson); sürekli dağılımlar (normal, üstel, Weibull); nokta ve aralık tahmini; olasılık fonksiyonları; bir veya iki popülasyon oranları, ortalamaları ve varyansları için hipotez testleri.
MATH 330 – Mühendisler için Sayısal Analiz
Doğrusal ve doğrusal olmayan denklemlerin ve denklem sistemlerinin çözümü, enterpolasyon ve polinom yaklaşımı, sayısal türev ve integral, diferansiyel denklemlerin çözümü, eğri uydurma ve sayısal optimizasyon.
ENWH 401 – İşçi Sağlığı ve İş Güvenliği I
Ders kapsamında öğrencilerin iş sağlığı ve güvenliğine ilişkin farkındalıkları, iş yaşamındaki görev, sorumluluk ve yasal hakları öğretilmekte ve kavratılmaktadır. Bunun yanı sıra sağlıklı ve güvenli bir ortamda çalışabilmek için farkındalık ve iş güvenliği kültürü kazandırılması hedeflenmektedir. 6331 sayılı İş Sağlığı ve Güvenliği Kanunu, 4857 sayılı İş Kanunu ve 5510 sayılı Sosyal Sigortalar ve Genel Sağlık Sigortası Kanunu dersin kapsamındadır.
ENWH 402 – İşçi Sağlığı ve İş Güvenliği II
Ders kapsamında öğrencilerin iş sağlığı ve güvenliğine ilişkin farkındalıkları, iş yaşamındaki görev, sorumluluk ve yasal hakları öğretilmekte ve kavratılmaktadır. Bunun yanı sıra sağlıklı ve güvenli bir ortamda çalışabilmek için farkındalık ve iş güvenliği kültürü kazandırılması hedeflenmektedir. 6331 sayılı İş Sağlığı ve Güvenliği Kanunu, 4857 sayılı İş Kanunu ve 5510 sayılı Sosyal Sigortalar ve Genel Sağlık Sigortası Kanunu dersin kapsamındadır.
HIST 101 – Atatürk İlkeleri ve İnkılap Tarihi I
Bu derste, Fransız ve Sanayi Devrimleri ile başlayan süreçten itibaren geç Osmanlı ve erken Cumhuriyet dönemlerinde yaşanan önemli gelişmeler, küresel gelişmeler bağlamında ele alınmaktadır.
HIST 102 – Atatürk İlkeleri ve İnkılap Tarihi II
Bu derste, Cumhuriyetin kuruluşundan bu yana yaşanan siyasi, ekonomik, sosyal ve kültürel gelişmeler, küresel gelişmeler bağlamında ele alınmaktadır.
Bilgisayar Mühendisliği Seçmeli Dersleri
ENCS 401 – Web Programlama
Temel web teknolojileri. Etkileşimli içerik için web sayfaları programlama. Sunucuda bulunan veritabanlarıyla dinamik biçimde etkileşime giren web sayfaları tasarlama. Verilere (arama sonuçları, görseller, videolar, haritalar vb.) dinamik erişim sağlamak amacıyla sunuculara bağlanan web sayfaları oluşturma.
ENCS 402 – Çizge Kuramı
Temel kavramlar ve tanımlar: çizge, yol, derece, ağaç, alt çizgeler, çizge izomorfizmi, Euler çizgeleri, Hamilton çizgeleri, ağaçlar, düzlemsel çizgeler, Kuratowski teoremi, köşe renklendirme, 4-renk teoremi, kromatik polinomlar, yönlü çizgeler, yönlü Euler çizgeleri, turnuvalar, rastgele çizgeler, Turán teoremi ve bilgisayar bilimindeki bazı problemlere çözüm örnekleri.
CS 402 – Derleyici Tasarımı
Bu ders, derleyicilerin mantıksal tasarımını ele almaktadır. İşlenecek konular şunlardır: sözcüksel çözümleyici, ayrıştırıcılar (yukarıdan aşağıya, aşağıdan yukarıya), anlamsal çözümleyici, ara kod üretimi ve kod optimizasyonu.
CS 403 – Mobil Cihazlar için Yazılım Geliştirme
Mobil bilgi sistemleri ve uygulamaları. Kablosuz bilgi sistemi zorlukları ve mimarileri. Mobil uygulama protokolleri. İstemci taraflı mobil uygulama geliştirme (WML, VXML, Java, J2ME, J2EE, .NETCF, C#). Mobil uygulama örnek çalışmaları.
CS 404 – Dağıtık Hesaplama
Bu ders, dağıtık sistemlerin gerçeklenmesine ilişkin temelleri sunmaktadır. Konular arasında dağıtık sistem mimarileri ve modelleri, süreçler arası iletişim, eşzamanlama, kaynak paylaşımı, uzaktan çalıştırma, hata toleransı ve sistem performansı yer almaktadır.
CS 407 – Paralel Programlama
Bu ders; paralel algoritma tasarımının ilkeleri, OpenMP ve MPI programlama modelleri, mesaj geçişi ve paralel algoritmaların değerlendirilmesi dahil olmak üzere paralel programlamanın temellerini tanıtmaktadır.
CS 411 – Çizge Kuramı
Çizge kuramının temel kavramları: yollar, döngüler, dereceler vb.; eşleştirme, örtme ve paketleme; bağlantılılık; düzlemsel çizgeler; renklendirme; eksternal çizge kuramı; Turán teoremi; çizgeler için Ramsey kuramı; Hamilton döngüleri; rastgele çizgeler.
CS 412 – Kombinatoryal Optimizasyon
Doğrusal programlama, simpleks algoritması, dualite, birincil-ikincil algoritma, maksimum akış ve en kısa yol problemleri, eşleştirme, yayılan ağaçlar ve matroidler, tam sayı doğrusal programlama, NP-tamlık, yaklaşım algoritmalarına giriş, dal ve sınır yöntemi ve yerel arama.
CS 413 – Yaklaşım Algoritmaları
Algoritmalara ve karmaşıklığa giriş, açgözlü yaklaşım algoritmaları, küme örtme, k-merkez, Steiner ağacı, metrik GSP, geri besleme köşe kümesi, polinom zamanlı yaklaşım şemaları, sırt çantası problemi, kutu paketleme, doğrusal programlama, yuvarlama, rasgelee yuvarlama, birincil-ikincil yöntem, Lagrange gevşetme tekniği, yinelemeli yuvarlama, yinelemeli rasgeleleştirilmiş yuvarlama, kesimler ve metrikler, YDP tabanlı yaklaşım algoritmalarına giriş.
CS 414 – İleri Algoritmalar
Optimizasyon problemleri, teknikler ve algoritmalar hakkındaki temel kavramlara giriş. Ele alınan konular arasında çizgeler için optimizasyon problemleri ve algoritmaları, doğrusal programlama, simpleks algoritması, dualite, tam sayı programlama, toplam modülerlik, NP-tamlık, yaklaşım algoritmaları, dal ve sınır algoritmaları, yerel arama teknikleri (tepe tırmanma, benzetilmiş tavlama, yinelemeli yerel arama vb.) ve global arama teknikleri (karınca kolonisi optimizasyonu, parçacık sürü optimizasyonu, evrimsel algoritmalar) yer almaktadır.
CS 415 – Uyarlanabilir Optimizasyon
Bu dersin amacı, öğrencilerin doğrusal, doğrusal olmayan ve karma tam sayılı programlama problemlerini çözmek üzere gelişmiş uyarlanabilir arama yöntemleri tasarlama ve uygulama becerilerini geliştirmektir. Bu amaca ulaşmak için öğrenciler; meta-sezgisel optimizasyon yöntemlerinin ayrıntılı analizini ve bu tekniklerin nasıl ve ne zaman işe yaradığını, birbirleriyle ve daha geleneksel yaklaşımlarla karşılaştırmalı üstünlüklerini dersler, literatürden makaleler ve ders projesi aracılığıyla öğreneceklerdir. Konular arasında uyarlanabilir aramaya giriş, benzetilmiş tavlama, genetik algoritma, tabu arama, karınca kolonisi yöntemi, parçacık sürü optimizasyonu ve kısıt işlemeye giriş yer almaktadır.
CS 422 – Mikro İşlemciler
Temel mimarileri ve işleyişleri dahil olmak üzere mikro işlemcilere giriş. Veriyolu organizasyonu, adresleme modları, komut kümesi, saat ve zamanlama analizi, kesme işleme, seri ve paralel iletişim, bellek. Assembly dili programlama.
CS 423 – Robotiğe Giriş
Mobil robot tasarımı, inşası ve programlanmasına giriş. Sensörler, efektörler, hareket, kontrol mimarileri, yol planlama, yerelleştirme ve öğrenme.
CS 424 – Gömülü Sistem Tasarımı
Dersin amacı, Harvard + RISC/CISC mimarili mikrodenetleyiciler kavramını ve kesimler, zamanlayıcılar, LCD ve LED ekranlar, tuş takımları, A/D dönüştürücüler, döner kodlayıcılar, adım motorları, seri ve paralel iletişim arayüzleme gibi tipik uygulamaları içeren gömülü hesaplama sistemlerinin tasarımını tanıtmaktır. Tasarım uygulamaları, yaygın olarak kullanılan tipik 8-bit gömülü mikrodenetleyici birimi AT89C51 üzerinde ele alınmaktadır. Dersin kapsamı, C ve CISC assembly programlama ile uygulanan basit ve özgün MCS-51 gömülü sistem tasarımıdır. Dersin tasarım/kuram dağılımı yaklaşık olarak %60/%40 oranındadır.
CS 433 / CS 434 – Bilgisayar Mühendisliğinde Bağımsız Çalışma I / II
Bu dersin temel amacı, öğrencilere bilgisayar biliminin özel bir konusunda derinlemesine bağımsız araştırma yapma fırsatı sunmaktır. Bu ders, halihazırda Bilgisayar Mühendisliği lisans müfredatının bir parçası olmayan çalışma alanlarını araştırma imkânı sağlamaktadır. Tüm uygun öğrenciler, bilgisayar biliminin özel alanlarındaki bilgi birikimlerini genişletmek amacıyla bağımsız çalışmaya katılmayı değerlendirmeleri için teşvik edilmektedir. Uygunluk kriterleri, bölüm tarafından belirlenen bir not ortalaması eşiğinden oluşmaktadır.
CS 441 – Yapay Zeka
Bilgi temsili. Arama algoritmaları ve sezgisel programlama. Mantık ve mantık programlama. Problem çözme, oyunlar ve bulmacalar, uzman sistemler, görme, makine öğrenmesi, doğal dil anlama ve yapay sinir ağları.
CS 442 – Yapay Sinir Ağları
Yapay sinir ağlarına giriş. Biyolojik bilgi işleme. Algılayıcılar, geri yayılım, Hopfield ve Boltzmann ağları, öz-organize haritalar, uyarlanabilir rezonans teorisi ve pekiştirmeli öğrenme gibi en önemli ağlara genel bakış.
CS 444 – Veri Madenciliği
Büyük veri kümelerinden bilgi çıkarımı. Veri hazırlama, görev tanımlama, özellik seçimi. Birliktelik kuralı madenciliği. Sınıflandırma, tahmin ve kümeleme. Değerlendirme, doğrulama ve ölçeklenebilirlik. Uzamsal ve dizi madenciliği. Veri madenciliği uygulamaları.
CS 446 – Örüntü Tanıma
Bayes karar kuramı. Parametrik ve parametrik olmayan yöntemler, özellik çıkarımı, karar ağaçları, denetimsiz öğrenme ve kümeleme, destek vektör makineleri, yapay sinir ağları, gizli Markov modelleri ve pekiştirmeli öğrenme.
CS 448 – Doğal Dil Hesaplama
Bu ders; konuşma tanıma, bilgi erişimi, makine çevirisi gibi doğal dil hesaplamanın uygulamalarına giriş sunmaktadır. Konular arasında sözcük türü etiketleme, bağlamdan bağımsız dilbilgisi, entropi, gizli Markov modelleri ve derlem analizi yer almaktadır.
CS 451 – Bilgisayar Grafiği
Bu ders, bilgisayar grafiğinin temel kavramlarını ve tekniklerini tanıtmaktadır. Konular arasında görüntü işleme, tarama dönüştürme algoritmaları, animasyon sistemleri, afin dönüşümler, eğri ve yüzeylerin geometrik modellemesi, doku eşleştirme ve ışın izleme yer almaktadır.
CS 452 – İnsan-Bilgisayar Etkileşimi
Bu ders, kullanıcı arayüzleri tasarlama, prototipleme ve değerlendirmenin temel kavramlarını tanıtmaktadır. Konular arasında kullanıcı arayüzü tasarım kuralları, etkileşim tasarımı, hızlı prototipleme teknikleri, değerlendirme metodolojileri ve çok kipli arayüzler yer almaktadır.
CS 453 – Dijital Görüntü İşleme
Dijital görüntü işlemenin temel teori ve metodolojileri. Görüntü temsili, görüntü oluşturma, görüntü iyileştirme, yoğunluk dönüşümleri, Fourier dönüşümü, görüntü örnekleme, görüntü restorasyon, morfolojik işlemler, görüntü filtreleme, kenar tespiti, görüntü bölütleme ve dijital video işlemenin temelleri.
CS 455 – Makine Öğrenmesi
Veriden örüntü öğrenmenin temel kavramlarına giriş. Ayrımcı ve üretken öğrenme paradigmalarına genel bakış. Doğrusal regresyondan topluluk yöntemlerine ve yapay sinir ağlarına kadar uzanan makine öğrenmesi yöntemlerinin ele alınması. Denetimli ve denetimsiz öğrenme tekniklerinin karşılaştırılması.
CS 457 – Veri Bilimine Giriş
Bu dersin amacı, istatistiksel öğrenme yöntemleri kullanılarak veri bilimi ve veri analizini tanıtmaktır. Klasik istatistiksel yöntemler, hesaplama yöntemleri ve makine öğrenmesi, bilgisayar bilimindeki güncel gelişmelerle bir arada ele alınacaktır. Dersin bir diğer amacı, öğrencilere veri analizi alanındaki analitik yöntemleri örnek veri kümeleri üzerinde uygulayarak veri analizi yöntemlerini kullanma deneyimi kazandırmaktır.
CS 463 – Bilgisayar Ağları
Bu ders, bilgisayar ağlarının temel kavramlarını tanıtmaktadır. Devre anahtarlama, paket anahtarlama, OSI ve TCP/IP mimarileri. Uygulama Katmanı (HTTP, SMTP, FTP, DNS vb.), Taşıma Katmanı (TCP, UDP), Akış ve Tıkanıklık Denetimi (Kayan Pencere Protokolleri), Ağ Katmanı (IPv4, IPv6, IP parçalama, bağlantı durumu ve uzaklık vektörü yönlendirme algoritmaları, OSPF, RIP, BGP), Veri Bağlantısı Katmanı (Bölümlü ALOHA, TDMA, FDMA, CSMA/CD gibi ortam erişim protokolleri, hata düzeltme).
CS 476 – Kablosuz Ağlar
Bu ders aşağıdaki konuları kapsamaktadır: Kablosuz geçici ağlar ve altyapı ağları, kablosuz geçici ağ MAC protokolleri (gizli terminal, açık terminal sorunları, IEEE 802.11), kablosuz geçici ağ yönlendirme protokolleri, Kablosuz Algılayıcı Ağlarına (KAA) giriş, topoloji denetimi, KAA'larda yönlendirme ve MAC katmanı, hizmet kalitesi.
CS 464 – Bulut Bilişim
Bu ders, bulut bilişimin temel kavramlarını ele almaktadır. Konular arasında bulut ve veri merkezi dosya sistemleri, sanallaştırma, güvenlik ve gizlilik, MapReduce ile Amazon Web Hizmetleri ve etkileşimli web tabanlı uygulamalar yer almaktadır.
CS 478 – Dağıtık Veritabanı Sistemleri
Bu dersin temel amacı, öğrencilere genel olarak dağıtık veritabanı sistemlerinin ve özel olarak NoSQL veritabanı sistemlerinin ilkelerini tanıtmaktır. Bu ders, dağıtık veritabanı yönetim sistemleri kullanılarak dağıtık veri yönetimine ilişkin kavram ve teknikleri ele almaktadır. Derste NoSQL veritabanlarına ağırlık verilmektedir.
CS 471 – Bilgisayar Güvenliği
Bu ders aşağıdaki konuları kapsamaktadır: Kriptografinin temel kavramları, erişim denetimi, yazılım güvenliği ve kötü amaçlı kod, güvenilir sistemler, ağ ve kablosuz güvenlik.
CS 472 – Kriptografi
Bu ders aşağıdaki konuları kapsamaktadır: Blok şifreler (DES, AES, üçlü DES), akış şifreler, kriptografik özet fonksiyonları (MD5, SHA), açık anahtar şifreleme, dijital imzalar, anahtar dağıtım protokolleri, anahtar yönetimi, kimlik doğrulama sistemleri, güçlü parola protokolleri, Kerberos, İnternet kriptografisi, IPsec, SSL/TLS, e-posta güvenliği ve güvenlik duvarları.
CS 474 – Bilgi ve Kodlama Kuramı
Bu ders; kaynak kodlama, benzersiz çözümlenebilir kodlar, anlık kodlar, Kraft ve McMillan eşitsizlikleri, optimal kodlar, ikili Huffman kodları, kaynak genişletme, entropi ve bilgi, Shannon teoremi, bilgi kanalları, ikili simetrik kanallar, güvenilmez kanal kullanımı ve hata düzelten kodları kapsamaktadır. Doğrusal ve doğrusal olmayan kod örnekleri de sunulmaktadır.
CS 483 – Hesaplamalı Biyolojiye Giriş
Bu ders, hesaplamalı biyolojiyi tanıtmaktadır. Konular; DNA dizi birleştirme, dizi hizalama, RNA ve protein katlanması, motif keşfi, gizli Markov modellerinin uygulamaları, gen ifadesi analizi ve filogenetik ağaçları kapsamaktadır.