Lisans Dersleri

Lisans Dersleri

Birinci Sınıf

Ders Kodu Ders Adı Tanım Önkoşul(lar)
CENG 111 Bilgisayar Mühendisliği Kavramları

Bölüm hakkında ve genel olarak Bilgisayar Mühendisliği ile ilgili bilgi vermeyi ve tanıtmayı amaçlayan bir oryantasyon eğitimi. Fakültenin tanıtımı ve çeşitli aktiviteler hakkında bilgi verilmesi. Üniversite içindeki ve diğer çevre kuruluş ve firmalardaki bilgisayar merkezlerinin gezilerek incelenmesi. Temel bilgisayar terimleri: terminoloji, sistem bileşenleri and işleyişi.Internet, Internet Servis Yazılımları, www, e-mail, Windows-Unix-Dos İşletim Sistemleri, Java ile kodlama, Masaüstü Yazılımları.

Konu
Bilgisayar mühendisliğine giriş
Veri depolama
Veri işleme
İşletim sistemleri
Bilgisayar ağları ve internet
Algoritmalar
Algoritmalar (devam)
Programlama dilleri
Yazılım mühendisliği
Veri yapıları
Dosya yapıları
Veri tabanı sistemleri
Yapay zeka
Genel değerlendirme
CENG 112 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.

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
CENG 113
CENG 113 Programlamaya Giriş

Bilgisayar programlamanın temelleri: sıra, seçim, tekrar, imla, derleme, test etme ve düzeltme, prosedürler, parametreler, dizinler, nesne, yukarıdan aşağı yapılanmış tasarım, açılım ve stil. Bilgisayarların kullanılmasıyla büyük çaplı problemlerin çözümüne ilk adım. Algoritmalar ve bunlarla ilgili çeşitli terminolojilerin temelleri.

Konu
Programlamanın Temellerine Giriş – Öğretici Başlangıç – I
Programlamanın Temellerine Giriş – Öğretici Başlangıç – II
Tip, operatör ve ekspresyonlar
Program akış kontrolü
Fonksiyonlar
Program Yapıları
Ders Değerlendirme ve Gözden Geçirme
Diziler ve Katarlar
İşaretleyiciler
İşaretleyiciler ve Diziler
Özçağrılı Fonksiyonlar
Dinamik Bellek Tahsisi
Ders Değerlendirme ve Tekrar
Giriş Çıkış Fonksiyonları
CENG 114 Olasılık ve İstatistik

Elementer olasılık teorisi, koşullu olasılık ve bağımsız olaylar, rassal değişkenler, dağılım fonksiyonları, bileşke ve koşullu dağılımlar, büyük sayılar kanunu, merkezi limit teoremi, parametre tahminlemesi, güven aralıkları, regresyon ve varyans analizini de içeren hipotez testleri, simulasyon.

Konu
Populasyon ve değişkenler. Frekans tabloları, yer ölçütleri
Dağılış ölçütleri, örnek ve populasyon.
Olasılık
Şans değişkenleri ve beklenen değer kavramı.
Kesikli şans değişkenleri: Uniform, Bernoulli, binom, geometrik, negatif binom ve Poisson
Sürekli şans değişkenleri: Uniform, Normal, gamma, üssel, weibull dağılışları.
Ara sınav
Tahminleme
Hipotez kontrolları
Hipotez kontrolları: Büyük örnek testleri (z testleri)
Hipotez kontrolları: Küçük örnek testleri
Hipotez kontrolları : X^2 Testleri
Linear Regression and Correlation
Değerlendirme
CENG 115 Ayrık Yapılar

Kümeler ve Fonksiyonlar, Temeller: Algoritmalar, Tam Sayılar, Matrisler, İspat Metotları, Matematiksel Tümevarım, Rekursif Tanımlamalar, ve Algoritmalar, Program Doğruluğu, Saymanın Temelleri, Güvercin Yuvası Prensibi, Permütasyonlar ve Kombinasyonlar, Rekürans Bağıntısı, Böl-Yönet / İçer-Dışla Bağıntıları, n-li Bağıntılar, Bağıntı Gösterimleri ve Kapanımları, Denklik Bağıntısı, Kısmi Düzenleme, Çizge Terminolojisi, Çizge Gösterimi ve Çizgede Eşbiçim, Bağlantı, Euler ve Hamiltonian Yollar, En Kısa Yol Problemleri, Düzlem Çizge ve Çizge Boyama, Ağaç Gezme, Ağaç Yapıları ve Sıralama, Spanning Ağaçlar, Minimum Spanning Ağaçlar, Boolean Fonksiyonlar ve Gösterimleri, Minimizasyon, Hesaplama Elementleri, Karmaşa Sınıfları, P-NP-NP Tam Karmaşa Sınıfları, Uzay Karmaşası, Sayı Dönüşümü, Hesapsal Mantık, Maksimum ve Minimum, Kodlama ve İnşa.

Konu
Mantık
Önermeler
İspat yöntemleri
Kümeler ve Fonksiyonlar
Seriler ve Toplamlar
Algoritmalar ve Karmaşıklık Analizi
Sayılar, Bölünebilme ve Matrisler
Dönem arası sınav
Tümevarım ve özyineleme
Sayma teknikleri, permütasyon, kombinasyon
Ayrık olasılık teorisi
Yinelemeli fonksiyonlar
İlişkiler
Çizgeler

İkinci Sınıf

Ders Kodu Ders Adı Tanım Önkoşul(lar)
CENG 211 Programlamanın Temelleri

Nesne temelli programlama yaklaşımı, metotlar, sınıflar, karmaşıklığı gizleme ve kalıtım; temel algoritmalar, sıralama ve arama, kullanıcı tanımlı sınıflar, kendini çağırma kavramı ile faydaları ve getirdiği problemler, istisna yönetimi, uygulama program arayüzleri kullanımı basit grafik programlama, yazılım tasarım kavramı.

Konu
Giriş
Kontrol Yapıları
Sınıflar ve metotlar
Nesneler ve metotlar
Kalıtım
Çokbiçimlilik
Vize
Arayüzler
Ayrıksı Durum Kotarımı
Akışlar ve Dosya G/Ç
Özyineleme
Dinamik Veri Yapıları
Problem Çözümleri
Dönemin değerlendirilmesi
CENG 113
CENG 212 Programlama Dilleri Kavramı

Programlama dillerinde imla, mantıksal ve içeriksel yöntemler. Veri saklanması ve kontrolü. Tanımlayıcıların ilintilendirilmesi. Prosedürel tanımlama ve özetleme. Tanımlar, sıralamalar ve eşzamanlı süreçler. Tipler. Formal semantikler. Günümüzde kullanılan programlama dillerinin belli başlı özellikleri.

Konu
Giriş
Programlama dili sözdizimi
İsimler, etki alanları ve bağlantılar
Kontrol akışı yapıları
İterasyon ve özyineleme
Veri tipleri
Altyordamlar ve kontrol soyutlaması
Parametre geçiş yöntemleri
Veri soyutlaması ve nesne-tabanlı yaklaşım-1
Veri soyutlaması ve nesne-tabanlı yaklaşım-2
Fonksiyonel programlama-1
Fonksiyonel programlama-2
Mantık Programlama-1
Mantık Programlama-2
CENG 213 İşlem Teorisi

Soyut automata, ağırlık olarak sonlu durum makineleri; push-down automata; ve Turing makineleri. Formal diller, özellikle içerik-bağımsız diller. Automata ve diller arasındaki ilişkiler. Hesaplanabilirlik ve çözülebilirlik.

Konu
Giriş.
Kümeler, bağıntılar ve fonksiyonlar.
Temel ispat teknikleri, kapsanımlar (closures).
Diller.
Deterministik ve deterministik olmayan sonlu otomata.
Düzenli ifadeler.
Bağlamdan bağımsız gramerler.
Pushdown otomata.
Turing makineleri.
Karar verilebilirlik.
Chomsky hiyerarşisi.
Hesaba dayalı karmaşıklık.
NP-tamlık.
P’ye karşı NP’nin durumu.
CENG 214 Mantık Tasarımı

Bilgisayar mimarisine giriş. Sayı sistemleri. Bool Cebiri. Mantık kapıları ve flip-floplar. Kombinasyonel ve sıralı devre tasarımı. Dizgeler, sayaçlar. Bus Transferi. RAM, ROM üniteleri. Komut işletimi ve devresel kontrol.

Konu
İkili mantık ve Kapılar
Boolean Cebir, Standart Formlar
Harita basitlestirme ve degistirme
NAND, NOR, XOR kapıları ve entegre devreler
Analiz ve tasarım prosedürleri
Aritmetik devreler, dekoder ve enkoder
Multiplekser, standart grafik sembolleri
Latchler ve flip-floplar
Analiz süreci, D flip-floplariyla tasarım, JK flip-floplarıyla tasarım
Yazmaçlar, kaydırma yazmaçları, paralel yüklü kaydırma yazmaçları
Ripple sayacı, senkron ikili sayaç, diğer senkron sayaçlar
RAM, bellek çözümlemesi, hata tespiti ve düzeltme, ROM
PLD, PLA ve PAL
Yazmaç transferi, algoritmik durum makineleri, mikroislemler, bus transferi, islemci unitesi
CENG 216 Sayısal Hesaplama

Matris çevrimiyle ilgili sayısal teknikleri içeren uygulamalar ve araştırmalar, lineer denklem sistemleri ve optimizasyon, sonlu fark ifadeleri, interpolasyon ve yaklaşık değer bulma, sayısal diferansiyel ve integrasyon. Bu yöntemlere ilişkin algoritmalar yardımıyla hız, verimlilik ve uygulanabilirliklerinin incelenmesi. Çeşitli nümerik metodların ve kuralların, bilgisayarlardaki programlama dillerinde ve etkin programlama tekniklerinden de yararlanılarak uygulamalarının yapılması.

Konu
Nümerik hesaplama yöntemlerine giriş
Nümerik hesaplamada hatalar
Taylor serisi
Taylor serisi
Sonlu fark hesabı, ileriye ve geriye doğru fark hesapları
Sonlu fark hesabı, merkezi fark hesapları, polinomlar
İçdeğerbiçim ve dışdeğerbiçim
Denklem kökü bulma yöntemleri, Newton yöntemi
Denklem kökü bulma yöntemleri, Secant yöntemi
Eşzamanlı lineer cebirsel denklem çözümleri, temel dizey işlemleri
Dizey evritimi
En küçük kareler eğri uydurma
Fonksiyonel yaklaştırma
Sayısal entegrasyon

Üçüncü Sınıf

Ders Kodu Ders Adı Tanım Önkoşul(lar)
CENG 311 Bilgisayar Mimarisi

Temel bilgisayar organizasyonu ve tasarımı. Komut arama, ayırma ve işletme. CPU organizasyonu. Devresel ve mikroprogramlı kontrol mimarisi. Aritmetik algoritmalar ve aritmetik işlemci tasarımı. Girdi-Çıktı düzenlemesi. Bellek düzenlemesi, sanal bellekler, ön bellekler ve bunların yönetimi. Makine dili ve assembly dili. Komut yapıları ve adresleme modları. Çeşitli bilgisayar mimarilerinin incelenmesi: Von Neumann, Paralel ve RISC. Performans arttırımı için kullanılan Pipelining ve diğer ileri düzey teknikler. Paralel hesaplamaya, ara bağlantı ağlarına ve çoklu işlemcilere giriş.

Konu
Bilgisayar mimarisine ve temel bilgisayar organizasyonuna giriş
Bilgisayar aritmetiği (Lab: VHDL dilinin temelleri)
MIPS mimarisi ve Assembly (Lab: VHDL programlama ve simülasyon)
Özel ve genel amaçlı veriyolu tasarımı (Lab: Modelsim üzerinde veriyolu implementasyonu – 1)
VHDL programlama dili (Lab: Modelsim üzerinde veriyolu implementasyonu – 2)
Pabs mikroişlemcisinin tasarımı – 1 (Lab: Pabs dahili ünitelerinin implementasyonu)
Pabs mikroişlemcisinin tasarımı – 2 (Lab: Pabs ünitelerinin entegrasyonu ve mikroişlemcinin testi)
Çevre birimlerinin tasarımı, kesme mekanizmaları (Lab: Pabs kesme mekanizması
Pipelining, Pabs Assembly (Lab: Pabs için assembler ve linker
8086 tabanlı bilgisayar tasarımı (Lab: 8086 assembly programlama – 1)
8086 assembly programlama – 1 (Lab: 8086 assembly programlama – 2)
8086 assembly programlama – 2 (Lab: 8086 assembly programlama – 3)
“Segmentation”, “Paging”, Çalışma modları: “real”, “protected”, “virtual”.
Memory organizasyonu (Lab: İşletim sistemi tasarımının temelleri)
CENG 214
CENG 312 Bilgisayar Ağları

Bilgisayar ağlarına genel bakış: ağ mimarisi ve ISO-OSI modeli. Devre anahtarlama, paket anahtarlama. Ağ topoğrafyası: Bağlantı analizleri, erteleme analizi ve omurga analizi. Fiziksel katman: iletme ve çoklandırma, terminal idaresi, hatalar. Veri bağlantı katmanı ve bağlantı protokolleri. Ağ katmanı: yönlendirme ve tıkanıklık, uydu ve paket radyo ağları, yerel ağlar. İletim ve oturum katmanı. Sunum katmanı. Uygulama katmanı. Ethernet, token ring ağları, protokoller, bazı ağların ve protokollerinin tanımlanması, ağ planlaması ve idaresi.

Konu
Chapter 1 Giriş Chapter 2 Network Modelleri
Chapter 3 Veri ve sinyaller
Chapter 6 Multiplexing & Spreading
Chapter 7 Transmission Media
Chap 9 : Using Telephone and Cable for Data Transmission + Chap 13: Wired LANs: Ethernet
Chap 14: Wireless LANs
Chap 18: Virtual Circuit Networks: Frame Relay & ATM
MIDTERM
Chap 19: Network Layer: Logical Addressing
Chap 23: Process to Process Delivery:UDP,TCP,SCTP
Chap 25: Domain Name System
Chap 26: Remote Logging, Electronic Mail, File Transfer
Chap 27: WWW and HTTP
Özet
CENG 313 İşletim Sistemleri

İşletim sistemlerinin sınıfları ve yapıları. Muhafaza ortamları, bellek yönetimi ve dinamik saklama stratejileri. Düzenleme algoritmaları. I/O ve interrupt yapıları. Koruma ve güvenlik. Kuyruk ve ağ kontrolü modelleri. Sistem yazılımı: Derleyiciler, yükleyiciler, assembler’ lar, çeviriciler ve programlama ortamları. Mevcut işletim sistemlerinin incelenmesi ve belli başlı işletim sistemi modüllerinin benzerlerinin oluşturulması.

Konu
Bilgisayar Sistemleri ve İşletim Sistemlerine genel bir bakış, temel kavramlar
Süreçler ve Süreç Yönetimi
Thread kavramı, işlemci kaynak verimliliği ve yönetim algoritmaları
Asenkron eş zamanlı süreçler arası iletişim
Asenkron eş zamanlı süreçlerin senkronizasyon araçları
İşletim sistemlerinde kilitlenme “deadlock” kavramı
Ara Sınav
Bellek Yönetimi
Sanal Bellek Yönetimi
Tek İşlemcili Sistemlerde Scheduling
Çok işlemcili Bilgisayarlar ve Scheduling
Dosya Sistemleri
Girdi/Çıktı Sistemleri
Disk Yönetimi
CENG 314 Gömülü Bilgisayar Sistemleri

Gömülü sistemler, gömülü sistemlere özel problemler ve çeşitli konular; bilgisayar mühendisliğindeki rolü; mikrodenetleyiciler, gömülü yazılım; gerçek-zamanlı sistemler, planlama ve zamanlama problemleri; test ve performans; güvenilirlik; düşük güçte hesaplama, enerji kaynakları, kaçaklar; tasarım metodolojileri, yazılım geliştirme ortamları; süreklilik ve güncelleme problemleri; ağa bağlı gömülü sistemler; FPGA tasarımı.

Konu
Gömülü Sistem Tasarımına Giriş
Bilgisayar Mimarisi Konseptlerinin Gözden Geçirilmesi
FGPA Tasarımı ve VHDL Programlama Dili
Özel ve Genel Amaçlı Veriyolu ve Mikroişlemci Tasarımı
Mikrodenetleyicilerle Gömülü Sistem Tasarımı
LAB – I : Arduino ile basit bir uygulama
Geribeslemeli Kontrol Sistemlerinin Temelleri
Veri Toplama ve Sayısal İşaret İşleme
LAB – II : Motor hız kontrolü için gerekli devrenin ve test ortamının kurulması
Gerçek-Zamanlı Sistemler
Gerçek-Zamanlı İşletim Sistemleri
Gömülü Yazılım Tasarımı
Hataya Dayanıklılık (Fault-Tolerance) Teknikleri
LAB – III : Arduino ile geribeslemeli motor hız kontrolü uygulaması
CENG 315 Bilgi Yönetimi

Bilgi yönetiminin bilgisayar mühendisliği ile ilgisi; veri tabanı yönetim sistemlerine giriş ve ilişkisel model; normal formlar ve faydaları; veri tabanları yaratma, altında yatan yöntemler, veri tabanı dilleri; bilgi çekimine ilişkin problem; SQL, kullanımı ve gücü; ağlar üzerindeki bilgi sistemleri, özel sistemler ve uygulamalar; özel problemler, erişim, güvenlik ve tutarlılık; ilgili kanuni ve ahlaki konular.

Konu
Veritabanı Yönetim Sistemlerine Giriş
Veritabanı Yönetim Sistemleri Mimarisi
İlişkisel Model
İlişkisel Veritabanı Dizaynı
İlişkisel Cebir
SQL (Veri İşleme Dili)
SQL (Veri Tanımlama Dili)
Normalizasyon
Tutarlılık ve Güvenlik
Verimli Sorgu Eniyileme
Sunucu ve İstemciler
JDBC
Eşzamanlılık
Dönem Projeleri
CENG 316 Yazılım Mühendisliği

Yazılım mühendisliği, yazılım mühendisinin rolü, yazılım ve ilkelerinin değerlendirilmesi, yazılım yaşam döngüsü modelleri, gereksinim analizi, spesisfikasyon, tasarım uygulaması; temel teknikler; bakımın önemi; geliştirme sürecinin her aşamasında kalite; yeniden kullanılabilirliğin faydası; verifikasyon ve validasyon; ölçütlerin kullanımı, ekip oluşturma, insan-bilgisayar arayüzü.

Konu
Yazılım mühendisliğine giriş, sürece genel bakış
Süreç modelleri, atik süreç modeli
Yazılım mühendisliği uygulaması, sistem mühendisliği
Gereksinim mühendisliği, analiz modeli
Nesne-tabanlı yaklaşım
Tasarım modeli, tasarım mimarisi
Test strateji ve teknikleri
Bilgisayar destekli yazılım geliştirme araçları
Ürün metrikleri
Proje yönetimi, metriklerin ölçülmesi
Yazılım kalite yönetimi
Biçimsel yöntemler
Proje teknik gözden geçirme toplantıları
Proje sunum ve demoları
CENG 381 Stokastik Süreçler

Olasılık uzayı, rasgele değişkenler, dağılım ve yoğunluk fonksiyonları, rasgele vektörler, rasgele değişkenler dizisi, yakınsama nosyonları, merkezi limit teoremi, büyük sayılar kanunu, stokastik süreçler, durağanlık nosyonları, Poisson süreçleri, Gaussian süreçleri, stokastik süreçlerde dönüşüm, ergodizite, ikinci derece rasgele süreçler, tasvirleme teoremleri, Markov süreçleri, homojen Markov modelleri ve uygulamaları.

Konu
Giriş, Olasılık kavramlarının hızlı olarak hatırlatılması
Olasılık
Şans değişkenleri, parametreler, bereberce değişen değişkenler
Transformasyonlar, Olasılıklara ilişkin eşitsizlikler, Markov, Chebyshev ve tek yönlü eşitsizlikler
Şans değişkenleri, Kesikli şans değişkenleri
Şans değişkenleri, Kesikli şans değişkenleri, Sürekli şans değişkenleri
Sürekli şans değişkenleri, Merkezi Limit Teoremi, Transformasyonlar
Ara sınav
Stokastik Süreçler, Poisson Süreci
Doğum-Ölüm Süreci
Markov Süreci – Markov Zinciri
Kuyruk Teorisi, Giriş, genel kavramlar, performans kriterleri
Kuyruk Teorisi, Little kuralı, M/M/1 kuyruk sistemi
Diğer kuyruk sistemleri
CENG 382 Bilgi Teorisi

Bu ders, Shannon’un bilgi teorisine ve temel gürültülü ve gürültüsüz ikili kodlama tasarılarına giriş niteliğindedir. Bilgi kavramı, entropi, basit kaynaklar, Markov kaynakları, devamlı kaynaklar, bilgi kanalları, ottalama hata, belirsizlik, dönüşüm, kapasite, bozunumsuz kodlama, Kraft-McMillan teoremi, Shannon-Fano ve Huffmann kodlama tasarıları, hata düzeltici kodlar, doğrusal kodlar, devinimsel kodlar, Veri Sıkıştırma.

Konu
Giriş: İlgili kavramlar.
Entropy, relative entropy ve mutual information
Asymptotic equipartition property
Entropy rates of stochastic processes
Data compression -I
Data compression -II
Ara sınav
Channel capacity
Differential entropy
The Gaussian channel
Network Information Theory – I
Network Information Theory – II
Relevant topics in Information Theory today
Rate-distortion
CENG 383 Gerçek-Zamanlı Sistemler

Çeşitli etkileşen bileşenler yardımıyla gerçek-zamanlı sistemlerin belirleme ve doğrulama teknikleri. (a) zaman ilişkili davranışların belirli anlamsal programlama dilleriyle ve (b) planlama algoritmalarıyla gerçek zamanlı sistemlerin biçimsel tasarımı. Gerçek-zamanlı işletim sistemleri, gerçek-zamanlı sistemler için tasarlanmış programlama dilleri, reaktif sistemler için tasarlanmış senkron programlama dilleri ve matematiksel altyapısı. Gerçek-zamanlı sistemler için yazılım geliştirme.

Konu
Gerçek-Zamanlı Sistemlere ilişkin temel bilgi ve kavramlar
Bilgisayar mimarilerinin ve mevcut donanımların incelenmesi
Gerçek-Zamanlı belirleme ve tasarım teknikleri
Formel yöntemler: zamanlı-otomatlar (Timed-automata) ve “Petri net”ler, “Model-checking”
Gerçek-Zamanlı programlama dilleri
Senkron programlama dilleri
Gerçek-Zamanlı çekirdekler – I: Teorik bulgular, “scheduling” algoritmaları
Laboratuvar çalışması – I (İleri C ve Assembly programlama)
Gerçek-Zamanlı çekirdekler – II: POSIX
Hata toleransı (Fault-tolerance)
Donanım/yazılım entegrasyonu, performans analizi ve optimizasyon, test
Laboratuvar çalışması – II (Gerçek-zamanlı mikroçekirdek tasarımı)
Laboratuvar çalışması – III (Gerçek-zamanlı mikroçekirdek tasarımı)
Laboratuvar çalışması – IV(Gerçek-zamanlı mikroçekirdek tasarımı)
CENG 384 Mikroişlemciler

Mikroişlemci ve mikrodenetleyicilerin komponentleri, mikroişlemcileri için donanım ve yazılım komponentleri; mikrodenetleyiciler; mikrodenetleyiciler ile gömülü sistem tasarımı, bellek arayüzü, analog-sayısal giriş çıkış arayüzleri ve kesme arayüzleri; assembly ve yüksek seviyeli diller ile programlama, gerçek-zamanlı hesaplama, gerçek-zamanlı işletim sistemleri; FPGA için tasarlanmış mikrodenetleyicilerin kullanımı; sistem kontrol, geri beslemeli sistemlerin analizi, kontrol ünitesi tasarımı ; veri toplama, sayısal sinyal işlemenin temelleri.

Konu
8051 mikrodenetleyicilerine giris
8051 birlestirici dile ile programlama
Jump, loop, call komutları ve i/o programlaması
EPROM programlama
8051 adresleme modları
Aritmetik ve mantık komutları ve programları, 8051 donanım bağlantıları ve Intel hex dosyası
Hesap makinesi uygulaması
Birlestirici dilde zamanlayıcı programlaması
Birlestirici dilde seri port programlaması
Birlestiric dilde kesmelerin programlanması
Saniye sayıcı uygulaması
LCD ve tuş takımı bağlantıları
ACD, DAC ve sensor bağlantıları
ACD üzerinden sıcaklık ölçümü uygulaması
CENG 386 Bulanık Mantık Sistemleri

Bulanık küme kuramı, bulanık ilişkiler, bulanık kural tabanı, yaklaşık uslamlama, bulanık denetim, bulanık mantık sistemlerinin tasarımı.

Konu
Giriş
Bulanık kümeler kuramı
Bulanık cebir
Bulanık bağlaçlar
Bulanık ilişkiler
Yaklaşık çıkarsama
Bulanık denetim
Sınama
Bulanık dizge benzetim ortamaları
Bulanık mantık benzetim ortamları
Olabilirlik kuramı
Eksik bilgi yönetimi
Bulanık ölçüm
Bulanık mantıklı karma esnek hesaplamalar
CENG 388 Web Programlama

Web ve .NET çatısı, ASP.NET ile yazılım geliştirme, web hizmetleri programlama, MVC programlama.

Konu
Web ve .NET Framework e Giriş
IIS Web Sunucuları
MS Visual Studio Tanıtımı
MS Visual Studio ile Yazılım Proje Geliştirme
ASP.NET’e Giriş
ASP.NET Page Life Cycle
Web Uygulama Proje Şablonları
Web Form /User Control/ Master Page Kavramları
İstemci Programlama
AJAX Programlama
Web Servisilerine Giriş
ASP.NET ile Web Servis Geliştirme
MVC Mimarisi
ASP.NET MVC Çerçevesi

 

CENG 389 Mobil Uygulama Geliştirme

Bu ders mobil cihaz programlamanın temellerini, mobil cihaz donanımına erişim ve kullanımı ve mobil uygulamalar ile ağ servislerinin etkileşimini kapsar. Android platformunda kullanıcı arabirimlerinin tasarım ve gerçekleştirilmesi, çapraz platform mobil uygulama geliştirme ve kamera ve GPS gibi algılayıcıların programlanması konularını içerir.

Konu
Mobil Programlamaya Giriş
Uygulamalar ve Aktiviteler
Kullanıcı Arabirimleri Oluşturmak
Niyetler, Yayın Alıcıları ve Adaptörler
İş Parçacıkları ve Bildirimler
Veri Depolama ve Erişimi
Konum Tabanlı Servisler, Haritalar ve Algılayıcılar
Wi-Fi ve Bluetooth ile Bağlantı
Zengin İçerik ve Kamera ile Çalışma
Grafik ve Animasyonlar
Kullanıcı Deneyimi Prensipleri
Ağ Uygulamaları ve Çapraz Platform Programlama
Ağ Servisleriyle Etkileşim
GPU ile Grafik ve Hesaplama

 

CENG 390 Bulut Bilişim

Bu ders bulut bilişim konseptini, teknolojinin oluşma nedenlerini, gereksinimlerini, bulut mimarisini, çalışma prensiplerini, kullanım alanlarını, uygulamalara göre avantajları/dezavantajlarını, IaaS, SaaS, PaaS gibi değişik bulut servisi modellerinin anlatımını kapsar. PaaS konusunda Google App Engine, Amazon Web Services(AWS), Microsoft Azure ve diğer Bulut platformlarını da ele almaktadır. Geliştirilmekte olan ya da halihazırda çalışmakta olan mobil uygulamaların, web uygulamalarının, veritabanlarının bulut sistemlere taşınması, bulut mimari üzerinde yapılandırılması, çalıştırılması ve yazılım geliştirilmesikonularını içerir. Ayrıca global olarak bulut sistemlerini kullanarak piyasaya sürülmüş, markalaşmış ürünlerin ve şirketlerin başarı hikayelerini de teknolojik, operasyonel, finansal, marka ve iş planı gibi çeşitli açılardan ele alarak detaylı anlatımlarını içerir.

Konu
Bulut Bilişime Giriş
Service Yapıları (SaaS, PaaS, IaaS)
Bulut Bilişim Bileşenleri
Bulut Sistemleri Yapıları (açık, kapalı, hibrid)
Açık bulut: AWS, Google App Engine, MS Azure systems
Veri Depolama, İşleme, Erişimi ve Güvenliği
Şirket İçi ve Bulut Sistem Stratejisi ve Planlaması
Ölçeklenebilir Bulut Veritabanları – SQL, NoSql, Hadoop
Bulut Sistemlere Taşıma
Büyük Veri ve Veri Bilimi
Laboratuvar – Bulut Platform Üzerine Uygulama Geliştirme ve Yükleme
Global Girişimler, Bulut Uygulamaları ve Girişimcilik
Bulut Tabanlı Yüksek İşlemli Uygulamalar
Uygulamalar ve şirketler için Küresel Bulut Stratejisi
CENG 391 İmge Anlamaya Giriş

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.

Konu
Giriş
İmge Temsili
Temel İmge İşleme
İmge Piramitleri
Anahtar Nokta Çıkarımı
Anahtar Nokta Betimleme ve Eşleme
Düzlemsel İzdüşüm Geometrisi
Eniyileme Yöntemleri
İmge Eşleme
Optik Akış ve Şablon Takibi
Temel Kamera Geometrisi
Epipolar Geometri
Sık İmge Öznitelikleri
Nesne Kategorisi Tespiti

Dördüncü Sınıf

Ders Kodu Ders Adı Tanım Önkoşul(lar)
CENG 385 Matematiksel Mantık

Önermeler mantığı: sözdizimi, anlamlar, karar verme yordamları; yüklem mantığı: sözdizimi, anlamlar, tanımlanabilirlik, biçimsel dizge, karmaşıklık, karar verememe; tamamlanmamışlık; ikinci derece mantık; ileri konular: çok-değerli mantık, kipsel mantık, zamansal mantık, bulanık mantık.

Konu
Giriş
Önerme mantığında önermeler
Önerme mantığında normal f
Önerme mantığıda anlamsallık
Önerme mantığında Çıkarsama
Yüklem mantığın söz dizimi ve anlamsallığı
Yüklem mantığın doyurulabilirliği
Yüklem mantığın biçimsel düzenleri
Yüklem mantığın tümleşikliği
Yüklem mantığın kararsızlığı ve tümleşiksizliği
Özetleme
Daha yüksek düzenli yüklem mantıkları
İleri konular
Bulanık mantık
CENG 400 Yaz Stajı

Stajın amacı öğrencilerin eğitim aldıkları alanlarda uygulamaya geçmelerini sağlamaktır. Böylece öğrenciler hem iş dünyasını tanımaya başlamış olurlar hem de kariyerlerini yönlendirecekleri ilgi alanını belirlemeye başlarlar. Staj aynı zamanda bir bilgisayar mühendisliği öğrencisinin organizasyonun yapısı, yönetimi ve ilgili şirkette yürütülen enformasyon sistemi ve sistem analizi konusunda bilgi kazanmasını sağlar. Staj herhangi bir iş yerinde öğrencinin pratik uygulama yapmasını, bulunduğu firmanın genel yapısını tanımasını ve o firmada yapılan projelere katılmasını sağlamaktadır.

 

CENG 411 Bilgisayar Mühendisliğinde Profesyonellik

Bilgisayar mühendisliği ile ilgili etik problemlerin incelenmesi ve etik teoriler ışığında tartışılması, kanun ve yönetmelik konuları, etik karar verme süreci, mahremiyet ve gizlilik, bilgisayar suçları, profesyonel yaklaşım ve sorumluluklar, sistem güvenliği, bilgisayarların toplum üzerindeki etkileri.

Konu
Giris
Mahremiyet
Ifade ozgurlugu (1. bolum)
Ifade ozgurlugu (2. bolum)
Telif haklari (1. bolum)
Telif haklari (2. bolum)
Suc
Sosyoteknik sistemler
Is
Teknolojinin degerlendirilmesi ve denetlenmesi
Hatalar, arizalar ve risk
Profesyonel etik ve sorumluluk (1. bolum)
Profesyonel etik ve sorumluluk (2. bolum)
Tartisma ve ozet
CENG 412 Algoritmaların Analiz ve Tasarımı

Yazılımda algoritmaların rolü, Fonksiyonların büyümesi, reküranslar, olasılık tabanlı analiz ve rastgeleleştirilmiş algoritmalar, dinamik programlama, aç gözlü algoritmalar, ileri veri yapıları, graf algoritmaları, NP-Bütünlük.

Konu
Genel bakış
Karmaşıklık teorisi
Asimptotik gösterim
Yinelemeler
Dinamik programlama
Analiz , dizayn ve gerçekleştirim
Sınav
Fırsatçı algoritma
Birleştirme
İleri veri yapıları
Çizge algoritmaları
Dizgi eşleştirme
Sıralama
Problem çözme
CENG 414 Proje Yönetimi

Ekonomi ve yöneticilikle ilgili kavramları mühendislik öğrencilerine tanıtmak amacıyla düzenlenmiş bir ders olup para akışı, faiz oranları, geri ödemeler, arz-talep ilişkileri, ürün bedellendirilmesi, vergiler, enflasyon gibi ekonomiyle ilgili; yönetim analizi, iş yönetimi basamakları, iş ağı analizi, CPM/PERT ağları aracılığıyla proje yöneticiliği, optimizasyon, doğrusal programlama ve karar analizi gibi iş dünyası ve yöneticilikle ilgili konuları içerir. Ayrıca bu konulara ilişkin çeşitli yazılımlar kullanılarak uygulamalar gerçekleştirilir.

Konu
Proje yönetmine giriş. Proje ve yönetimi nedir? Proje seçimi
Proje takımı, Proje Yöneticisi, Proje Ofisi
Görev listesi, Work Breakdown Structure, Staement of Work, Sorumluluk Çizelgesi
Kaynak Planlaması, Maliyet planlaması
Zaman planı, FAST Yöntemi, Gannt Çizelgesi, İş Ağı Planlaması
İş Ağı Planlaması (devam), Proje Kısaltma Yöntemleri
Ara Sınav
Bilgisayar program tanıtımı (MS Project)
Takım organizasyonu, yönetimi, liderlik
Risk Analiz Yöntemler
Proje Denetimi, Maliyet Denetimi, Kazanılmış Değer Analizi, Değişim Denetimi
Kalite Kontrol
Karar yöntem ve gereçleri
Proje kapatma
CENG 415 Lisans Tezi ve Seminer I

Teknik rapor yazma, proje yönetimi ve planlama, sistem çözümleme, gereksinim analizi, mühendislik etiği, veri tasarımı, yazılım tasarımı, proje sunumu

Konu
Giriş
Teknik rapor yazımı
Proje yönetimi ve planlaması
Sistem analizi
Gereksinim analizi
Mühendislik etikleri
Veri tasarımı
Yazılım tasarımı
Proje tanıtımları
Davetli konuşmacı – Proje yönetimi
Davetli konuşmacı – Yazılım geliştirme
Öğrenci sunumları
Öğrenci sunumları
Öğrenci sunumları
CENG 415-416 Bitirme Projeleri Yönergesi
CENG 415 - Proje Konusu Tanımlama Formu
CENG 316
CENG 416 Lisans Tezi ve Seminer II

Davetli konuşmacılar, değişiklik yönetimi, kodlama dokümantasyonu, kodlama standartları, test, güvenirlilik, güvenlik, prototip geliştirme, kullanıcı kitapçıkları, grup demoları

Konu
Giriş
Davetli konuşmacı
Değişiklik yönetimi
Kodlama dokümantasyonu
Kodlama standartları
Test
Güvenilirlik
Güvenlik
Grup prototip sunumları
Grup prototip sunumları
Kullanıcı el kitabı hazırlama
Davetli konuşmacı
Grup demoları
Grup demoları
CENG 415
CENG 421 Bilgisayar Ağı Programlama

UNIX sistemi: sinyaller, threadler, süreçler arası iletişim, TCP-UDP/IP protocols, Unix üzerinde soket programlama; Windows soketleri, Java ile ağ programlaması; istemci/sunucu modeli, web tabanlı programlama; RPC; Ağ güvenliği konuları.

Konu
Giriş
Network Temel Bilgiler tekrarı
Network Temel Bilgiler tekrarı
TCP/IP Programlama
TCP/IP Programlama
TCP/IP Programlama
Midterm
PHP / Mysql Programlama
PHP / Mysql Programlama
PHP / Mysql Programlama
PHP / Mysql Programlama
PHP / Mysql Programlama
PHP / Mysql Programlama
PHP / Mysql Programlama
CENG 422 Bilgisayar Ağı Tasarımı ve Yönetimi

LAN, WAN, analiz ve tasarımı. LAN standartları, ağların birbirine bağlanması, güncel teknolojiler, LAN tasarım kriterleri ve prosedürleri; WAN tasarımı, ağ servisleri, SNMP Ağ Yönetim Protokolü; tasarım için yardımcı yazılımlar, ağ simülatörleri; ağ güvenliği.

Konu
Yerel alan ağlarının (LAN) gözden geçirilmesi
Geniş alan ağlarının (WAN) gözden geçirilmesi
Intranet, Internet middleware teknolojileri: CORBA, OpenDoc, ODBC
Çeşitli Hesaplama Modelleri: İstemci/Sunucu, İstemci/Ajan/Sunucu, Peer-to-Peer
TCP/IP Konfigürasyonu
Transport Layer Protokolunun Tasarımı
Özet (Sınav)
Network Aktif Ciazhların Seçimi ve Konfigürasyonu
LAN Tasarımı: Konseptler, araçlar ve uygulamalar
Çeşitli Ağlardaki Trafiğin Analizi
Ağ Yönetimi, SNMP Protokolü
WAN Tasarımı: Konseptler, araçlar ve uygulamalar
Simülatörlerin Kullanımı, Örmekler
Ağ Güvenliği
CENG 431 Yazılım Sistemleri Geliştirilmesi

Açık kaynak kod ve paylaşılan yazılım kavramları, kalite ve kullanım şartları konuları, yazılım tekrar kullanımı, program kütüphaneleri, yazılım bileşenleri, diğer kütüphane ve bileşenlerin oluşturulması, uygulama program arayüzleri, ayrı derlemenin kullanımı, yazılım bileşenleri ve kütüphanelerin kullanımı, büyük yazılım sistemleri geliştirmenin zorlukları, yazılımların metrikler ve ölçütler kullanılarak değerlendirilmesi, yazılım kriterleri, arayüz tasarım prensipleri, çoklu-ortam konuları, renk, ses, video ve çoklu-ortamlara ilişkin problemler, nesne temelli programlamının ileri konuları, moduler tasarım, saklama ortamları yönetim konuları, paralelleştirme, istemci-sunucu yaklaşımı, sunucu çeşitleri, orta katmanın rolü, istemci ve sunucu servisleri için gerekli yazılım desteği, genel kullanım gören yazılım araçlarının geliştirilmesinde kullanılan nesne temelli teknikler, applet ve servlet yapıları, basit tasarım örüntüleri, yazılım yaşam döngüsü ve aşamaları, süreç kavramı, yazılım geliştirme yaklaşımlarının farkları ve bu farkların sebepleri.

Konu
Nesne tabanlı yazılım geliştirme 1
Nesne tabanlı yazılım geliştirme 2
UML ile nesne tabanlı analiz ve tasarım 1
UML ile nesne tabanlı analiz ve tasarım 2
Bileşenler ile yazılım geliştirme
Soyutlama ile tasarım yaklaşımı
Nesne tabanlı uygulama çatıları
Tekrar kullanım
Kod iyileştirme
Birim testleri
Tasarımdan yazılıma örnek bir çalışma
Tasarım Şablonları 1
Tasarım Şablonları 2
Tasarım Şablonları 3
CENG 432 Kurumsal Uygulama Geliştirmenin Temelleri

Bu ders kurumsal uygulama geliştirmeye ilişkin ileri düzey konuları irdelemektedir. Belli başlı konular; çevik yazılım geliştirme, çok katmanlı uygulamalar, sunucu programlama, veri işleme, web programlama, uygulama kurma ve çalışır hale getirme olarak ifade edilebilir.

Konu
Kurumsal uygulama geliştirmeye giriş
Web programlama 1
Web programlama 2
Thread programlama 1
Thread programlama 2
İstemci socket programlama
Sunucu socket programlama
Kurumsal uygulamalar için veritabanı bağlantıları
JSP sunucu sayfaları
AJAX çatısı
Kurumsal uygulama tasarım şablonları 1
Kurumsal uygulama tasarım şablonları 2
Spring uygulama bağlamı
Spring MVC web çatısı
CENG 433 İnternet için Ölçeklenebilir Yazılım Geliştirme

Mimari tasarım ve sunucu bileşenleri, performs ölçümleme, gelişmiş önbellek stratejileri, MySQL ile yatay ölçeklenebilirlik ve yoğun yük kaldırma.

Konu
Play Altyapısına giriş
Dönem Projesi
Internet mimari dizaynına giris ve ucuz donanım ile dayanıklı yapılar kurma .
Yük ve performans testleri
Önbellek stratejileri
Dağıtık data toplama ve queue sistemleri. Dağıtık DNS yapıları
Sunucu ve tarayıcıda performans loglama
Ölçeklenebilir very tabanları için yazılım geliştirme
MySQLi ölçeklendirme
Hadoop
Öngörülemeyen, en yoğun zamanlardaki veya hata durumlarındaki trafiği kaldırma
Gerçek zamanlı yazılım gönderme stratejileri
Öngörülemeyen, en yoğun zamanlardaki veya hata durumlarındaki trafiği kaldırma
Gerçek zamanlı yazılım gönderme stratejileri
CENG 434 Kurumsal Uygulama Entegrasyonları

Bu ders kapsamında kurumsal uygulama entegrasyonlarının çeşitleri, bunların tasarım ve gerçekleştirilme şekilleri ile bu entegrasyonlara ilişkin güvenlik, güvenilirlik ve hataya tolerans gibi kalite parametreleri işlenecektir.

Konu
Kurumsal mimarilere giriş
Kurumsal bilgi sistemleri katmanları
Kurumsal uygulama entegrasyonlarının temel problemleri
Entegrasyon tipleri
Kurumsal uygulamalarda kullanılan bilgi teknolojileri elemanları ve şablonları
Web servisleri
İşlem monitörleri
Kurumsal servis yolu I
Kurumsal servis yolu II
İş süreçleri, iş akışları ve bunların yönetimi I
İş süreçleri, iş akışları ve bunların yönetimi II
İş etkinliği izleme
Güvenlik
Güvenilirlik ve hataya tolerans
CENG 435 İleri Bilgi Yönetimi

Bu ders veri tabanı yönetim sistemleri ve modern veri tabanı uygulamaları açısından ileri düzeyli konuları kapsayacaktır. Belli başlı konular şunlardır; koşut zamanlılık denetim yöntemleri, ilşkisel veri tabanlarında sorgu işleme ve eniyileme yaklaşımları, indeksleme yöntemleri, parallel ve dağıtık veri tabanları, yeni nesil veri modelleri, veri tabanlarında veri madenciliği, web üzerindeki veri, veri güvenliği.

Konu
Veritabanı Sistemlerinin Üzerinden Geçme, Veri Tanımı, Veri İşleme
İstemciler ve Sunucular, JDBC
Disk Yönetimi
Dosya Yönetimi
Bellek Yönetimi
İşlembilgi Yönetimi
Kayıt Yönetimi
Üst veri Yönetimi
Sorgu İşleme
Sorgu İşleme
Ayrıştırma
Planlama, Veritabanı Sunucu
İndeksleme
Sorgu Optimizasyonu
CENG 315
CENG 436 Dağıtık Bilgi Yönetimi

Bu ders, tasarım, mimari, güvenlik, tutarlılık, sorgu işleme, sorgu eniyileme, işlem yönetimi, eş zamanlılık denetimi ve dayanıklılık gibi başlıklar altında dağıtık veri tabanları ilkelerini inceler. Teori ve pratiği iç içe geçirmek için her öğrenci bir JDBC uygulaması geliştirir ve web tabanlı dağıtık veritabanı üzerinde uygular.

Konu
Dağıtık veritabanlarına giriş
İlişkisel vertabanı yönetim sistemlerini tekrar etmek
Bilgisayar ağşarı
Dağıtık veritabanı mimarisi
Dağıtık veritabanı dizaynı- Yatay paylaştırma
Dağıtık veritabanı dizaynı- Dikey paylaştırma
Anlamsal veri yönetimi
Sorgu işleme
Sorgu ayrışımı ve veri lokalizasyonu
Dağıtık sorgu optimizasyonu
Dağıtık aynı anda erişim
Dağıtık tutarlılık protokolleri
Dağıtık güvenlik protokolleri
Ekip projelerinin sunumu ve tartışılması
CENG 315
CENG 437 Yazılım Kalite Yönetimi

Bu ders yazılım kalite yönetimi, kalite yönetim modelleri (CMMI, ISO, IEEE), kalite yönetimde kulanılan yöntemler, araçlar ve alanları, kalite yönetim sürecinin iyileştirilmesi ve kalite maliyetinin yönetilmesi, hata, sorun önleme ve süreç iyileştirme yöntemleri konularını kapsamaktadır.

Konu
Yazılım Kalite Yönetimine Giriş
Yazılım Kalitesinin bileşenleri ve Kalite Modelleri (CMMI, RUP)
Yazılım Kalitesinin bileşenleri ve Kalite Modelleri (ISO9001, SPICE, IEEE12207)
Yazılım Kalite Yönetiminde Kullanılan Yöntem ve Araçlar
Hata, Sorun Önleme Yöntemleri
Hata, Sorun Önleme Yöntemleri
Yazılım Test Yöntemleri
Yazılım Test Yöntemleri
Bakım Yönetimi
Bakım Yönetimi
Konfigurasyon Yönetimi
Yazılım Kalite Metrikleri
Süreç Kalite Metrikleri ve Kalite Yönetimde Maliyet
Süreç Kalite Metrikleri ve Kalite Yönetimde Maliyet
CENG 316
CENG 441 Paralel Programlamaya Giriş

Modern çok çekirdekli bilgisayarların daha etkin biçimde kullanılabilmesi için paralel programlama tekniklerine giriş, Paralelizmin belirlenmesi, paylaşılan verinin adlandırılması, thread senkronizasyonu, iletişime ilişkin gecikme ve bandwidth, paralel performansın analizi ve geliştirilmesi, paralel programlama araçları, çeşitli örnekler ve egzersizler.

Konu
Paralel Bilgisayar Sistemlerine Giriş
Paralel Programlama Modelleri
Paralelizmi Keşfetme Metotları
Paralel Algoritma Tasarım Metotları
Paralel Programlama Desenleri
Bellek Paylaşımlı Mimarilerde Thread’ler ve Paralelizm
Domain Ayrıştırma ve OpenMP
Yarış Durumundan Sakınma, Thread’ler ve OpenMP
Task Ayrıştırma ve OpenMP
Paralel Uygulamalarda Verimlilik Analizi
Paralel Uygulamalarda Verimliliğin Arttırılması
Paralelleştirmede Uygun Thread Modelin Belirlenmesi
Dağıtık Bellekli Ortamlarda Paralelleştirme – MPI
Dağıtık Bellekli Ortamlarda Paralelleştirme – MPI
CENG 442 Çok Çekirdekli Mimariler ve İşletim Sistemleri

Çok çekirdekli mimarilere evrimsel bir yaklaşım, çok çekirdekli mimarilerin işletim sistemleriyle entegrasyonu, çok çekirdek ve çoklu threadler için işletim sistemi kernel tasarımı, çoklu thread için işletim sistemi desteği, kullanıcı düzeyinde threadler, kernel seviyesinde threadler. Örnekler: Solaris threadleri, treadler ve kütüphaneler, tek işlemcili ve çok işlemcili platformlarda çoklu threadler için donanım desteği.

Konu
Giriş: İlgili kavramlar ve ders içeriğinin tanımlanması.
İşlemci Mimarisi: komut set tasarımı
İşlemci Uygulamaları
Interrupts, Traps ve Exceptions
İşlemci Verimliliği
Pipeline işlemci tasarımı ve performans
Ara sınav 1
Yeni Mimariler ve Çok çekirdekli Tasarımlar
İşlemci Yönetimi
Bellek Yönetim Teknikleri
Bellek Hiyerarşisi
Paralel İşlemciler
Girdi/Çıktı ve Dosya Sistemleri
Sonuç: Tüm Parçaları Biraraya Getirmek
CENG 451 İleri Sayısal Sistem Tasarımı

Sonlu durum makinalarının tasarım ve analizi; yüksek seviyeli donanım tanımlama dilleri, VHDL, tasarımda otomatik sentezleme; sayısal tümleşik devre tasarımı ve ileri düzey tasarım konuları; sayısal devrelerin elektriksel özellikleri, senkron ve askenron devreler, bilgisayar aritmetiği, harici devrelere bağlantı için ara yüz tasarımı, sayısal sistemlerin testi; gömülü hesaplama sistemlerinin ASIC ile tasarlanması; tekrar kullanım için tasarım.

Konu
Sayısal Sistem Tasarımına Giriş
Temel Elektronik
Sayısal Tasarımın Temelleri
FPGA ve ASIC tasarım; VHDL Programlama Dili – I
VHDL – II
Özet ve Değerlendirme
Elektronik Tasarım Otomasyon Araçları
Özel Amaçlı Yazılımsal Mikroişlemci/denetleyici Tasarımı
Genel Amaçlı Yazılımsal Mikroişlemci/denetleyici Tasarımı
Sayısal Sinyal İşlemci Tasarımı
Hataya Dayanıklı Donanım Tasarımı
Harici Devreler için Arayüz
Tekrar kullanım için tasarım, test ve diğer konular
Dönem projesi
CENG 452 Gömülü Sistemler için Yazılım Geliştirilmesi

Programlanabilir gömülü sistemlerin tasarımı ve gerçeklenmesi; derleyiciler, planlayıcılar, kod üreteçleri, ve sistem seviyesi tasarım araçları; veri-akış ve kontrol modelleri, tekli ve çoklu mikroişlemci mimarileri için yazılım sentezleme; Senkron/reaktif programlama dilleri ve matematiksel altyapıları; sinyal işleme, iletişim ve kontrol algoritmalarının sayısal sinyal işleme, mikrodenetleyici, FPGA, ASIC ve gerçek-zamanlı işletim sistemlerinde uygulanması; gerçek-zamanlı çekirdek tasarımı; donanım ve yazılım hatalarını tolere eden yazılım teknikleri.

Konu
Gömülü sistemlerde yazılım geliştirmeye giriş
Derleyiciler, kod üreteçleri, sistem seviyesinde tasarım araçları
Hesaplamada veri akış ve kontrol modelleri
Tek ve çok işlemcili sistemler için yazılım sentezleme
Senkron/Reaktif programlama dilleri
Gerçek-zamanlı işletim sistemleri
Özet (yazılı yoklama)
Gerçek-zamanlı iş yükü planlama (scheduling) algoritmaları
Sayısal işaret işleme, haberleşme ve kontrol alanlarında algoritma tasarımı
Algoritmaların mikrodenetleyiciler, sayisal işaret işlemcileri ve FPGA’ler üzerinde implementasyonu
Yazılım geliştirme araçları ve standartları
Test, tekrar kullanım odaklı tasarım
Yazılım tabanlı hataya-dayanıklılık teknikleri
Dönem projelerinin tartışılması
CENG 461 Yapay Us

Sonuca dayalı programlama; sorun çözme; bilgi gösterme; çıkarsama; mantıksal davranmak; belirsizlik; öğrenme; iletişim.

Konu
Giris
Bildirimsel yazılım dilleri
Problem çözme
Buluşsal yaklaşımlar
Bilgi
Varlık bilgisi
Çıkarsama
Mantıksal davranma
Sınama
Belirsiz bilgi
Belirsizlik altında çıkarsama
Öğrenme
İletişim
Algılama ve etiketleme
CENG 462 Esnek Hesaplama

Yapay sinir ağları; evrimsel algoritmalar; bulanık dizgeler; olasılık; karışıklık kuramı.

Konu
Giriş
Değişik Yapay Us Yaklaşımları
Yüksek Düzeyli Mantıklar
Tasarlama
Uzman Dizgeler
Çevre Örnekleme
Özetleme
Esnek Hesaplama
Simgesel Olmayan Öğrenme
Doğal Dil İşleme
Akıllı Aracılar
Çok Aracılı Dizgeler
Anlamsal Ağ
Robot Bilimi
CENG 463 Yapay Öğrenmeye Giriş

Otomatik öğrenme konusuna giriş ve değişik uygulama alanlarından örnekler verilmesi. Bayesçi karar kuramı. Gözetimli öğrenme teknikleri. Model seçimi. Boyut Azaltma. Öbekleme. Destek yöney makineleri. Çizgesel modeller. Sinir ağlarına giriş. Pekiştirmeli öğrenme.

Konu
Yapay Öğrenmede Kavramlar
Bayesçi Karar Teoremi
Gözetimli Öğrenmenin Temelleri
Doğrusal Bağlanım
Mantıksal Bağlanım
Model Seçme Prosedürleri
Çok Değişkenli Sınıflandırma, Çok DEğişkenli Bağlanım
Özet ve Sınav
Boyut Azaltma ve Temel Bileşen Analizi
Öbekleme
Doğrusal Ayrım Fonksiyonları
Sinir Ağları
Gözetimli Öğrenme: Parametrik olmayan yaklaşımlar
Yapay Öğrenme Deneylerinin Tasarım ve Analizi
CENG 471 Kriptografi

Gizlilik, Doğruluk, Özgünlük denetimi, kriptografi tarihçesi, Bilgi Kuramının temel kavramları, gizlilik sistemleri, tekalfabeli yerine koyma, çok alfabeli yerine koyma, permütasyon, blok şifreler, DES-AES simetrik kriptosistemleri, simetrik kriptosistemlerde anahtar yönetimi, birleştirilmiş blok şifreler, simetrik kriptosistem güvenlik mimarileri, simetrik kriptosistem tasarımı ve doğrulaması. Faktörizasyon tabanlı (RSA), Eliptik Eğri (ECC) asimetrik kriptosistemler, Rastgele sayı ve Asal sayı üreten algoritmalar, asallık testleri, Öz çıkarımı algoritmaları (MD5-SHA0-SHA1-SHA2), PKI – Açık anahtar alt yapısı ve ilişkin modeller, IEEE P1363, Fips 140.2-186.2, x9.62, x9.63, PKCS#6, x509v3 vb standartlar.

Konu
Gizlilik, bütünlük ve kimlik denetimi ile ilgili temel tanımlar ve kriptografi tarihi.
Bilgi kuramı ve Olasılık kuramı ile ilgili temel kavramlar.
Monoalphabetical & Polyalphabetical yerine koyma yöntemi
Transpositions-Permutations
Blok şifreleme, DES-AES
Simetrik anahtar yönetimi ve güvenlik mimarisi.
Simetrik kriptosistem tasarım ve doğrulama.
Sayılar kuramına giriş, kavramlar I
Sayılar kuramına giriş, kavramlar II
Faktorizasyon tabanlı kriptosistem: RSA
Ayrık Logaritma problemi ve kriptosistemler: DHKE, ElGamal
Elliptik Eğri Kriptosistem: ECC
PKI – Açık Anahtar Altyapısı
Kriptografik Protokol tasarımı FIPS 140-2/3
CENG 472 Ağ Güvenliği

Hat şifreleme, Uçtan-uca şifreleme, bilgisayar ağı ve Internet tabanlı saldırılar. Güvenlik duvarları, E-posta güvenliği konuları, Web bağlantılı güvenlik konuları, Sistem çökmesinden geri kurtarım, Stand-alone ile Ağ İşlemlerinin C2 işlevselliğinin karşılaştırılması, Hacker’ lar ve Cracker’ lar, Bilgisayar ağı saldırıları.

Konu
Bilgisayar ağları güvenliğine giriş
Simetrik şifreleme
Asimetrik şifreleme
Erişim denetimi
Dağıtık erişim denetimi
E-posta güvenliği
IPSEC ile IP güvenliği
Ağ yönetiminde güvenlik
Bilgisayar ağlarına saldırılar
Güvenlik duvarı
Güvenlik duvarı politikaları
Güvenlik duvarı ile kullanılan teknolojiler (NAT, VPN)
Saldırı ve nüfuz tespit sistemleri 1
Saldırı ve nüfuz tespit sistemleri 2
CENG 473 Bilgi ve İletişim Teknolojileri Güvenliği

Güvenli bilgi ve haberleşme sistemlerinin tasarlanması, kurulması ve yönetimi ile ilgili yöntem ve araçlar incelenecektir. Bu amaçla 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 öğretilecektir. Öğ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.

Konu
Bilgi ve İletişim güvenliğine giriş
Temel Güvenlik Fonksiyonları ve Kriptografik Araçlar
Temel Güvenlik Fonksiyonları ve Kriptografik Araçlar
Ağ Güvenliği; Temel Güvenlik Problemleri-Tespiti
Ağ Güvenliği; Temel Güvenlik Problemleri-Önlenmesi
Ağ Güvenliği; Temel Güvenlik Problemleri-Korunması
Bulut Bilişim Güvenliği
WEB Uygulamaları ve Servislerinin Güvenliği
İşletim Sistemleri Güvenliği
Internet Güvenliği
Kablosuz Ağların Güvenliği
Kablosuz Ağların Güvenliği
Bilgi Güvenliği Yönetimi
Bilgi Güvenliği Yönetimi
CENG 481 Bilgisayar Bilimlerinde Kuramsal Yaklaşımlar

Kuramsal fikirlerin çözüm setlerine dönüştürülmesi, problem çözme teknikleri ve bilgisayar bilimlerindeki uygulamaların matematiksel yaklaşımlarla entegrasyonu, Başlıca kuramlar: Algoritmalar, Karmaşa kuramı, Oyunlar Kuramı, Olasılık Kuramı, Graf Kuramı, Otomata Kuramı, Cebir ve Kriptografi.

Konu
Giriş: İlgili kavramlar ve ders içeriğinin tanımlanması.
Hesaplama Karmaşıklığı Kuramı – I
Hesaplama Karmaşıklığı Kuramı – II
Otomatlar Kuramı
Diller ve Hesaplanabilirlik
Algoritmalar; Algoritma Kuramı
Algoritmalar; Algoritma Çözümlemesi
Algoritmalar; Veri Yapıları
Algoritmalar; Yaklaşıklaşma Algotirmaları Orta büyüklük
Algoritmalar; Çizge  Algoritmaları
Algoritmalar ; Sayısal Çözümleme
Yapay Zeka
Makina Öğrenmesi
Algoritmalar; Hesaplamalı Biyoloji
CENG 482 Evrimsel Hesaplama

Evrim stratejileri, evrimsel programlama, genetik algoritmalar, genetik programlama, seçilen çeşitli evrimsel hesaplama tekniklerinin incelenmesi.

Konu
Giriş
Evrimsel strateji
Evrimsel programlama
Genetik algoritmalara giriş
Genetik algoritma uygulamaları
Genetik programlama
Öğrenebilen sınıflandırıcı dizgeler
Değerlendirme
Sürü aklı
Türetik evrim
Uyumluluk arama
Yapay bağışıklık dizgeleri
Yapay yaşam
Kültür algoritmaları
CENG 483 Davranışsal Robot Bilimi

Mekatronik; yapılar; denetim; yapay us birimleri; bilgisayar görüntü; eşleştirme; tasarlama; yönlendirme; iletişim; iş birlikçilik; robot etikleri; uygulamalar.

Konu
Giriş
Mekatronik
Yazılımsal yapılar
Denetim
Yapay us birimleri
Görüntü işleme
Eşleştirme
Tasarlama
Yol bulma
Değerlendirme
İletişim
İş birliği
Robot etikleri
Uygulamalar
CENG 484 Veri Madenciliği

Bilgi keşfi ve veri madenciliği, veri ambarcılığı, veri hazırlama ve veri madenciliği ilkelleri, kavram tanımlama, ilişki kuralları madenciliği, sınıflandırma ve tahminleme, küme analizi, web madenciliği, veri madenciliği uygulamaları.

Konu
Bilgi Keşfi Genel Bakış
Genel olarak Veri Madenciliği
Veri Ambarcılığı ve Metodları
Veri Hazırlanması
Veri Madenciliğinin Temelleri
İlişki Kuralları Madenciliği
İlişki Kuralları Madenciliği
Sınıflandırma ve Kestirim
Sınıflandırma ve Kestirim
Kümeleme Analizi
Kümeleme Analizi
Web Madenciliği
Veri Madenciliği Uygulamaları
Ekip Projelerinin Sunumu ve Tartışılması
CENG 485 Bilgi Teknolojilerinde Girişimcilik

Bilgi teknolojilerinde iş idaresinin temellerine ek olarak bu ders hedef belirleme, ekip kurma, bilgi sermayesi, müşteri projeleri ve iş yönetimi için paradigmalar, stratejiler ve yöntemler konularını kapsayacaktır.

Konu
İlk Girişimcilik Deneyimi
Bilişim sektöründe sunum
Pazarlama yöntemleri
İş geliştirme stratejileri
IBM ve Microsoft örnekleri
Ekip yönetiminde paradigmalar
Kurum içi kaynak ve kurum dış kaynak kavramları
Stratejik plan ve önemi
İş büyütmede müşteri projelerinin önemi
Yazılım ekibi yönetiminde denenmiş modeller
Yeni iş modelleri
Dünyadaki yazılım sektörü gelişmeleri ve Türkiye
Gelecekte yazılım sektörü I
Gelecekte yazılım sektörü II
CENG 487 Bilgisayar Grafiğine Giriş

Dersin temel amacı öğrencilerin modelleme, oluşturma, dokulandırma ve ışıklandırma benzeri temel Bilgisayar Grafiği konularında bilgi sahibi olmalarıdır. Öğrenciler bilgilerini OpenGL benzeri standart programlama arabirimleriyle öğrendiklerini uygulama konusunda pratik kazanacaklardır.

Konu
Giriş
Renk
Bilgisayar Grafiği için Matematik
Üç Boyutlu Grafik
OpenGL
Dokulandırma
Gölgelendirme ve Işıklandırma I
Oluşturmaya Giriş
Işınatımı
Işın Taramanın Temelleri
Foton Haritalama ve Küresel Işıklandırma
Işın Taramanın Hızlandırılması
Gölgelendirme ve Işıklandırma II
Hacim Oluşturma
CENG 488 Bilgisayar Grafiği

Bu ders ileri bilgisayar grafiği oluşturma tekniklerini konu alır. Derste gerçekçi bilgisayar grafiği için gerekli ileri ışıklandırma modelleri, hızlandırma teknikleri, hacimsel oluşturma yöntemleri anlatılmaktadır. Ayrıca bu bilgisayar grafiği tekniklerinin güncel donanım üzerinde hızlandırılmasını da kapsar.

Konu
Giriş
Işınatımı
Işın Tarama Teknikleri
Foton Haritalama I
Foton Haritalama II
Küresel Işıklandırma I
Küresel Işıklandırma II
Işın Taramanın Hızlandırılması
Gölgelendirme
Işıklandırma
Hacim Oluşturma I
Hacim Oluşturma II
İleri Sahne Modelleme I
İleri Sahne Modelleme II