Lisans Dersleri

Birinci Sınıf

Course Code Ders Adı Tanım Ön Koşul(lar)
CENG 111 Bilgisayar Mühendisliği Kavramları

Temel bilgisayar bilgileri: Bilgisayar tarihçesi, terimler, sistem bileşenleri ve işlemleri, bilgisayar mimarisi, veri depolama, bilgisayar ağları ve internet, yazılım mühendisliği, problem çözme ve algoritma geliştirme, veri yapıları, bilgisayarların uygulama alanları.

Dersin Amacı:

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

2. Problemi tanımlama, analiz etme ve çözme yeteneklerini geliştirmek,

3. Algoritmik düşünce yapısını ve algoritma tasarımını iyi seviyede öğretmek,

4. Bilgisayar mimarisi, programlama dilleri, veri depolama, yazılım mühendisliği ve bilgisayar ağları konularında temel bilgiler edindirmek,

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

Kaynakça:

J. G. Brookshear. Computer Science An Overview. 7th Ed. 2002. Addison-Wesley. ,G. Michael Scneider, Judith L. Gersting. (1995). An Invitation to Computer Science. 1st Ed. West Publishing Company, USA. ,George Beekman, Micheal J. Quinn. (2005). Computer Confluence. 7th Ed. Prentice Hall.

Öğrenim Çıktıları:
1. Bilgisayar biliminin tarihi ile ilgili bilgi edinmek
2. Bilgisayar biliminde kullanılan temel kavramları ve tanımları öğrenmek
3. Problemlerin tanımlanması analizi ve çözülmesi yeteneğini kazanmak
4. Algoritmik düşünce alışkanlığını kazanmak
5. Algoritma tasarımını öğrenmek
6. Bilgisayar mimarisi hakkında yüzeysel bilgi edinmek
7. Programlama dilleri ile ilgili genel bilgi edindirmek ve değişik programlama dillerine aşinalık kazanmak
8. Veri depolama yöntemleri hakkında genel bilgi edinmek
9. Yazılım mühendisliği hakkında temel bilgi edinmek
10. Bilgisayar ağlarının çalışma prensiplerini öğrenmek
11. Bilgisayarların uygulama alanlarını öğrenmek
Konu
Bilgisayar Mühendisliğine Giriş
Veri depolama
Veri işleme
İşletim sistemleri
Bilgisayar Ağları ve İnternet
Algoritmalar
Algoritmalar
Programlama dilleri
Yazılım mühendisliği
Veri yapıları
Dosya yapıları
Veritabanı yönetim sistemleri
Yapay zeka
Genel değerlendirme

Notlandırma:

Vize: %25

Ödev: %20

Araştırma Sunumu: %20

Final: %35

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.

Dersin Amacı

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

Kaynakça

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

Öğrenim Çıktıları:

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

Notlandırma:

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

Teslimler: Proje, Rapor

  P.O. 1 P.O. 2 P.O. 3 P.O. 4 P.O. 5 P.O. 6 P.O. 7 P.O. 8 P.O. 9 P.O. 10 P.O. 11
L.O. 1 5 0 5 5 0 0 0 0 0 0 0
L.O. 2 5 0 5 5 0 0 0 0 0 0 0
L.O. 3 5 0 5 5 0 0 0 0 0 0 0
L.O. 4 5 0 5 5 0 0 0 0 0 0 0
CENG 113
CENG 113 Programlamaya Giriş

Bilgisayar programlamanın temelleri: sıralama, karar verme, tekrarlama, sentaks, derleme, hata ayıklama, bakım, prosedürler, parametreler, diziler, nesne, yukarıda aşağıya yapılandırılmış tasarım. Algoritmik terminolojinin ve algoritmaların temel konseptleri.

Dersin Amacı

Öğrencilere sıralama, karar verme, tekrarlama, derleme, sınama, bakım, prosedürler, parametreler, diziler, nesneler gibi bilgisayar programlamanın temellerini vermek ve algoritma terminolojileriyle algoritma çalışmalarının temel kavramlarını tanıtmak.

Öğrenim Çıktıları:

  1. Basit problemlere algoritmik çözümler üretebilme.
  2. Programlamanın temel unsurlarını açıklayabilme ve kullanabilme.
  3. Karar yapılarını tasarlayabilme ve uygulayabilme.
  4. Tekrar yapılarını tasarlayabilme ve uygulayabilme.
  5. Bilgisayar programlarını izleyebilme ve inceleyebilme.
  6. Fonksiyon tasarlayabilme, tanımlayabilme ve kullanabilme.
  7. Problem çözmede özyineleme yaklaşımını kullanabilme.
  8. Sınıf tasarlayabilme, tanımlayabilme ve kullanabilme.
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ü
Döngüler-I
Döngüler-II
Fonksiyonlar-I
Fonksiyonlar-II
Dosya Okuma Yazma
Listeler ve Demetler – I
Listeler ve Demetler – II
Karakter Dizisi
Özyineleme
Sınıflar

Kaynakça:

“Starting Out with Python,” Tony Gaddis
“The Practice of Computing Using Python,” Punch & Enbody, Global Ed.

“Python How to Program,” Deitel & Deitel

“Think Python: How to Think Like a Computer Scientist” by Allen B

Teslimler:
Ödev-1 Notlandırma: Var
Ödev-2 Notlandırma: Var
Ödev-3 Notlandırma: Var
Ödev-4 Notlandırma: Var

Notlandırma:
Ara sınavlar: %20 * 2

Final sınavı: %30

Ödevler: %5 * 4

Kısa Sınavlar: %1 * 10

Ön Koşullar: Ders için ön koşul yoktur.

Tamamlayıcı Dersler: Proglamlamaya giriş dersi olduğu için herhangi bir tamamlayıcı derse ihtiyaç yoktur.

CENG 115 Ayrık Yapılar

Mantık, önermeler ve ispat yöntemleri. Kümeler. Fonksiyonlar, seriler ve toplamlar. Algoritmalar ve karmaşıklık analizi. Sayılar ve bölünebilme. Matrisler. Tümevarım, iterasyon ve özyineleme. Olasılık teorisi. Sayma teknikleri. Çizgeler ve ağaçlar.

Dersin Amacı

1.Problem araştırma ve çözme strateji, teknik ve araçlarını öğretmek
2.Mantıksal ve matematiksel düşünme yeteneğini kazandırmak
3.Bilgisayar biliminde gereksinim duyulacak matematiksel notasyon ve ortak ayrık matematik kavramları konusunda aşinalık oluşturmak
4.Soyut problemlere getirilen algoritmik çözümleri sunmak suretiyle algoritmik düşünme becerisini geliştirmek

Kaynakça

Zeitz, Paul; 1999; “The Art and Craft of Problem Solving”; John Wiley & Sons, Inc. ,Rosen, Kenneth H.; 2007; “Discrete Mathematics and its Applications”; 6th Ed.; McGraw-Hill ,Stein, Clifford, Drysdale, Robert L., Bogart, Kenneth; 2011; “Discrete Mathematics for Computer Scientists”; Pearson

Öğrenme Çıktıları:

1. Farklı ayrık yapıları karşılaştırabilme ve kullanabilme

2. Problemleri analiz edebilme, uygun çözüm yollarını belirleyebilme

3. Soyutlama yeteneği gösterebilme

Konular
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

Notlandırma

Vize 25%

Kısa Sınav 15%

Ödev 30%

Final 30%

İkinci Sınıf

Course Code Ders Adı Tanım Ön Koşul(lar)
CENG 211 Programlamanın Temelleri

Kontrol Yapıları, Sınıflar ve metotlar, Kalıtım, Çokbiçimlilik, Arayüzler, Ayrıksı Durum Kotarımı, Akışlar ve Dosya G/Ç, Özyineleme, Dinamik Veri Yapıları.

Dersin Amacı

Nesne tabanlı programlama yeteneğini kazandırmak

Nesne tabanlı yazılım tasarımını başlangıç seviyesinde öğretmek

Temel algoritmaların ve veri yapılarının nesne tabanlı kodlanmasını öğretmek

Java API tanımı ve kullanımı orta seviyede öğretmek

Simülasyon programlama için gerekli yetenekleri kazandırmak.

Kaynakça

Walter Savitch; 2012; “Java: An Introduction to Problem Solving and Programming”; 6th Ed.; Upper Saddle River, NJ: Prentice-Hall; ISBN 0-273-75142-5 ,Deitel&Deitel; “Java How to Program”; 9th Ed.; Upper Saddle River, NJ: Prentice-Hall; ISBN 0-273-75976-0

Öğrenme Çıktıları:

Bu dersi tamamladığında öğrenci :

1. Veri yapılarının nesneye dayalı bir biçimde kullanımını uygulama
2. Problem çözümü için algoritmaların nensneye dayalı bir biçimde tasarlanması
3. Farklı yazılım geliştirme yaklaşımlarını bilme ve karşılaştırma
4. Problemleri analiz etme, çözüm geliştirme ve gerçekleştirme
5. Soyutlama yeteneğini nesneye dayalı programlama alanında kullanma
6. Bilgisayar mühendisliği yöntemleri ile gerçek dünya problemlerini çözmek

Konular
Nesne Yönelimli Programlamaya Giriş
Kontrol Yapıları ve veri saklama
Sınıflar, nesneler ve metotlar
Sınıflar, nesneler ve metotlar
Kalıtım
Çokbiçimlilik
Vize
Abstrakt Veri Yapıları
Java API programlama
İstisna ve hata yönetimi
Nesne yönelimli analiz ve tasarım
UML sınıf diyagramları ile tasarım ve koda dönüştürme
Simülasyon programlama
Önemli konuların tekrarı ve dönemin değerlendirilmesi

Notlandırma

Vize 25%

Kısa Sınav 20%

Ödev 20%

Final 35%

CENG 113
CENG 212 Programlama Dilleri Kavramı

Bu derste, programlama dillerinin temel kavramları ve farklı programlama paradigmaları ele alınacaktır. Öğrenciler, aşağıdaki konularda bilgi sahibi olacaklardır: Programlama Dillerine Giriş: Programlama dillerinin tarihçesi, çeşitleri ve temel özellikleri. Programlama Dili Söz Dizimi: Programlama dilinin yapısı, söz dizimi kuralları ve dilin yapısal unsurları. İsimler, Kapsamlar ve Bağlamalar: Değişkenler, fonksiyonlar ve diğer yapılar arasındaki ilişkiler, kapsam kavramları ve bağlamaların nasıl çalıştığı. Kontrol Akışı: Koşullu ifadeler, döngüler ve kontrol yapıları ile program akışının yönetimi. Fonksiyonel Diller (Scheme’e Giriş): Fonksiyonel programlama paradigması, fonksiyonel dillerin özellikleri ve Scheme diline giriş. Veri Türleri: Veri türlerinin tanımlanması, temel veri yapıları ve türler arası dönüşümler. Alt Programlar ve Kontrol Soyutlaması: Alt programlar, fonksiyonlar ve prosedürlerin kullanımı, kontrol soyutlaması. Mantıksal Diller (Prolog’a Giriş): Mantıksal programlama paradigması, Prolog dilinin temelleri ve uygulama örnekleri. Veri Soyutlama ve Nesne Yönelimi: Nesne yönelimli programlama, sınıflar, nesneler, miras ve soyutlama. Ders boyunca, öğrencilere çeşitli programlama dillerinin pratikte nasıl kullanıldığı ve farklı paradigmalara ait dillerin karşılaştırılması konusunda bilgiler sunulacaktır. Ayrıca, her dilin derleme ve çalıştırma aşamaları, yüksek seviyeli fonksiyonların yazılması gibi temel programlama becerileri geliştirilecektir.

Dersin Amacı

Bu dersin amacı, öğrencilere farklı programlama paradigmalarına ait dillerin temellerini öğretmektir. Öğrenciler, programlama dilleri bağlamında sözdizimi, kapsam ve bağlam kavramlarını anlayabilecek ve bu kavramlara uygun şekilde programlama yapabileceklerdir. Ayrıca, fonksiyonel diller ve mantıksal diller gibi çeşitli paradigmalar hakkında bilgi sahibi olacak ve bu dillerle ilgili temel kavramları uygulamalı olarak öğrenebileceklerdir. Dersin sonunda, öğrenciler yeni bir programlama dilini kolaylıkla öğrenebilme ve yüksek seviyeli fonksiyonlar yazabilme becerisi kazanacaklardır.

Dersin Kitabı / Önerilen Kaynaklar

  • M. L. Scott, Programming Language Pragmatics (4th Edition), Morgan Kaufmann, 2016.
  • R. W. Sebesta, Concepts of programming languages (11th Edition), Pearson, 2016.

Öğrenme Çıktıları
1. Farklı programlama paradigmalarına ait dilleri kullanabilme.
2. Yeni bir programlama dilini kolaylıkla kullanabilme yeteneğini gösterebilme.
3. Bir programın derleme ve çalıştırma aşamalarını açıklayabilme.
4. Yüksek seviyeli fonksiyonlar yazabilme.

Konular
Programlama Dillerine Giriş
Programlama Dili Söz Dizimi
İsimler, Kapsamlar ve Bağlamalar
Kontrol Akışı Yapıları
Fonksiyonel Diller (1)
Fonksiyonel Diller (2)
Ara Sınav
Veri Tipleri (1)
Veri Tipleri (2)
Alt Programlar ve Kontrol Soyutlaması (1)
Alt Programlar ve Kontrol Soyutlaması (2)
Mantıksal Diller (1)
Mantıksal Diller (2)
Veri Soyutlama ve Nesne Yönelimi

Değerlendirme

Vize 40%

Ödev 20%

Final 40%

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.

Dersin Amacı

Matematiksel ispat işleyişini öğretmek.

Otomata, biçimsel diller ve Turing makineleri kavramlarını öğretmek.

Bilgisayarın yaratılmasındaki teorik temelleri vermek suretiyle makinenin yeteneklerinin sınırlarının anlaşılmasını sağlamak.

Kaynakça

Lewis, H. R., & Papadimitriou, C. H. (1998). Elements of the Theory of Computation. ACM SIGACT News, 29(3), 62-78.
Sipser, M. (1996). Introduction to the Theory of Computation. ACM Sigact News, 27(1), 27-29.

Öğrenme Çıktıları

1. Dil tanımlarını sınıflandırabilme.
2. Problemleri analiz edebilme, uygun gösterim şekilleri belirleyebilme.
3. Soyutlama yeteneği gösterebilme.
4. Bilgisayar bilimlerindeki bazı zor problemleri tanıyabilme.

Konular
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 Automata
Turing makineleri
Karar verilebilirlik
Chomsky hiyerarşisi
Hesaba dayalı karmaşıklık
NP-tamlık
P’ye karşı NP’nin durumu

Notlandırma

Vize 35%

Final 45%

Ödev 20%

CENG 214 Mantık Tasarımı

Dersin içeriğinde bilgisayar mimarisini anlamak ve tasarlamak için gerekli olan temel bilgi, kavram ve deneyimler öğrenciye kazandırılır. İçerikte; boolean cebir, mantık kapıları, çok seviyeli mantık kapıları, kombinasyonel aritmetik ve mantık sistemleri, sıralı mantık, registerlar ve sayaçlar, bellek birimleri ve programlanabilir mantıkla problem çözme gibi kuramsal ve deneysel çalışmalar bulunur. Öğrencinin mantık ve aritmetik devre tasarımını kuramsal olarak yapabilme, sınama ve laboratuvar ortamında uygulama yeteneği geliştirilir.

Dersin Amacı

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.

Öğrenme Çıktıları:

  1. Bilgisayar mimarisini ve işleyişini kavrama.
  2. Aritmetik ve Mantık işlem biriminin nasıl çalıştığının anlaşılması ve tasarımını yapabilecek seviyeye gelinmesi.
  3. Öğrencinin bellek biriminin ne olduğunu ve nasıl çalıştığını anlaması.
  4. Tanımlanacak problemler için özel devre tasarımlarının öğrenci tarafından yapılabilir olması.

Dersin Kitabı / Malzemesi / Önerilen Kaynaklar

Logic and Computer Design Fundamentals, 4th Edition (2007) Prentice – Hall [M. Morris Mano, Charles Kime] (textbook) Digital Design, 4th Edition (2007) Prentice – Hall [M. Morris Mano, Michael D. Ciletti]

Hafta Konular
1 Sayı sistemleri
2 Aritmetik işlemler ve taban dönüşümleri
3 Kapı devreleri ve Boole denklemleri
4
Devre optimizasyonu ve K-maps
5 Ek kapı tipleri ve üç durumlu mantık
6 Tasarım adımları, hiyerarşik tasarım ve teknoloji haritalaması
7 Vize
8 Decoders, encoder, multiplexer, demultiplexer ile tasarım
9
İkili toplayıcılar ve ikili toplayıcı-çıkarıcılar
10
İkili çarpma ve daraltma ile tasarım
11
bcd adder, carry lookahead generator, magnitude comparator
12
Depolama elemanları ve analizi
13
Sıralı devre tasarımı
14
Durum makinesi tasarımı
Notlandırma:
  • Final Sınavı: 20%
  • Ara Sınav: 30%
  • Lab: 40%
  • Ödev: 10%
CENG 215 Devreler ve Elektronik

Elektrik devrelerinin temelleri ve genel kavramlar (voltaj, akım, güç vb.), temel bileşenler (direnç, bobin, kapasitör, transistör, OPAMP vb.), temel kanunlar (Ohm, Kirchhoff vb.) ve devre analiz yöntemleri. Frekans tepkisi, geçiş analizi, Laplace çevrimi, Fourier serileri. Elektronik ekipmanlara giriş, diyot, transistörler, MOS teknolojisi, mantık aileleri.

Dersin Amacı

1. Elektronik sistemlerin dayandığı temel elektrik mühendisliği prensiplerini ve soyutlamalarını anlamak

2. Temel mühendislik soyutlamalarını kullanarak temel elektronik devreleri çözümleme ve tasarlama

3. Ayrık yapılar ve sayısal elektronik çözümleri arasındaki ilişkiyi kavrama

Kaynakça

Anant Agarwal, Jeffrey H. Lang Foundations of Analog and Digital Electronic Circuits . 2005. Morgan Kaufmann Pub

Öğrenme Çıktıları

1. Elektrik devrelerini analiz edebilme ve tasarım problemlerine uygun çözüm yollarını belirleyebilme
2. Devrelere ilişkin deney tasarlayabilme, uygulayabilme ve sonuçları yorumlayabilme
3. Temel elektronik ekipmanları analiz edebilme ve kullanabilme becerisi gösterebilme, elektronik devreleri tasarlayabilme
4. Sayısal elektroniğin temellerini kavrayarak mantık kapılarının devrelerle gerçekleyebilme

 

Hafta Konular
1 Elektrik devreleri ve temel devre elemanlarına giriş
2 Devre yasaları ve teoremleri
3 Devre analiz yöntemleri
4 1. dereceden devrelerin analizi
5 2. dereceden devrelerin analizi
6 Bağlı kaynaklar ve yükselteçler
7 Büyük ve küçük sinyal modelleri, sinusoidal cevap
8 Dönem arası sınav
9 İşlemsel yükselteç soyutlaması
10 Empedans modeli
11 Süzgeçler
12 Sayısal soyutlama
13 Sayısal kapıların gerçeklenmesi
14 Enerji ve güç

Notlandırma

Yazılı Ara Sınav: %35

Proje Çalışmaları: %20

Yazılı Final Sınavı: %45

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ı.

Öğrenim Çıktıları:

  1. Gerçek sayıların sonlu gösteriminin verilen bir algoritma üzerine etkilerini açıklayabilmek.
  2. Hesaplamalardaki sayısal hatayı çıkarabilmek ve aynı problem için farklı algoritmaların sayısal hatalarını karşılaştırabilmek.
  3. Türev, integral, aradeğerleme ve/veya eniyileme gerektiren sayısal problemleri çözebilmek.
  4. Sayısal problemlere yinelemeli çözümleri uygulayabilmek.
  5. Verilen bir problem tanımına uygun doğrusal/doğrusal olmayan sistemleri yazabilmek.
  6. Verilen doğrusal/doğrusal olmayan bir sisteme uygun sayısal algoritmayı uygulayabilmek.
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

Kaynakça

  • Numerical Analysis, The new international edition, 2ed, Timothy Sauer
  • Numerical Algorithms: Methods for Computer Vi- sion, Machine Learning, and Graphics, J. Solomon Matrix Computations (4th Ed.), G. H. Golub and C. F. Van Loan

Notlandırma:
Ödev-I 10%
Ödev-II 10%
Ara Sınav-I 20%
Ara Sınav-II 20%
Final Sınavı 40%

Teslimler:
Bu derste, dönem boyu işlenilen teorik konuları kapsayan ve derste öğretilen nümerik yöntemleri gerçek hayat problemlerinin çözümünde kullandıran iki adet geniş kapsamlı ödev verilir.
Ödev1 Teslimi Notlandırma: Var
Ödev2 Teslimi Notlandırma: Var

Ön Koşullar: Ön koşul dersi bulunmamakta.

Tamamlayıcı Dersler:
Yeterli linear cebir bilgisi çok faydalı olacaktır.

CENG 218 Algoritmaların Analiz ve Tasarımı

Algoritmaların hesaplamadaki rolü. Fonksiyonların artışı, yinelemeler, olasılıksal analiz ve rastgele algoritmalar, dinamik programlama, hırslı algoritmalar, ileri veri yapıları, çizge algoritmaları ve NP-Tamlık.

Dersin Amacı

Bu derste kazanılan hem teorik hem pratik bilgiler ile bir öğrencinin gerçek yaşamda karşılaştığı matematiksel problemleri çözmek için gerekli olan altyapı ve niteliklere sahip olması beklenmektedir.

Kaynakça

Introduction to Algorithms, 3rd Ed., T. H. Cormen, C. E. Leiserson, R. L. Rivest, C. Stein, MIT Press

Öğrenim Çıktıları:

1. Algoritma yaklaşımı ile problemlere çözüm önerebilme
2. Verilen bir problem için algoritma tasarım seçeneklerini belirleyebilme
3. Uygulamaların karmaşıklıklarını analiz edebilme

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

Notlandırma

Vize 35%

Ödev 20%

Final 40%

Quiz 5%

CENG 222 Olasılık ve İstatistik

Bu ders bilgisayar programları yardımı ile yapılan deneyler ve analizler üzerinde durarak temel olasılık ve istatistik kavramlarını tanıtır. Konular: Permütasyon, kombinasyon, rasgele değişkenler, olasılık dağılımları, Bayesci çıkarım, hipotez testi ve güven aralığı.

Dersin Amacı

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.

Kaynakça

Peter Olofsson, Mikael Andersson, Probability, Statistics, and Stochastic Processes, Wiley. ,Michael Baron, Probability and Statistics for Computer Scientists, CRC Press. ,Allen B. Downey, Think Stats: Probability and Statistics for Programmers, Green Tea Press.

Öğrenim Çıktıları:

1.Olasılık ve rasgele değişken kavramlarını açıklayabilmek ve uygulayabilmek.
2.Yaygın olasılık dağılımlarını ve özelliklerini betimleyebilmek ve kullanabilmek.
3.Betimsel istatistiği kullanabilmek.
4.Dağılım parametrelerini kestirebilmek.
5.Güven aralıklarını hesaplayabilmek.
6.Hipotez test edebilmek.
7.Bilgisayarla işlemi olasılık ve istatistik kavramlarını araştırmak ve nicel incelemeler yapmak için bir araç olarak kullanabilmek.

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

Notlandırma

Final Sınavı 40%

Quiz 10%

Ödev 20%

Ara Sınav 30%

Üçüncü Sınıf

Course Code Ders Adı Tanım Ön Koşul(lar)
CENG 311 Bilgisayar Mimarisi

Temel bilgisayar organizasyonu kavramları. Komut seti mimarisi. Assembly düzeyinde programlama. İşlemci tasarımı. Boruhattı. Veri ve kontrol tehlikeleri. Bellek hiyerarşisi ve önbellek. Paralellik ve sistem başarımı.

DERSLER & LABORATUVARLAR

Dersler: Her hafta 3 saat

Laboratuvar oturumları: Her hafta 2 saat

DERSİN AMACI

Öğrencileri bilgisayar organizasyonu ve tasarımı konusunda temel bilgilerle donatmak.

1. Temel bilgisayar organizasyonu kavramlarını anlamak.
2. Assembly düzeyinde programlar tasarlamak ve uygulamak.
3. İşlemci tasarımı ve komut yürütmeyi anlamak.
4. HDL kullanarak tek çevrimli bir işlemci tasarlamak ve uygulamak.
5. Bellek hiyerarşisi ve önbelleği (cache) anlamak.
6. Sistem performansını değerlendirmek.

ÖĞRENME ÇIKTILARI

1. Özel ve genel amaçlı mikroişlemci tasarımı yapabilme
2.  Mikroişlemci gerçeklemesi ve testi konusunda tecrübe gösterebilme
3.  Assembly dilinde programlama yapabilme

DERSİN KİTABI

Computer Organization and Design: The Hardware/Software Interface (The Morgan Kaufmann Series in Computer Architecture and Design), 5th Edition, by David A. Patterson, John L. Hennessy.

Hafta Ders Konusu
1 Bilgisayar teknolojilerine giriş
2 MIPS assembly (komut seti)
3 MIPS assembly (döngüler)
4 MIPS assembly (prosedür çağrıları)
5
MIPS assembly (makine dili)
6
Bilgisayar aritmetiği
7
İşlemci (veriyolu)
8
İşlemci (kontrol)
9
Boruhattı
10
Veri ve kontrol tehlikeleri
11
Bellek hiyerarşisi ve önbellek
12
Önbellek tasarımı
13
Paralellik
14
Sistem başarımı
CENG 214
CENG 312 Bilgisayar Ağları

Bilgisayar ağlarına genel bakış; paket anahtarlama, İnternet, katmanlı mimari; ağ uygulamaları; web, e-posta, alan adı sistemi; güvenilir veri iletimi, tıkanıklık ve akış kontrolü, UDP, TCP; anahtarlama, yönlendirme, IP; ortam erişim kontrolü, yerel alan ağları, Ethernet.

DERSLER

Her hafta 3 saat

DERSİN AMACI

Öğrencileri bilgisayar ağları konusunda temel bilgilerle donatmak.

1. Bilgisayar ağlarının genel yapısını ve katmanlı mimariyi anlamak.
2. Temel ağ protokollerinin çalışma prensiplerini incelemek.
3. Yönlendirme, tıkanıklık kontrolü, akış kontrolü ve ortam erişim kontrolü için kullanılan algoritmaları analiz etmek.

ÖĞRENME ÇIKTILARI

1. İletişim sistemlerinin temel kavramlarını kullanarak sistem analizini yapabilme.
2. Katmanlı ağ modeli ve Internet protokollerini analiz edebilme.
3. Ağ ve protokol tasarımlarını gerçekleştirebilme.

DERSİN KİTABI

Computer Networking: A Top-Down Approach 8th edition, Jim Kurose, Keith Ross, Pearson, 2022.

Hafta Konu
1 Ağlara Genel Bakış (İnternet, paket anahtarlama)
2 Ağlara Genel Bakış (Yönlendiriciler, katmanlı mimari)
3 Uygulama Katmanı (Ağ uygulamalarının prensipleri)
4 Uygulama Katmanı (HTTP, SMTP, DNS)
5
Uygulama Katmanı (Soket programlama)
6
Taşıma Katmanı (Güvenilir veri iletimi)
7
Taşıma Katmanı (UDP, TCP servisleri)
8
Taşıma Katmanı (Tıkanıklık ve akış kontrolü)
9
Ağ Katmanı (Anahtarlama, iletme)
10
Ağ Katmanı (Yönlendirme, OSPF, BGP)
11
Ağ Katmanı (Yazılım tanımlı ağlar SDN)
12
Veri Bağı Katmanı (Hata kontrolü, ortam erişimi – MAC)
13
Veri Bağı Katmanı (LANs)
14
Veri Bağı Katmanı (MPLS)
CENG 315 Bilgi Yönetimi

Veritabanı Yönetim Sistemlerine Genel Bakış, Veritabanı Yönetim Sistemi Mimarisi, İlişkisel Veri Modeli, İlişkisel Veritabanı Tasarımı, İlişkisel Cebir, SQL (DML), SQL (DDL), Normalizasyon, Tutarlılık ve Güvenlik, Sorgu Etkinliğini Arttırma, Koşut Zamanlılık, Dönem Projeleri

Dersin Amacı

Bilgi sistemi bileşenlerinden olan veritabanı tasarlamayı, yaratmayı ve sorgulamayı öğretmek, etkin bilgi sistemi yaratabilmeleri ya da olan bilgi sistemlerini iyileştirebilmeleri için veri tabanlarında tutarlılığı sağlayan yöntem ve teknikleri öğretmek,bilgi sistemlerinde yer alan veri yönetimi katmanın etkin kullanıcıları olabilmeleri için sorgulama tekniklerini öğretmek ve kullandırmak.

Kaynakça

Edward Sciore, Database Design and Implementation, Second Edition, Wiley, 2020. ,Raghu Ramakrishnan and Johannes Gehrke, Database Management Systems, McGraw-Hill, 2001, 3rd Edition. ,J. Ullman, Principles of Database Systems, Second Edition, Computer Science Press, 1982. ,R. Elmasri, S.K. Navathe, Fundamentals of Database Systems, Third Edition, Addison-Wesley, 2000.

Öğrenme Çıktıları:

1. Her türlü ilişkisel veritabanı modelini tasarlayabilme yeteneğini kazandırmak

2. Her türlü ilişkisel veritabanını yaratma yeteneğini kazandırmak

3. İlişkisel cebir ve SQL dilini iyi seviyede öğretmek

4. Veritabanlarındaki normalizasyon, koşut zamanlılık, güvenlik ve tutarlılığı sağlama yöntemlerini öğretmek

5. Veritabanı kullanmalarını sağlamak

Konular
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
Eşzamanlılık Yönetimi
Geri Kazanma
Indeksler, Pencereler
Verimli Sorgu Eniyileme
Dönem Projeleri

Notlandırma

Vize 25%

Uygulama / Pratik 10%

Araştırma Sunumu 25%

Final 40%

CENG 316 Yazılım Mühendisliği

Kaynakça:

  • Software design: IEEE STD 1016 – Systems Design—Software Design Descriptions
  • Software test: IEEE STD 29119 – Software and Systems Engineering — Software testing

Ders amaçları:

Bu dersin sonunda öğrenciler yazılım mühendisinin rolü, yazılım ve ilkelerinin değerlendirilmesi, yazılım yaşam döngüsü modelleri, gereksinim analizi, spesifikasyon, tasarım, verifikasyon ve validasyon; ölçütlerin kullanımı, ekip oluşturma ve insan-bilgisayar arayüzü tasarımı konularında bilgi sahibi olacaklardır.

Haftalık Plan:

Hafta Ders Taslağı İçerik
1 Giriş Yazılım Geliştirme Yaşam Döngüsü
Ekip Oluşturma
Ders Hakkında Bilgilendirme
2 Yazılım Tasarımı Temel Tasarım Kavramları, Yazılım Mimarisi
3 Tasarım Standardı
4 Tasarım Taslak Tartışması
5 Tasarım Değerlendirme Toplantısı
6 Yazılım Testi Temel kavramlar, Test Tasarım Teknikleri
7 Test Standardı
8 Test Raporu Taslak Tartışması
9 Test Raporu Değerlendirme Toplantısı
10 Yazılım Gerçekleştirimi Yazılım İlk Sürüm Gösterimi
11 Güncellenmiş Tasarım & Test Raporu Tartışması
12 Güncellenmiş Tasarım & Test Raporu Tartışması
13 Yazılım Son Sürüm Gösterimi
14 Final Sınavı  

Teslimler

Bu derste, sınıfa bir proje tanımı verilir ve öğrenciler 5-8 üyeden oluşan takımlar oluşturur. Her takım, gereksinim analizi yapar, yazılım tasarımını ve test dokümanını hazırlar, yazılımın gerçekleştirimini yapar. Bu faaliyetlerin çıktıları Yazılım Tasarım Dokümanı (SDD), Test Raporu ve Uygulamanın Gerçekleştirimidir.

Teslim Notlandırma
Tasarım Raporu Taslak Teslimi Yok
Tasarım Raporu Teslimi Var
Tasarım Değerlendirme Raporu Teslimi Var
Güncellenmiş Tasarım Raporu Teslimi Var
Test Raporu Taslak Teslimi Yok
Test Raporu Teslimi Var
Test Değerlendirme Raporu Teslimi Var
Güncellenmiş Test Raporu Teslimi Var
Yazılımın İlk Sürümünün Teslimi ve Gösterimi Var
Yazılımın Son Sürümünün Teslimi ve Gösterimi Var

Notlandırma:

  • Software Design %15
    • SD Review %3
  • Test Documents %15
    • Test Review %3
  • Software System %20
  • Final %30
  • Peer assessment %14

Çıktılar:

C1. Verilen bir proje konusunda gereksinimleri belirleyebilme.

C2. Projedeki fonksiyonel ve fonksiyonel olmayan gereksinimler arasındaki farkları ayırt edebilme .

C3. Nesne-tabanlı yaklaşımla tasarım yapabilme.

C4. Proje tanımı yazabilme.

C5. Süreç modelini kullanabilme, uygulayabilme.

Tamamlayıcı dersler:

Programlama Temelleri (CENG211), Bilgi Yönetimi (CENG315) ve Proje Yönetimi (CENG323) derslerini daha önce almış olmak şarttır.

Bir analiz ve tasarım metodolojisi hakkında önceden bilgi ve deneyim sahibi olmak çok faydalı olacaktır.

CENG 318 İnsan Bilgisayar Etkileşimi

İnsan bilgisayar etkileşimi kavramları ve tarihçesi, girdi cihazları ve etkileşim teknikleri, bilgi araçları, kullanıcı arayüzü tasarım paradigmaları, 3B kullanıcı arayüzleri, uyarlanır arayüzler, kullanıcı modellemesi, ses tanıma ve etkileşimli arayüzler, giyilebilir bilgisayarlar, çok kipli arayüzler ve algısal arayüzler.

Dersin Amacı

Öğrencilere insan faktörleri yöntemlerini ve prensiplerini tanıtmak
İnsan bilgisayar etkileşimi ve kullanıcı merkezli tasarım kavramlarını öğretmek
Öğrencilere kullanılabilirlik değerlendirmesi yapma yeteneğini kazandırmak

Kaynakça

Dix, A., Finlay, J. , Abowd, G., and Beale, R. ;2003; “Human-computer interaction (3rd ed.)”; Prentice Hall. ,Preece, J., Rogers, Y., and Sharp, H.;2002; “Interaction design : beyond human-computer interaction”; John Wiley & Sons. ,Norman, D.; 1988; “The design of everyday things”; New York: Basic Books. ,Carroll, J.M. ;2001; “Human Computer Interaction in the New Millenium”; Prentice Hall.

Öğrenim Çıktıları:

1.İnsan bilgisayar etkileşimi teorisi ve araştırmalarını kavrama.
2.Sistem tasarımının kullanıcı tavır ve davranışları üzerindeki etkisini tanıma.
3.Kullanıcı merkezli tasarım ve değerlendirme süreçlerini tanımlama.
4.Sistemlerin tasarım ve gerçekleştiriminde kullanıcı merkezli tasarım süreçlerini kullanabilme.

Hafta Konu
1 Giriş, insan bilgisayar etkileşiminin tarihçesi.
2 Kolaylık, kullanılabilirlik. Kullanılabilirlik prensipleri.
3 Teknolojinin sınırları. İnsan bilgisayar etkileşiminde yeni teknolojiler.
4 Prototiplendirme teknikleri.
5 Kullanılabilirliğin değerlendirmesi. Kestirimci ve yorumlayıcı değerlendirme.
6 Kullanıcı arayüzü tasarım paradigmaları. Etkileşim tasarımı süreci.
7 Vize sınavı
8 Kullanıcı modellemesi ve kullanıcı profili. Uyarlanır arayüzler.
9 3B kullanıcı arayüzleri, artırılmış gerçeklik.
10 Ses tanıma ve etkileşimli arayüzler.
11 Görü tabanlı, algısal arayüzler.
12 Yaygın hesaplama. İnsan Bilgisayar Etkileşimi geleceğe yönelik öneriler: Yapay zekanın, ağların rolü vs.
13 Proje sunumları.
14 Proje sunumları.

Notlandırma

Vize : %10
Araştırma Sunumu : %10
Final : %20
Kısa Sınav : %10
Ödev : %10
Proje : %20
Rapor : %10
Küçük Grup Çalışması : %10

CENG 322 İşletim Sistemleri

Ders, temel işletim sistemi işlevlerini ve uygulama detaylarını sunar. Temel işletim sistemi kavramlarını kapsar, süreç (process) kavramlarını ve süreç yönetim politikalarını tanıtır, ana bellek ve sanal bellek tekniklerini, ayrıca depolama ve G/Ç (girdi/çıktı) yönetimi ile ilgili konuları ele alır.

Dersin Amacı

  1. Temel işletim sistemi kavramlarını anlayabilme.

  2. Süreç/iş parçacığı yürütme, senkronizasyon ve zamanlama konularını anlayabilme.

  3. İşletim sisteminin bellek yönetimi politikalarını anlayabilme.

  4. Depolama yönetimi tekniklerini anlayabilme.

Kaynakça

A. Silberschatz, P.B. Galvin, G. Gagne: Operating System Concepts, 10th Edition, John Wiley & Sons, 2018.

Öğrenme Çıktıları:

1. İşletim sistemlerinin temel kavramlarını edinerek modern mimari ve işletim sistemlerinde bunları analiz edebilme ve tasarım yapabilme.

2. İşletim sistemlerinin yer aldığı sistemleri analiz edebilme ve ilgili problemleri tanımlayabilme.

3.  İşletim sistemlerinin problemleriyle ilgili farklı çözüm yöntemlerini karşılaştırabilme ve en uygununu seçebilme.

DERS LAB
Giriş + Temel Bilgiler – CH1 Linux’a Giriş
İşletim Sistemi Yapıları – CH2 Shell script
Süreçler – CH3 C
Süreçler – CH3 C Pointer
Süreçler Arası İletişim (IPC) – CH3 Süreç
İş Parçacıkları (Threads) – CH4 Süreç
İş Parçacıkları (Threads) – CH4 Süreç
Eşzamanlama (Synchronization) – CH6 İş Parçacıkları
Ara Sınav İş Parçacıkları
Eşzamanlama – CH7 İş Parçacıkları/Eşzamanlama
CPU Zamanlama – CH5 Programlama Ödevi 2 DEMO
Ana Bellek – CH9 Programlama Ödevi 3 DEMO
Sanal Bellek – CH10

Notlandırma

Ara Sınav 20%

Ödevler 40%

Final 40%

CENG 323 Proje Yönetimi

Kaynakça:

  • IEEE Std 830-1998, IEEE Recommended Practice for Software Requirement Specifications
  • IEEE 16326- Systems and Software Engineering – Lifecycle Processes- Project Management
  • IEEE Std 1058- Standard for Software Project Management Plans

Ders Amaçları:

Bu dersin sonunda öğrenciler problem analizi, yazılım gereksinimleri analizi ve yazılım proje yönetimi gibi yönleri kapsayan yazılım geliştirme yaşam döngüsünü kavrayacaklardır.

Hafta Ders Taslağı İçerik
1 Giriş Yazılım Geliştirme Yaşam Döngüsü
Ekip Oluşturma
Proje Beyanı Hazırlama
2 Problem Analizi Sorun Analizi
eEPC Aracı Tanıtımı
3 AS-IS Taslak Tartışması
4 TO-BE Taslak Tartışması
5 AS-IS&TO-BE Değerlendirme Toplantısı
6 Yazılım Gereksinim Analizi Kullanım örneği, Kullanıcı Hikayesi, UML
7 IEEE SRS Standardı
Kullanıcı Arayüzü Tasarım Aracı
8 SRS Taslak Tartışması
9 SRS Değerlendirme Toplantısı
10 Yazılım Proje Yönetimi Yazılım Proje Yönetimi
11 IEEE SPM Standardı
Proje Yönetim Araçları
12 SPMP Taslak Tartışması
13 SPMP Değerlendirme Toplantısı

Teslimler/Ödevler/Projeler:

Bu derste, sınıfa bir proje tanımı verilir ve öğrenciler 5-8 üyeden oluşan takımlar oluşturur. Her takım, proje beyanını hazırlamaktan sorun analizine, gereksinim analizine ve yazılım proje yönetimine kadar çeşitli proje yönetimi faaliyetlerine katılır. Bu faaliyetlerin çıktı belgeleri Proje Beyanı, Problem Analizi Raporu (AS-IS ve TO-BE’yi içeren), Yazılım Gereksinim Raporu (SRS) ve Yazılım Proje Yönetim Planı’dır (SPMP).

Teslim Notlandırma
Proje Beyanı Teslimi Var
AS-IS Taslak Teslimi Yok
TO-BE Taslak Teslimi Yok
Problem Analizi Raporu Teslimi Var
Problem Analizi Değerlendirme Raporu Teslimi Var
Güncellenmiş Problem Analizi Raporu Teslimi Var
SRS Taslak Teslimi Yok
SRS Teslimi Var
SRS Değerlendirme Raporu Teslimi Var
Güncellenmiş SRS Teslimi Var
SPMP Taslak Teslimi Yok
SPMP Teslimi Var
SPMP Değerlendirme Raporu Teslimi Var
Güncellenmiş SPMP Teslimi Var

 Notlandırma:

Proje Beyanı %2
Problem Analizi %15
– PA Değerlendirme %3
SRS %15
– SRS Değerlendirme %3
SPMP %15
– SPMP Değerlendirme %3
Final Sınavı %40
Takım Değerlendiresi %14

Ders Öğrenme Çıktıları

C1.Bir proje yöneticisi için gerekli kişisel ve teknik özellikleri tanıyabilmek.

C2.Proje yönetiminin temel adımlarını ve risk faktörlerini tanımlayabilmek.

C3.Bir projenin hazırlık, planlama, uygulama, denetim ve tamamlama aşamalarının ana hatlarını tanımlayabilmek.

C4.Bir proje yöneticisi için gerekli temel ekonomik kavramları anlatabilmek.

C5.MS Project yazılımını kullanarak örneklerle bilgisayar destekli proje planlama ve yönetimini gösterebilmek.

Tamamlayıcı Dersler:

  • Programlama Temelleri (CENG211) dersini daha önce almış olmak şarttır.
  • Aynı zamanda Bilgi Yönetimi (CENG315) dersi alıyor olabilirsiniz.
  • Bir analiz ve tasarım metodolojisi hakkında önceden bilgi ve deneyim sahibi olmak çok faydalı olacaktır.
CENG 370 Ana Bilgisayarlar

Ana Bilgisayarlar, Hercules ana bilgisayar emülatörü, VM/SP İşletim Sistemi, GCS/RSCS, Rexx ve COBOL programlama

Dersin Amacı

Bu ders, öğrencilere ana bilgisayar sistemlerinin temellerini tanıtır. İşlenecek konular arasında ana bilgisayar sistemlerinin tarihçesi ve kişisel bilgisayarlardaki mevcut uygulamalarını içerir.

Kaynakça

IBM.(1988).Virtual Machine/System Ürün Sürüm 6 Terminal Kaynakçası, IBM, GC19-6206-05, IBM Yayınevi ,Hugenbruch, Brian W, z/VM Kullanım Temel Bilgiler, IBM Press, www.vm.ibm.com/education/basics/j0usezvm.html ,Fosdick, Howard. (2005). Rexx Programcının Kaynakçası, Wiley Yayınevi ,IBM. (1982). VM-SP Giriş, GC19-6200-1 File No. S370/4300-20, IBM Yayınevi ,IBM. (1984). VM/SP Kurulum Kılavuzu, Release 3.1,IBM Yayınevi ,Lewis,Richard.(2015).Yeni başlayanlar için z/VM Laboratuarı, share.confex.com/share/125/webprogram/Session17471.html ,IBM.(2012).Yeni Ana Bilgisayara Giriş, www.redbooks.ibm.com/abstracts/sg246366.html

Öğrenme Çıktıları

1. IBM ana bilgisayar işletim sistemlerinin işleyişini öğrenme
2. Ana bilgisayar işletim sistemini çalıştırabilme, ağa bağlama ve yönetme
3. Ana bilgisayarda Rexx’te ve COBOL dilinde programlar yazabilme
4. Proje sonuçlarını sunabilme

Ana Bilgisayarlara Giriş
Hercules ana bilgisayar öykünücüsünün kurulumu
IBM ana bilgisayar işletim sistemlerine genel bakış
Sanal Makine Kavramları
VM / SP Tanıtımı ve Özellikleri
VM/SP’nin yapılandırılması ve yönetimi
Sanal cihazların konfigürasyonu
GCS ve RSCS’in Yapılandırılması
Networking fundamentals and IP-NJE
Sayfalama, Sanal Depolama ve Kontrol Programı
REXX Programlama dili
COBOL: Ortak İş Odaklı Dil
Yığıt İşleme, JCL
Ana Bilgisayarlarda Güvenlik

Notlandırma

Vize 20%

Ödev 30%

Araştırma Sunumu 25%

Final 25%

CENG 381 Stokastik Süreçler

Olasılık, şans değişkenleri ve parametre kavramlarının hızlı olarak gözden geçirilmesi, olasılık dağılışları, momentler, olasılıklar ile ilgili eşitsizlikler, merkezi limit teoremi, stokastik süreçler, Poisson süreci, doğum-ölüm süreci, Markov zincirleri, kuyruk teorisine giriş ve temel kavramlar, Little Kanunu, M/M/1 kuyruk sistemleri.

Dersin Amacı

Stokastik, Mantıksal ve matematiksel düşünme yeteneğini geliştirmek. Stokastik sistemler anlamak için gerekli altyapıyı oluşturmak. Klasik ve bilgisayar yoğun istatistiksel yöntemleri bilme, olasılıksal modelleme yapma.

Kaynakça

Arnold O. Allen.(1990) Probability, Statistics, and Queueing Theory with Computer Science Applications. (2nd Ed.), Academic Press, Boston,Sheldon M. Ross (1996) Stochastic Processes, (2nd Ed.) J. Wiley & Sons. New York

Öğrenim Çıktıları

1.Şans değişkenlerini anlayıp tanımlayabilme becerisi

2.Stokastik süreçler konusunda bilgilenmek ve bazı basit analizleri yapabilme yeteneği

3.Kuyruk sistemlerini anlayabilmek ve bazı basit kuyrukların analizlerini yapabilme yeteneği

4.Kuyruk sistemlerinde bazı performans kriterlerini hesaplayıp analiz edebilmek yeteneği

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

Notlandırma

Vize: %40

Final: %60

CENG 382 Bilgi Teorisi

Ders, bilgi kuramı temellerini öğretmeyi hedefler. İçerik olarak; “Shannon’s information theory and elementary binary coding schemes with and without noise, information, entropy, simple sources, Markov sources, continuous sources, information channels, average error, ambiguity, transformation, capacity, noiseless coding, Kraft-McMillan theorem, Shannon-Fano and Huffmann coding schemes, error-correcting codes, linear codes, cyclic code ve Data Compression” konuları işlenir.

Dersin Amacı:

Bilgi kuramının temel kavramlarının öğrenilmesi. Bilgi iletişimi ve sinyal işlemede problemlerin nasıl tanımlanacağı, formüle edileceğinin öğrenilmesi. Bilgi iletişimi ve sinyal işlemede problemlerin nasıl çözümlenebileceğinin öğrenilmesi.

Kaynakça:

T. M. Cover, J. A. Thomas, ‘Elements of Information Theory’, 2nd. Edition, Wiley,2006 ,P. S. Nuggehalli, ‘Information Theory and Coding’, CEDT, IISc, Bangalore, http://nptel.iitm.ac.in/courses/Webcourse-contents/IISc-BANG/Information%20Theory%20and%20Coding/Learning%20Material%20-%20ITC.pdf ,R. G. Gallager, ‘Principles of Digital Communication’, Chapters 1 to 3, Cambridge Univ. Press, 2008 ,R. G. Gallager, ‘MIT 6.450 Principles of Digital Communications I, Lectures 1 to 7’; YouTube: MIT OCW, 2006 ,R. W. Yeung, ‘A First Course in Information Theory’, NY: Kluwer Academic/Plemu Publishers, 2002 ,A. E. Gamal and Y.-H. Kim, ‘Lecture Notes on Network Information Theory’, online, 2010

Öğrenim Çıktıları:

1. Bilgi kuramının temel kavramlarını kullanarak bilgi iletişimi ve sinyal işlemede problemleri analiz etmek ve modellemek.

2. Teknolojik değişim ve yeni gereksinimlere göre bilgi kuramının eksikliklerini analiz etme, tanımlama ve araştırma yapabilme becerisine sahip olma

3. Bilgi kuramını disiplinler arası çalışmalar için analiz etme ve geliştirme becerisini edinme.

4. Var olan bilgi iletişim ve sinyal işleme kalitesini ve verimliliğini analiz etme ve ölçme becerisine sahip olma.

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

Notlandırma:

Vize: %25

Ödev: %20

Araştırma Sunumu: %20

Final: %35

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.

Dersin Amacı

Gerçek-zamanlı sistemlerin temel kavramlarını tanıtmak. Gerçek-zamanlı işletim sistemlerini geliştirebilmek.

Kaynakça

Phillip Laplante, Real-Time Systems Design and Analysis – An Engineer’s Handbook, IEEE Press, 1993.
S.H.Son, Advances in real-time systems, Englewood Cliffs, N.J.: Prentice Hall, c1995.

Öğrenme Çıktıları

1. Gerçek-zamanlı sistemleri sınıflayabilmek
2. Gerçek-zamanlı sistemleri tanımlama ve formel tekniklerle tasarım
3. Gerçek-zamanlı işletim sistemi çekirdeği tasarlayabilmek ve işletim sistemleri üzerinde program geliştirebilmek
4. Formel yöntemleri kullanmak konusunda yetenek göstermek

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ı)

Notlandırma

Yazılı Vize Sınavı: 20%
Yazılı Final Sınavı: 30%
Ödevler: 10%
Dönem Projesi: 40%

CENG 384 Mikroişlemciler

8051 donanım veyazılım özelikleri. 8051 çevirici dili(assembly) programlama. 8051 mimarisi. 8051 giriş / çıkış port programlama, zamanlayıcı programlama, seri port programlama vekesmekontrol programlama.

Dersin Amacı

Mikroişlemci ve mikrobilgisayarların elemanları, mikroişlemciler için yazılım ve donanım; mikrodenetleyiciler; mikrodenetleyicilerle gömülü sistem tasarımı, bellek arayüzü, tipik mikroişlemci/denetleyicilerin analog-dijital giriş/çıkış arayüzleri vekesmearayüzü; assembly ile programlama.

Kaynakça

The 8051 Microcontroller, 4th Edition (2007) Prentice- Hall [Scott MacKenzie, Raphael Chung-Wei Phan] (textbook)

Öğrenme Çıktıları

OC1: Çevirici dili(assembly) ile 8051 programlamayı öğretmek.
OC2: Mikroişlemci, mikrodenetleyici kavramlarını açıklamak ve karşılaştırmak.
OC3: 8051 mikrodenetleyici ailesini ve mimarisini öğretmek.
OC4: 8051 yazılım ve donanım özelliklerini açıklamak.

Konular
Ders tanıtımı ve dönem genel bakışı
Mikrobilgisayarlara giriş + eprom
Eprom’lu BCD’den 7 segment display’e gosterim
8051 donanımı
8051 komut kümesi
8051 komut kümesi
Vize
Hesap makinesi tasarımı
8051 zamanlayıcısı
Saniye sayacı deneyi
ADC + pod + LM135
ADC ile sıcaklık ölçümü
8051 seri portu
8051 kesmeleri

Notlandırma

Ara Sınav 40%

Final 20%

Lab 40%

CENG 385 Matematiksel Mantık

Ders İçeriği

Karmaşık sorunları mantıksal açıdan incelemek, tanımlamak ve çözmek amacıyla, önerme, yüklem, bulanık ve zaman mantıklarını ayrı ayrı ya da karma kullanmak.

Dersin Amacı

1.Doğal dillerde verilen tümceleri, matematiksel mantıklar ile tanımlayabilmek

2.Matematiksel mantıklar ile verilen tanımlamalardan, matematiksel çıkarımlar yapabilmek

3.Karmaşık sorunların, belirsizliğini, çok anlamlılığını ve zaman içerisinde değişimini matematiksel tanımlayabilmek

4.Öz devinimli çıkarım uygulamaları kullanarak, örnek karmaşık sorunları çözebilmek

Kaynakça

 

Mendelson, Elliott; 1997; “Introduction to mathematical logic”; Chapman& Hall; ISBN 0-412-80830-7 ,Bell,J.L.; 1997; “A course in mathematical logic”; 1997; N.H.; ISBN 0-7204-2844-0 ,Kelly, John; 1997; “The Essence of Logic”; ISBN 0-13-396375-6 ,Enderton, Herbert B.; 2001; “A mathematical introduction to logic”; Academic Press; ISBN 0-12-238452-0 ,Gabbay, Dov M.; 2000; “Temporal logic:mathematical foundations and computational aspects”; Oxford: Clarendon press; ISBN 0-19-853768-9

Öğrenme Çıktıları

1. Doğal dil tümcelerin anlam çokluklarını çözümler

2. Sorunları matematiksel mantıklar ile tanımlar

3. Öz devinimli çıkarım düzeneklerini açıklar

4. Mantıksal çözümler üretir

Konular
Giriş
Önermeler Mantığında Önermeler
Önermeler Mantığında Normal Formlar
Önermeler Mantığının Anlamları
Önermeler Mantığında Çıkarım
Yüklem Mantığında Anlam ve Yapı
Yüklem Mantığında Karşılanabilirlik
Yüklem Mantığında Formal Sistemler
Yüklem Mantığında Tamlılık
Yüklem Mantığında Kararsızlık ve Tamsızlık
Özet
Yüksek-Dereceli Yüklem Mantığı
Gelişmiş Konular
Bulanık Mantık

Notlandırma

Vize: 24%

Kısa Sınav: 6%

Ödev: 10%

Sunum: 30%

Final: 30%

CENG 386 Bulanık Mantık Sistemleri

Bulanık mantıkların matematiksel temellerini incelemek; kuramsal bulanık dizgelerin özelliklerini incelemek; bulanık dizgeler kullanarak, insanın esnek mantığını benzetmek; örnek bulanık dizgelerin uygulamalarını geliştirmek

Dersin Amacı

1.Bulanık mantıkların matematiksel temellerini öğrenmek.

2.Bulanık kuramsal dizgelerin özelliklerini öğrenmek.

3.İnsanın esnek mantığını benzeten örnek uygulamalar geliştirmek.

Kaynakça

Nguyen, Hung. T; Walker, Elbert A.; 2005; “A First Course in Fuzzy Logic”, 3rd Edition; Chapman & Hall/CRC; ISBN-10: 1584885262; ISBN-13: 978-1584885269 ,Yen, John; Langari, Reza; 1999; “Fuzzy Logic: Intelligence, Control, and Information”; Prentice Hall; ISBN-10: 0135258170; ISBN-13: 9780135258170 ,Sivanandam, S.N.; Sumathi, S.; Deepa, S.N.; 2006; “Introduction to Fuzzy Logic Using MATLAB”; Springer; ISBN-10: 3540357807; ISBN-13: 978-3540357803

Öğrenme Çıktıları

1. Bulanık mantık kullanarak, uysal mantık örneklemek

2. Bulanık mantık kullanarak, esnek dizge davranışları benzetmek

3. Olabilirliğe dayalı dizgeler geliştirir

4. Akla yatkın dizgeleri değerlendirir

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

Notlandırma

Vize: 30%

Kısa Sınav: 10%

Ödev: 10%

Araştırma Sunumu: 20%

Final: 30%

CENG 388 Web Programlama

Web and .NET çerçevesi, ASP.NET ile yazılım geliştirme, web servisleri ile programlama, MVC programlama.

Kaynakça

Cal Henderson, Building Scalable Web Sites: Building, Scaling, and Optimizing the Next Generation of Web Applications, O Reilly Media, 2006. ,John Allspaw, The Art of Capacity Planning: Scaling Web Resources, O Reilly Media, 2008 ,Theo Schlossnagle, Scalable Internet Architectures, Sams, 2006

Öğrenme Çıktıları

Bu dersi tamamladığında öğrenci :

1. ASP .NET ile web yazılımı geliştirmeyi tanıtmak
2. .NET ortamında web üzerinde çalışacak yazılımı geliştirme yöntemlerini açıklamak
3. Web hizmetleri ile ilgili temel kavramları anlatmak
4. MS Visual Studio programını kullanarak yazılım proje geliştirmesini göstermek

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

Notlandırma

Vize: 25%

Ödev: 40%

Final: 35%

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.

Dersin Amacı

Mobil cihazları programlama yeteneği kazandırmak. Android platformu bileşenlerini tanıtmak. Mobil uygulamalar ile ağ servislerini bir araya getiren uygulamalar geliştirme pratiği kazandırmak.

Kaynakça

Android Programming: The Big Nerd Ranch Guide by Bill Phillips, Brian Hardy, 2nd Ed.

Öğrenme Çıktıları

Mobil cihaz programlamanın temel kavramlarını açıklayabilme

Mobil uygulama kullanıcı arabirimlerini tasarlayabilme ve gerçekleyebilme

Ağ servislerini kullanan mobil uygulamalar tasarlayabilme ve gerçekleyebilme

Mobil uygulama kullanıcı deneyimini analiz edebilme

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.

Dersin Amacı

Bulut bilişim mimarisini, çalışma prensiplerini ve bulut sistemlerini tanıtmak. Bulut sistemleri üzerine web uygulamaları, mobil uygulamalar ve yazılımlar inşa etme, tasarlama, programlama yeteneği kazandırmak. Bulut üzerinde paralel işleme, depolama, güvenlik, ölçeklenme, yönetim gibi konularını ele alarak bulut teknolojilerini anlamak ve mimari yapısi için karar verebilme pratiği elde etme.

Kaynakça

K. Hwang, G. Fox and J. Dongarra, Distributed and Cloud Computing: From Parallel Processing to the Internet of Things, Elsevier, 2012

Öğrenme Çıktıları

Bulut bilişim konseptlerinin temel kavramlarını açıklayabilme

Bulut bilişim sistemlerinin artılarını ve eksilerini anlamak, bulut platformlarındaki gereçleri kullanabilmek

Uygulama veya sistem geliştirirken, işlevsel olmayan gereksinimleri anlayarak maliyet, performans, uygunluk, güvenlik…vb gibi konuları göz önünde bulundurarak uygun platformun, konfigürasyonun belirlenebilmesi ve karar verilebilmesi

Amazon Web Services, Microsoft Azure, Google App Engine gibi PaaS platformlar üzerinde çalışan mobil veya web uygulamaları tasarlayabilme ve gerçekleyebilme

Bulut sistemleri üzerine kurulan uygulamaları analiz etmek, gözlemek ve sistemi değişen gereksinimlere göre optimize edebilmek

Bulut sistemleri üzerine kurulacak olan yazılımların ürünleştirilebilmesi, markalaştırılması, şirketleştirilerek piyasaya çıkarılabilmesi

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.

Dersin Amacı

Dersin temel amacı öğrencilerin imge işleme ve imge içerik analizi hakkında temel bilgi sahibi olmalarıdır. Dersin hedef kitlesi son sınıf lisans öğrencileri ve başlangıç aşamasındaki lisanüstü öğrencilerdir. Dersin lisansüstü sayısal imge işleme ve üç boyutlu fotoğraf benzeri konulu derslere hazırlık teşkil etmesi amaçlanmaktadır.

Kaynakça

Computer Vision: Algorithms and Applications, R. Szeliski, 2010

Öğrenme Çıktıları:

İmge analiz yöntemlerini endüstriyel problemlere uygulayabilme
Verilen bir problem için farklı imge içerik analizi yöntemlerini karşılaştırabilme
Temel imge işleme yöntemlerini problem çözümlerinde kullanabilme
Temel imge işleme yöntemlerini ve özelliklerini listeleyebilme
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

Course Code Ders Adı Tanım Ön Koşul(lar)
CENG 400 Yaz Stajı

Kaynakça:

  • Bilgisayar Mühendisliği Bölümü Staj Yönergesi

Ders amaçları:

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.

Haftalık Plan:

En az 20 iş günü staj yapılır. Staj tarihleri akademik takvim ders tarihleri ve yaz okulu ile çakışmamalıdır.

Teslimler

Staj sonunda teslim edilecek belgeler :

Staj Raporu

Firma Anketi

Öğrenci Anketi

Notlandırma

  • Staj Raporu %100

Çıktılar

Ç1. Üniversite eğitimlerinde elde edilen kuramsal bilgiyi gerçek hayat uygulamalarına aktarabilme.

Ç2. Bilgisayar mühendisliği mesleğini, görev ve sorumlukları konusunda bilinçlenerek seçebilme becerisi.

Ç3. Staj süresince bulundukları çalışma ortamını gözlemleyerek, çalışma hayatı için seçeceği sektörü belirleyebilme becerisi

Ç4. Uygulamada karşılaştığı sorunları çözme konusunda yalnız ya da takım olarak seçenekler üretebilme.

Ç5. Sözlü ve yazılı iletişim becerilerini geliştirebilme, yabancı dil bilgisinin önemini kavrayabilme.

Ç6. Edindiği bilgileri resmi bir rapor halinde sunabilme.

Ön koşul

  1. sınıfın sonuna kadar olan tüm dersleri almış olması önerilir.
CENG 411 Bilgisayar Mühendisliğinde Profesyonellik

Bilgisayar muhendisliginin sosyal boyutunu ve modern dunyadaki yerini konumlandirmak. Mahremiyet ve bilgisayar guvenligi konularinin teorisi ve pratigi.
Network guvenligi vesifrelemeteknolojileri. Etik teorilerin irdelenmesi ve bilgisayar alanindaki uygulama alanlari.

Dersin Amacı:

– Bilişim teknolojisinde etik kavramlarını öğrenmek

– Genel etik kavramlarını öğrenmek

– Mahremiyet ve telif hakları konularının öğrenilmesi

Öğrenme Çıktıları:

1.Bilişim teknolojisinde etik olgusunu ve hukuksal boyutlarını kavranması.
2.Genel etik kavramlarını özümsenmesi.
3.Mahremiyet olgusunun kavranması.
4.Telif Hakları olgusunun kavranması.

Kaynakça
“Computer Ethics”, Deborah G. Johnson, 4th Edition (2009) ,”Ethics for theInformation Age”, Michael J. Quinn, 8th edition (2020)

Konular
Tarihsel genel bakış
Sosyoteknik bilgisayar etiğine giriş (Johnson.1)
Etiğe giriş (Quinn.2, Johnson.2, Reynolds.1)
Etiğe giriş (Quinn.2, Johnson.2, Reynolds.1)
BTyapılandırılmış toplumlardaetik (Johnson.3, Quinn.3, Reynolds.5,8,9)
Bilgi akışı, gizlilik ve gözetim (Johnson.4, Quinn.5&6, Reynolds.4)
Vize
Dijital fikri mülkiyet (Johnson.5, Quinn.4, Reynolds.6)
Dijital düzen (Johnson.6, Quinn.6, Reynolds.3)
Dijital düzen (Johnson.6, Quinn.6, Reynolds.3)
Bilgisayar güvenilirliği (Quinn.7, Reynolds.7)
Bilgisayar güvenilirliği (Quinn.7, Reynolds.7)
Bilgisayarda profesyonel etik (Johnson.7, Quinn.9, Reynolds.2,10)
İş ve refah (Quinn 10)

Notlandırma:

Ara Sınav 40%

Ödev 10%

Final Sınavı 50%

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

Öğrenim Çıktıları:

  1. Problem tanımlayabilme becerisinin kazanılabilmesi.
  2. Problemi analiz edebilme, kapsam, kısıt, gereksinimleri belirleyebilme, çözüm tasarımı yapabilme.
  3. Yenilikçi, sürdürülebilir, çevreye ve topluma faydalı çözüm tasarımı yapabilme.
  4. Yeni yöntem ve teknoloji öğrenebilme ve kullanabilme.
  5. Ekip çalışması yapma becerisini kazanabilme.
  6. Projenin yazılı ve sözlü sunum becerisini edinebilme.
  7. Girişimcilik, yenilikçilik hakkında farkındalık edinme.

 

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 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ı

Öğrenim Çıktıları:

  1. Problem tanımlayabilme becerisinin kazanılabilmesi.
  2. Problemi analiz edebilme, kapsam, kısıt, gereksinimleri belirleyebilme, çözüm tasarımı yapabilme.
  3. Yenilikçi, sürdürülebilir, çevreye ve topluma faydalı çözüm tasarımı yapabilme.
  4. Yeni yöntem ve teknoloji öğrenebilme ve kullanabilme.
  5. Ekip çalışması yapma becerisini kazanabilme.
  6. Projenin yazılı ve sözlü sunum becerisini edinebilme.
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ı

Notlandırma

Uygulama/ Pratik: 25%

Araştırma Sunumu: 75%

CENG 415
CENG 418 Bilgi Güvenliği

Bilgi güvenliği, bilgisayar güvenliği, işletim sistemleri güvenliği, ağ güvenliği, yazılım güvenlği ve web güvenliği pratikleri ve prensiplerinin çalışıldığı alandır. Ders kapsamında, genel saldırı teknik ve araçları, formal erişim kontrol mekanizmaları, bilgi iletimi ile ilgili kuramlar, genel kullanımı olan güvenlik politika modelleri (BLP, Biba gibi modeler), temel kriptografi (AES, RSA, kriptografiz öz çıkarım, sayısal imza vb.), ağ güvenliği, yazılım güvenliği, web güvenliği, bilgisayar ve bilgi güvenliğinde hukuk ve etik konular incelenecektir.

Dersin Amacı

Dersin ana amacı, öğrencilere bilgi güvenliğini farklı boyutları, temel konu ve kavramlarıyla sunmaktır. Öğrencilere, bilgisayarların etkin ve yaygın olarak kullanıldığı yeni dünyada, bilgi güvenliğinin önemini anlamaları için destek olunması hedeflenmektedir.

Kaynakça

Computer Security: Art and Science, ISBN 0-201-44099-7; Publisher Addison Wesley Professional; Copyright 2003

Öğrenme Çıktıları:

1. Öğrenciler dijital dünyadaki ortak güvenlik tehditlerini öğrenirler.

2. Öğrenciler bilgi güvenliğinin temel kuramlarını öğrenirler.

3. Öğrenciler, güvenli bir sistem tasarlarken temel prensip ve tekniklerin neler olduğunu öğrenirler.

Hafta Konu
1 Giriş Derse içerik planının açıklanması. Bilgi Güvenliğine genel bir bakış; gizlilik, bütünlük ve erişilebilirlir.
2 Tehtidler Zararlı Yazılımlar Bellek Saldırıları
3 Formalizm Erişim Kontrol Kuramı, Erişim kontrol matrisi, Bilgi Akışı
4 Politikalar Güvenlik politikaları ve ilgili Modeller
5 Kriptografi I Blok ve akan verinin şifrelenmesi Kriptografik öz çıkarım fonksiyonları, MAC Açık ve Gizli Anahtar sistemleri
6 Kriptografi II Mesaj öz çıkarımı Şifrelemenin güvenlik seviyesi Kimliklendirme
7 Ara sınav
8 Sistemler Güvenli tasarım prensipleri TCB ve güvenli çekirdek Unix ve Windows güvenliği
9 Ağ Güvenliği I TCP/IP güvenliği DNS güvenlik sorunları ve savunma
10 Ağ Güvenliği II TLS/SSL Ağ sızma tespit ve önleme Ateşduvarları
11 Yazılım Güvenliği Zayıflık denetimi, sızma testi Sandboxing Akış kontrol bütünlüğü
12 Web Güvenliği Kullanıcı kimlik denetimi, oturum yönetimi Web Saldırıları
13 Hukuki ve Etik Konular Siber suç ve bilgisayar suçu
14 Final Sınavı

Notlandırma

Vize 25%

Kısa Sınav 20%

Ödev 20%

Final 35%

CENG 421 Bilgisayar Ağı Programlama

Bu derste TCP/IP ve network programlamanın tüm yönleri incelenecektir. IP ve TCP nin temel bilgileri ve IP v6 gibi konseptlerin tekrarından sonra, soket programlama ve web programlamayı (PHP ve MySQL) göreceğiz.

Dersin Amacı:

TCP/IP programlama konusunda deneyim kazanmak, * PHP ve MySQL ile web programlama konusunda deneyim kazanmak.

Kaynakça:

Data Communications and Networking, Behrouz A. Forouzan ,Course Web Site: http://www.kalfaoglu.com/ceng421

Öğrenme Çıktıları

1. TCP/IP katmanları ve uygulamaları hakkında bilgi sahibi olmak,

2. TCP soketlerini kullanarak C/C++ dilinde program yazabilmek,

3. PHP , MySQL ve HTML kullanarak kapsamlı bir web sitesi geliştirebilmek

4. Programlama Yetilerini geliştirmek

KONU
Giriş
Mantıksal Adresleme
İnternet Protokolü
Süreçten Sürece İletişim
DNS, E-posta, FTP
WWW
Fonksiyonlar
Soket Programlama
Protokoller, Oturumlar, Durum
İstemci-Sunucu Mimarisi
Özel Protokoller
Ağ İletişimini Güvenceye Alma

Notlandırma:

Vize: 40%

Ödev: 20%

Final: 40%

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.

Dersin Amacı

Yerel ve geniş alan ağların analiz ve tasarım tekniklerini tanıtmak ve en güncel ağ teknolojilerini incelemek.

Kaynakça

Arne Mikalsen, Per Borgesen, Local Area Network Management, Design & Security (Paperback), Wiley; 1st edition (June 15, 2002) ,Andrew S. Tanenbaum, Computer Networks, Prentice-Hall

Öğrenme Çıktıları

1. Yerel ve geniş alan ağlarını her türlü ihtiyaca göre tasarlayabilmek için gerekli altyapıyı kazandırmak

2. Ağ protokollerini analiz ve konfigüre edebilmek için gerekli bilgi ve yeteneği kazandırmak

3. Yeni bir ağ protokolünün tasarımını yapabilmek için gerekli altyapıyı kazandırmak

4. Simülatör ve diğer yardımcı araçları ağ analiz ve tasarımında kullanma becerisini kazandırmak

5. Ağ güvenliği ile ilgili temel bilgileri edindirmek

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 Cihazları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ı, Örnekler
Ağ Güvenliği

Notlandırma

Vize 30%

Ödev 35%

Final 35%

CENG 424 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ı.

Dersin Amacı

Gömülü bilgisayar sistemleri ve uygulamalarını, analiz ve tasarımlarıyla birlikte aktarmak.

Kaynakça

Berger, Arnold. Embedded systems design:an introduction to processes tools and tecniques. San Francisco;Lawrence, Kan: CMP Books, c2002 ,Adamski, Marian Andrzej. Design of Embedded Control Systems, Boston, MA : Springer Science+Business Media, Inc., 2005. ,Tebbs, David. Real time systems: management and design, McGraw-Hill London 1977 ,Herman Lam, John O Malley, Fundamentals of Computer Engineering: Logic Design and Microprocessors, Wiley. ,Enoch O. Hwang, Digital Logic and Microprocessor Design with VHDL.

Öğrenim Çıktıları
  1. Gömülü sistemleri modelleyebilme ve tasarlayabilme.
  2. Sistemlerin gerçeklenmesi ve sınanması konusunda tecrübe gösterebilme.
  3. Gömülü yazılım geliştirme tekniklerini kullanma ve uygulayabilme yeteneği gösterebilme.
Konu
Gömülü Sistem Tasarımına Giriş
Bilgisayar Mimarisi Konseptlerinin Gözden Geçirilmesi
LAB – I : Arduino ile basit bir uygulama
Mikrodenetleyicilerle Gömülü Sistem Tasarımı
Mikrodenetleyicilerle Gömülü Sistem Tasarımı
Özel ve Genel Amaçlı Veriyolu ve Mikroişlemci Tasarımı
LAB – II : Motor hız kontrolü için gerekli devrenin ve test ortamının kurulması
Geribeslemeli Kontrol Sistemlerinin Temelleri
Vize Sınavı
Veri Toplama ve Sayısal İşaret İşleme/Matlab-Simulink
Gerçek-Zamanlı Sistemler
Gömülü Yazılım Tasarımı
LAB – III : Arduino ile geribeslemeli motor hız kontrolü uygulaması
Proje hazırlıkları ve sunumu geri beslemeleri

Notlandırma

Vize: 10%

Ödev: 10%

Final: 20%

Quiz: 10%

Lab: 10%

Proje: 20%

Rapor: 20%

CENG 431 Yazılım Sistemleri Geliştirilmesi

Nesne tabanlı analiz ve tasarım. UML kullanımı. Nesne tabanlı programlamının ileri konuları. Yazılım tekrar kullanımı, kod iyileştirme, birim sınama. Temel tasarım şablonları. Yazılım bileşenleri, kütüphaneleri ve çatıları kullanımı ve oluşturulması.

Dersin Amacı

1. Nesne tabanlı analiz ve tasarım yeteneğini kazandırmak.

2. Nesne tabanlı tasarımları kodlama konusunda tecrübe kazandırmak.

3. Tekrar kullanım, kod iyileştirme, birim sınama konularını öğretmek.

4. Temel tasarım şablonlarını orta seviyede öğretmek.

5. Yazılım bileşeni ve yazılım çatısı geliştirmek için gerekli temel bilgileri edindirmek.

Kaynakça

X. Jia, Object-Oriented Software Development Using Java. , Addison Wesley. 2nd Edition, 2003. ,C. Larman, Applying UML and Patterns , Prentice Hall, 3rd Edition, 2004. ,M. Fowler, K. Beck, J. Brant, W. Opdyke, D. Roberts, Refactoring: Improving the Design of Existing Code , Addison-Wesley, 1999.

Öğrenme Çıktıları

1. Spesifikasyon, tasarım, kodlama ve sınama süreçlerinin ilintili etkinliklerini bilme

2. Nesneye dayalı mimari bileşenleri kullanma

3. Farklı yazılım sistem geliştirme yaklaşımlarını bilme ve karşılaştırma

4. Problemleri analiz etme, çözüm geliştirme ve gerçekleştirme

5. Soyutlama yeteneğini yazılım sistemleri alanında kullanma

6. Yazılım mühendisliği yöntemleri ile gerçek dünya problemlerini çözmek

Konular
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 (abstraction) 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

Notlandırma

Vize 30%

Final 40%

Ödev 30%

CENG 432 Kurumsal Uygulama Geliştirmenin Temelleri

Ders Amaçları:

Bu dersin amacı Kurumsal Uygulamaları, onların kullanım alanlarını ve geliştirme stratejilerini açıklamaktır. Öğrenciler bu derste, en yaygın ticari ERP paket programlarından biri olan SAP aracılığıyla özellikle Kurumsal Kaynak Planlama (ERP) sistemleri, programlama dilleri ve modülleri olmak üzere farklı Kurumsal Uygulama türlerini öğrenme fırsatı bulacaklardır. Öğrenciler bu derste ayrıca bir kurumsal programlama dili olan SAP ABAP’ın temellerini öğreneceklerdir.

WEEK DERS TASLAĞI İÇERİK
1 Kurumsal Uygulamalara Giriş Kurumsal Uygulama Geliştirmeye Giriş
2 Kurumsal Uygulamaların Gelişimi, Entegrasyon & Devreye Alma Metodolojileri Kurumsal Uygulamaların Gelişimi – MRP & ERP
3 Kurumsal Uygulamaların Gelişimi – HRM & SCM & CRM & PLM
4 Kurumsal Uygulamaların Yapısı ve Entegrasyon Metodolojileri
5 Kurumsal Uygulama Projelerinin Devreye Alma Metodolojileri
6 SAP S/4 Hana SAP S/4HANA’ya Giriş
7 SAP Konfigurasyon, Uyarlama ve Programlama SAP Konfigurasyon and Uyarlama
8 SAP ABAP Programlama
9 SAP ABAP Programlama
10 SAP Fonksiyonel & Teknik Spesifikasyon Dokümanı Hazırlama
11 SAP Örnek Modüller SAP MM (Malzeme Yönetimi) Modülü
12 SAP SD (Satış&Dağıtım) Modülü
13 Yeni Trendler Kurumsal Uygulama Geliştirmede Yeni Trendler

 

Teslimler/Ödevler/Projeler:

Bu derste, 5-6 üyeden oluşan proje gruplarına bir ERP gereksinim belgesi verilir. Her grup, bu gereksinim belgesini baz alarak hangi SAP modüllerinin ve süreçlerin dahil edileceğini belirler ve FS (Fonksiyonel Spesifikasyon) ve TS (Teknik Spesifikasyon) belgelerini içeren ayrıntılı bir proje raporu sunar.

Notlandırma:

Ara Sınav %30
Final Sınavı %40
Proje %30

Ders Öğrenme Çıktıları

C1. Farklı Kurumsal Uygulama türlerini tanımlayabilmek ve açıklayabilmek

C2. Kurumsal Uygulamaların geliştirme ve uygulama stratejilerini tanımlayabilmek

C3. SAP kaynaklarını kullanarak örneklerle Kurumsal Uygulamaların konfigurayonunu, uyarlamasını ve programlamasını gösterebilmek

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.

Dersin Amacı

Bu dersin amacı Internet projeleri için gereken üst düzey yazılım geliştirme, mimari tasarım ve metodolojilerine giriş yapmaktır. Dönem sonunda, öğrencilerin binlerce eşzamanlı kullanıcıyı kaldıracak sistemleri dizayn ve geliştirmek için gerekli bilgi düzeyinin temel taşlarını almış olması hedeflenmektedir.

Kaynakça

http://www.infoq.com/ ,http://aws.amazon.com/ ,http://www.slideshare.net/Blaine/scaling-twitter ,Cal Henderson, Building Scalable Web Sites: Building, Scaling, and Optimizing the Next Generation of Web Applications, O Reilly Media, 2006 ,John Allspaw, The Art of Capacity Planning: Scaling Web Resources, O Reilly Media, 2008 ,Theo Schlossnagle, Scalable Internet Architectures, Sams, 2006 ,Martin L. Abbott and Michael T. Fisher, The Art of Scalability: Scalable Web Architecture, Processes, and Organizations for the Modern Enterprise, Addison-Wesly, 2009 ,http://highscalability.com/ ,http://www.ahmetalpbalkan.com/blog/put-io-nun-altyapisi-ve-olceklenebilirligi-uzerine-roportaj/

Öğrenme Çıktıları

1. Binlerce kullanıcıyı kaldıracak web sitelerini kurabiliyor olmak

2. Play framework üzerinde bir proje geliştirebilmek

3. Çeşitli önbellek mekanizmalarını uygulayabilmek

4. Aşırı yük durumlarında MySQL ile yatay ölçeklenebilirliği sağlayabilme

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

Notlandırma

Vize 15%

Araştırma Sunumu 60%

Final 25%

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.

Dersin Amacı

1. Web servis programlama konusunda tecrübe kazandırmak.

2. Kurumsal entegrasyon programlama konusunda tecrübe kazandırmak.

3. Çok katmanlı kurumsal entegrasyon geliştirme yeteneği kazandırmak

4. Kurumsal entegrasyonların kurulumu için gerekli temel bilgileri edindirmek.

Kaynakça

K. Hammer, T. Timmerman, Fundamentals of Software Integration , Jones & Bartlett Publishers, 2007. ,G. Hohpe, B. Woolf, Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions , The Addison-Wesley Signature Series, 2003.

Öğrenme Çıktıları

1. Web servis temelli programlama tekniklerini kullanma.

2. Farklı kurumsal yazılım entegrasyon yaklaşımlarını bilme ve karşılaştırma.

3. Entegrasyon problemleri analiz etme, çözüm geliştirme ve gerçekleştirme.

4. Soyutlama yeteneğini kurumsal entegrasyonlar alanında kullanma.

5. Kurumsal entegrasyon yöntemleri ile gerçek dünya problemlerini çözmek.

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

Notlandırma

Vize: 30%

Araştırma Sunumu: 40%

Final: 30%

CENG 435 Veritabanı Yönetim Sistemi Tasarımı ve Gerçekleştirilmesi

Veritabanı yönetim sistemlerinin hatırlanması, ilişkisel algebrayı öğrenmek, disk yönetimi, dosya yönetimi, bellek yönetimi, hareket yönetimi, kayıt yönetimi, üst veri yönetimi, sorgu işleme, tarama, planlama, indeksleme, sorgu eniyileme

Dersin Amacı

Bilgisayar biliminde gerekli olan veri yönetimi konularında hâkimiyeti arttırmak, veri yönetim sistemi parçalarını üretebilmek, araştırma yeteneği kazanmak

Kaynakça

E. Sciore, Database Design and Implementation, Secon Edition, Wiley, 2020., M. Fisher, J. Ellis, J. Bruce, JDBC(TM) API Tutorial and Reference , 3rd Edition (Java Series), Addison Wesley, Reading, Massachisetts, 2006.

Öğrenme Çıktıları

1. SimpleDB veritabanını kurma, kullanma, istenen özellikler doğrultusunda özelleştirebilme

2. Veritabanı yönetim sisteminin tüm işlevlerini gerçekleştirecek uygulamalar yapabilme

3. Veritabanı yönetim sisteminin tüm işlevlerinin altında yatan yaklaşım ve yöntemlerii öğrenmek

4. Ekip çalışması yaparak bir mühendislik problemine yazılım geliştirme yoluyla çözüm bulma, uygulama ve sunma becerisi

Konular
Veritabanı Yönetim Sistemleri ve Veri Tanımına Giriş
İlişkisel algebra
İlişkisel algebra
Disk ve Kütük Yönetimi
Bellek Yönetimi
Eşzamanlılık Yönetimi
Kayıt Yönetimi
Üstveri Yönetimi
Geri Kazanma ve Eş Zamanlılık
Sorgu İşleme
Sorgu Parçalama
Sorgu Planlama
Sorgu Eniyileme
Dönem Projeleri

Notlandırma

Vize 30%

Araştırma Sunumu 30%

Final 40%

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.

Dersin Amacı

1.Teknik altyapının zenginleşmesini sağlamak

2.Analitik düşünme yeteneği kazandırmak

3.Gereksinimlere uygun çözüm üretebilme yeteneği kazandırmak

4.Güncel teknolojileri kullanabilme becerisi kazandırmak.

Kaynakça

M. T. Ozsu and P. Valduriez, Principles of Distributed Database Systems , Springer, 3rd Edition, 2011

Öğrenme Çıktıları

1. Dağıtık veritabanı sistemlerinin planlama ve tasarım prensiplerini öğrenmek

2. Dağıtık veritabanı yaratma ve kullanma yeteneği kazanmak

3. Dağıtık veritabanlarında tutarlılık ve güvenliğin sağlayacak yöntemleri anlamak

4. Dağıtık veritabanlarında sorgu işlemeyi iyi seviyede öğrenmek

5. Ekip çalışması yaparak proje yapma yeteneği kazanmak

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ı

Notlandırma

Vize: 30%

Araştırma Sunumu: 30%

Final: 40%

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.

Dersin Amacı

Bu ders yazılım geliştirme yaşam döngüsü içindeki yazılım kalite yönetimini öğretmeyi hedefler.

Kaynakça

John W. Horch, “Practical Guide to Software Quality Management”, Addison Wesley, 2003.

Öğrenme Çıktıları

Yazılım Kalite Güvencesi birleşenlerini açıklayabilme

Kalite birleşenleri projenin erken dönemlerinden başlayarak kullanabilme

Yazılım Kalite Güvencesi işlemlerinin başarımını ölçebilme

Yazılım Kalite Güvencesi işlemlerinin proje bütçe ve takvimine etkilerini kontrol edebilme

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.

Dersin Amacı

Paralel programlama modellerinin öğretilmesi.

Farklı paralel programlama araçlarının öğretilmesi ve analizinin yapılması.

Paraleleştirme yöntemlerinin, uygulamalı olarak öğretilmesi.

Paralelleştirilen bir algoritmanın verimlilik analiz yöntemlerinin öğretilmesi.

Kaynakça

Grama, A. Gupta, G. Karypis, V. Kumar, ‘Introduction to Parallel Computing’, Addison-Wesley, 2nd Ed., 2003 , Behrooz Parhami, ‘Introduction to Parallel Processing Algorithms and Architectures’, Plenum Series in Computer Science, 1999

Öğrenme Çıktıları

1. Paralel programlama modelleri ve bunların kullanım gereksiniminin analizi ve verimli uygulanıyor olması.

2. Farklı paralel programlama yöntem ve araçlarının karşılaştırılması ve etkin olarak hangisinin kullanılacağına karar verilebilmesi.

3. Seri bir algoritmanın etkin olarak analiz edilmesi ve paralel bir algoritmaya dönüştürülebilmesi.

4 .Paralelleştirilen algoritmaların verimlilik analizlerinin yapılması.

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

Notlandırma

Vize: 25%

Ödev: 30%

Araştırma Sunumu: 20%

Final: 25%

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.

Dersin Amacı

Bilgisayar mimari tasarım bileşenleri ve adımlarının multicore yapılar için öğretmek. Güncel işletim sistemleri ve multicore mimari tasarım modellerini öğretmek. İşletim sistemleri ve multicore mimari yapı arasındaki tasarım ilişkilerini göstermek, kritik düşünce ve analiz bileşenlerini kazandırmak.

1. Bilgisayar mimarisini tasarım adımları ve çok çekirdekli mimari tasarım modellerinin analizi ve uygulanması.

2. İşletim sistemlerinin bileşenlerinin ve bu bileşenlerinin çok çekirdekli mimariler için nasıl olduğunun analizi.

3. Çok çekirdekli mimariler için var olan donanım tasarım problemlerinin analizi.

4. İşletim sistemlerinim, var olan çok çekirdekli mimari tasarım modelleri için çözüm ve kısıtlarının analizi.

Öğrenme Çıktıları

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

Notlandırma

Vize: 30%

Ödev: 35%

Final: 35%

CENG 443 Heterojen Paralel Programlama

Ders, GPU tabanlı heterojen programlamanın temellerini sunar. Paralel mimariler ve paralel programlamanın temel kavramlarını, CUDA programlama modeli konularını ve CUDA ile hızlandırılmış hesaplamanın temellerini içeren uygulamalı örnekleri kapsar.

Dersin Amacı

  1. CPU-GPU heterojen mimarilerini anlayabilme.

  2. Heterojen paralel programlar tasarlayabilme ve geliştirebilme.

  3. GPU yürütme birimlerini ve bellek hiyerarşisini anlayarak yürütme performansını artırabilme.

  4. GPU cihazlarını hedefleyen performans değerlendirme ve optimizasyon yöntemlerini anlayabilme.

Kaynakça

– David B. Kirk, Wen-Mei W. Hwu: Programming Massively Parallel Processors: A Hands-on Approach, Morgan Kaufmann Publishers

– NVIDIA Accelerated Computing Teaching Kit

– NVIDIA Deep Learning Institute (DLI) Workshops

Öğrenme Çıktıları:

1. Heterojen paralel programlama ortamları için program tasarlama ve gerçekleme becerisini gösterme

2. Farklı programlama problemleri için paralel programlama örüntülerinin uygulanması tecrübesini gösterme

3. Paralel program performansını analiz edip performans iyileştirmeleri yapabilme

Konular
Giriş
CUDA ile Hızlandırılmış Hesaplamanın Temelleri
(DLI Atölyesi)
CUDA ile Hızlandırılmış Hesaplamanın Temelleri
(DLI Atölyesi)
CUDA ile Hızlandırılmış Hesaplamanın Temelleri
(DLI Atölyesi)
Ara Sınav
CUDA ile Hızlandırılmış Hesaplamanın Temelleri
(DLI Atölyesi)
Jetson Nano ile Yapay Zekaya Giriş
Jetson Nano ile Yapay Zekaya Giriş
CUDA Uygulamalarını Çoklu GPU ile Hızlandırma
(DLI Atölyesi)
CUDA Uygulamalarını Çoklu GPU ile Hızlandırma
(DLI Atölyesi)
CUDA Uygulamalarını Çoklu GPU ile Hızlandırma
(DLI Atölyesi)
Proje Sunumları

Notlandırma

Ara Sınav: 20%

Ödevler/Final Projesi: 40%

Final Sınavı: 40%

CENG 444 Paralel Programlama Örüntüleri

Ders, temel paralel algoritma tasarımı becerilerini ve paralel programlama desenlerini sunar. Paralel mimariler ve paralel programlamanın temel kavramlarını, OpenMP programlama modeli konularını ve kontrol ile veri desenlerini kapsar. Ayrıca, paralel yazılım geliştirme temellerini sunarak bu konulara yönelik uygulamalar içerir.

Dersin Amacı

  1. Paylaşımlı bellekli paralel mimarileri anlayabilme.
  2. Çok çekirdekli sistemler için paralel programlar tasarlayabilme ve geliştirebilme.
  3. Paralel program yürütme ve performans optimizasyon tekniklerini anlayabilme.
  4. Paralel yazılım geliştirme tekniklerini ve programlama desenlerini anlayabilme.

Kaynakça

– Arch Robison, James Reinders, and Michael David McCool, Structured Parallel Programming: Patterns for Efficient Computation.
– Çevrimiçi OpenMP kaynakları ve eğitimleri

Öğrenme Çıktıları:

1. Paralel programlama problemlerini ve ilgili örüntüleri anlayabilme

2.  Farklı paralel programlama problemlerine paralel programlama örüntülerini uygulama tecrübesini gösterme

3. Farklı programlama örüntüleri ve modelleriyle ilgili değerlendirme yapabilme

Konular
Giriş
Paralel Donanım Ortamları
Paralel Yazılım Geliştirme
Paralel Program Performans Analizi
OpenMP
OpenMP
Ara Sınav
Desenler
Map Deseni
Reduce/Scan Deseni
Veri Yeniden Düzenleme
Stencil/Yineleme
Fork/Join
Proje Sunumları

Notlandırma

20% Ara Sınav

40% Ödevler/Final Projesi

40% Final Sınavı

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.

Dersin Amacı

Öğrencileri gömülü sistem donanım tasarımı konusunda güncel bilgiler ışığında uzmanlaştırmak

Kaynakça

Berger, Arnold. Embedded systems design:an introduction to processes tools and tecniques. San Francisco;Lawrence, Kan: CMP Books, c2002.

Öğrenme Çıktıları

Karmaşık sayısal devreleri analiz edebilme

Karmaşık sayısal devreleri tasarlayabilme

VHDL i donanım tasarımında kullanabilme becerisini gösterme

Sayısal işaret işleme ile ilgili temel bilgilere sahip olmak

Tasarım araçlarını kullanabilme

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.

Dersin Amacı

Çeşitli gömülü sistemler için yazılım geliştirme tekniklerinin öğrencilere en son teknoloji ve güncel bilgiler ışığında öğretilmesi.

Kaynakça

Berger, Arnold. Embedded systems design:an introduction to processes tools and tecniques. San Francisco;Lawrence, Kan: CMP Books, c2002. ,Adamski, Marian Andrzej. Design of Embedded Control Systems, Boston, MA : Springer Science+Business Media, Inc., 2005. ,Tebbs, David. Real time systems: management and design, McGraw-Hill London 1977

Öğrenme Çıktıları:

1. Yazılım geliştirmenin gömülü sistemlere özgü gereksinimlerini bilmek

2. Standartları ve çeşitli yazılım geliştirme ortamlarını ve araçlarını bilmek

3. Gömülü sistemlerin yaygın alanlarında kullanılan algoritmaların analiz ve sentezini yapabilme

4. Gömülü sistemlerde yazılım sınama, doğrulama, test konularını bir projede uygulayabilme

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ı

Notlandırma

Vize: 30%

Sunum: 30%

Final: 40%

CENG 461 Yapay Zeka

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

Dersin Amacı

– Bilgi gösterme ve çıkarsama yöntemlerinin kavratılması

– Sorun çözme ve mantıksal davranma arasındaki ilişkinin vurgulanması

– Belirsizlik altında çıkarsama yapabilecek ve öğrenme yetisine sahip uygulamalar hakkında bilgi verilmesi

Kaynakça

Russell, Stuart; Norvig, Peter; 1995; “Artificial Intelligence – A Modern Approach”; Prentice-Hall; 0-13-103805-2 ,- Luger, George F.; 1993; “Artificial intelligence: structures and strategies for complex problem solving”; Benjamin-Cummings; 0-80534-785-2

Öğrenme Çıktıları

1. İnsansı davranışları benzetmeye yarayan yapay us yöntemlerin ayrı ayrı öğrenilmesi
2. Ağırlıklı olarak matematiksel mantıklara dayalı, geleneksel yapay us yöntemlerin öğrenilmesi
3. Yapay us yöntemlerin karma kullanımı sonucu akıllı algılanabilecek davranışların geliştirilmesi
4. Amaca dayalı yazılım dilleri kullanılarak, yöntemlerin karma kullanıldığı uygulamaların geliştirmesi

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

Notlandırma

Vize: 30%

Ödev: 30%

Final: 40%

CENG 462 Esnek Hesaplama

Temel yapay us yöntemler üzerine kurulmuş ileri yapay us yöntemlerin öğrenilmesi amaçlanmaktadır. Bu bağlamda, yöntemler birer birer birleştirilip, örnek uygulama alanlarında denenecek ve uygulamaların akıllı davranışları adım adım geliştirilecek. Uygulamalar ise, bildirimsel ve buyruksal diller ile karma programlanarak, amaca yönelik programlama yöntemleri ile öğrenilecektir.

Dersin Amacı

1.Ussal örneklemeleri incelenmek

2.Etkileşim örneklemeleri incelemek

3.Örnek akıllı dizgeler geliştirmek

Kaynakça

Luger, George; Stubblefield, William; 2004; “Artificial Intelligence: Structures and Strategies for Complex Problem Solving”; The Benjamin/Cummings Publishing; ISBN 0805347801 ,Russell, Stuart; Norvig, Peter; 2003; “Artificial Intelligence – A Modern Approach”; Prentice-Hall; 0131038052 ,Giarratano, Joseph C.; Ritel, Gary D.; 2005; “Expert Systems – Principles and Programming”; Thompson Course Technology; 0534384471 ,Munakata, Toshinori; 2007; “Fundamentals of the New Artificial Intelligence Neural, Evolutionary, Fuzzy and More”; Springer; 9781846288395 ,Maedche, Alexander; 2002 ; “Ontology learning for the semantic web”; Kluwer Academic Publishing; 0792376560 ,Hjelm, Johan; 2001; “Creating the semantic Web with RDF: professional developer s guide”; John Wiley; ,Goertzel, Ben; Pennachin, Cassio; 2007; “Artificial General Intelligence”; Springer; 9783540237334 ,Nabiyev, Vasif V.; 2005; “Yapay Zeka”; Seçkin Yayıncılık; 9753479859

Öğrenme Çıktıları

1. Evrimsel hesaplamaları uygulamalarda etkin kullanmak

2. Yapay sinir ağlarını uygulamalarda etkin kullanmak

3. Bulanık mantığı uygulamalarda etkin kullanmak

4. Bu ötesel sezgileri kullanarak, uygulamalara akıllı davranışlar kazandırmak

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

Notlandırma

Vize: 24%

Quiz: 6%

Ödev: 10%

Araştırma Sunumu: 30%

Final: 30%

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 makinaları. Çizgesel modeller. Sinir ağlarına giriş. Pekiştirmeli öğrenme.

Dersin Amacı

1. Yapay öğrenme konusunda temel oluşturmak

2. Yapay öğrenme ile ilgili problemleri analiz etme ve uygun çözüm yöntemlerini ayırt etme becerisini geliştirmek

3. Verilen problemleri çözmek üzere uygun çözüm algoritmalarını gerçekleme becerisi geliştirmek

Kaynakça

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

Öğrenme Çıktıları

1. Yapay öğrenme konusunun temel kavramlarını açıklayabilme

2. Yapay öğrenme ile ilgili problemleri analiz etme ve uygun çözüm yöntemlerini ayırt etme

3. Karşılaşılan yapay öğrenme problemlerini çözebilecek algoritmaları uygun araçları kullanarak uygulayabilme

4. Uygulama sırasında elde edilen çıktıları algoritma yönünden yorumlayabilme

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

Notlandırma

Vize 30%

Ödev 30%

Final 40%

CENG 464 Metin Madenciliği

Bu derste, temel doğal dil işleme teknikleri, belge temsili, metin sınıflandırma ve kümeleme, belge özetleme, duygu analizi, sosyal ağ ve sosyal medya analizi, olasılıklı konu modelleri ve metin görselleştirme dahil olmak üzere metin madenciliğindeki önemli konuları ele alacağız.

Dersin Amacı

Bu ders, gerçek veri kümeleri ve metin madenciliği araçları kullanarak Python ile metin madenciliği ve veri analitiğinin temel bileşenlerini öğrenme fırsatı sunar. Metin ön işleme, duygu analizi ve konu modelleme dahil olmak üzere temel metin madenciliği tekniklerinde uygulamalı deneyim sağlar ve öğrencilerin bir veri bilimcisi olarak eğitilmesine yardımcı olur.

Kaynakça

J. Eisenstein,” Introduction to Natural Language Processing”, MIT Press, 2019. ,S. Ghosh & D.Gunning, “Natural Language Processing Fundamentals”, Packt, 2019.

Öğrenme Çıktıları

1. Python ve NLTK kullanarak metin sınıflandırıcı oluşturabilme ve temel doğal dil işleme problemlerini çözebilme
2. Python kullanarak veri analizi ve makine öğrenmesi uygulamaları geliştirebilme
3. Hesaplamalı dilbilimin temellerini anlama
4. Genel doğal dil işleme uygulama modelleri oluşturabilme
5. Bir modelin performansını doğru metriklerle değerlendirebilme
6. Metinden görselleştirme, niceleme ve keşif analizi gerçekleştirebilme

Konular
Giriş
Doğal Dil İşleme Adımları
Doğal Dil İşleme Adımları
Belge Gösterimi
Belge Gösterimi
Metin Sınıflandırması
Metin Gruplama
Veri Toplama
Konu Modelleme
Metin Özetleme
Metin Oluşturma
Sosyal Medya ve Ağ Analizi
Duygu Analizi
Metin Görselleştirme

Notlandırma

Vize 25%

Araştırma Sunumu 35%

Final 40%

 

 

 

CENG 465 Veri-Yoğun Sistemlerin İlkeleri

Bu derste öğrenciler aşağıdaki alanlarda bilgi sahibi olacaklardır: Çeşitli veri modelleri ve sorgu dilleri; veri depolama ve veri getirme; dağıtık verilerde çoğaltma ve bölümleme; işlemler; dağıtık sistemlerin zorluklarları; dağıtık sistemlerde tutarlılık ve fikir birliği; toplu işlem ve akış işleme.

Dersin Amacı

Bu dersin temel amacı, öğrencilerin veri yoğun sistemlerin altında yatan temel kavramlarla tanışmalarını sağlamaktır. Öğrenciler, verilerin saklanması ve işlenmesine yönelik farklı yaklaşım, teknik ve araçları karşılaştırmayı, bunların güçlü ve zayıf yönlerini değerlendirmeyi ve çeşitli uygulama ihtiyaçları için en uygun çözümleri belirlemeyi öğreneceklerdir.

Dersin Kitabı / Önerilen Kaynaklar

M. Kleppman. Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems. O’Reilly Media, Inc., 2017.
T. Özsu, P. Valduriez. Principles of Distributed Database Systems. Springer, 4th ed., 2020.

Öğrenme Çıktıları

  1. Veri yoğun uygulamalarda kullanılan temel terminolojiyi tanımlayabilme
  2. Farklı veri modellerini ve sorgulama dillerini karşılaştırabilme
  3. Belirli bir amaç için hangi teknolojinin, tekniğin ve aracın uygun olduğuna karar verebilme
  4. Veri yoğun uygulamalar tasarlayabilme
Konular
Güvenilir, Ölçeklenebilir ve Sürdürülebilir Uygulamalar
Veri Modelleri ve Sorgu Dilleri (1)
Veri Modelleri ve Sorgu Dilleri (2)
Veri Depolama ve Erişim
Dağıtık Veri Çoğaltma
Dağıtık Veri Bölütleme
Ara Sınav
Tek Düğüm ve Dağıtık Veritabanlarında İşlemler (1)
Tek Düğüm ve Dağıtık Veritabanlarında İşlemler (2)
Dağıtık Sistemlerin Zorlukları
Dağıtık Sistemlerde Tutarlılık ve Uzlaşma
Toplu İşlem
Akış İşleme
Proje Sunumları

Değerlendirme

Vize 40%

Proje 20%

Final 40%

Tamamlayıcı Ders: CENG315

CENG 467 Doğal Dil Anlama ve Üretme

Bu ders, doğal dili anlama ve üretme için derin öğrenme yöntemlerine odaklanmaktadır. Tokenizasyon ve dil modeli ön eğitimi, transformatör mimarisi, makine çevirisi, çözümleme, özet çıkarma, soru cevaplama, komut ince ayarı, doğal dil işlemede etik, bağlam içi öğrenme ve almayla artırılmış üretim konularını kapsamaktadır.

Dersin temel amacı, doğal dil işleme, yapay öğrenme ve programlama konusunda temel bilgi birikimi olan öğrencilerin doğal dili anlama ve üretme konusunda mevcut derin öğrenme teknikleri hakkında daha ileri seviyede bilgi sahibi olmalarıdır. Dersin hedef kitlesi son sınıf lisans öğrencileridir. Ders, doğal dil işleme için derin öğrenme lisansüstü dersi için gerekli altyapıyı sunmaktadır.

Doğal Dil Anlama ve Üretme dersi öğrencilerin Üretici Yapay Zeka alanında araştırma yapma ve bu konuda ürün geliştirme yeteneklerine mezuniyet aşamasında sahip olmalarına katkıda bulunur.

Doğal dil işleme için derin öğrenme yöntemlerini endüstriyel problemlere uygulayabilme
Doğal dil işlemenin sosyal etkilerinin farkında olma ve ilgili etik terminolojiyi bilme
Farklı dil modeli mimarilerini problem çözümlerinde kullanabilme
Farklı doğal dil işleme görevlerini ve özelliklerini listeleyebilme

Ders Kitabı: Speech and Language Processing, D. Jurafsky and J.H. Martin, 3rd Ed., 2025.

Ara Sınav: %30

Ödevler: %30

Final Sınavı: %40

Hafta Konu
1 Giriş
2 Makine Çevirisi ve Koşullu Dil Modelleri
3 Verinin ve Kelimelerin Modellenmesi
4 İleri Beslemeli Dil Modelleri, Yinelemeli Sinir Ağları
5 Diziden Diziye Modeller ve Dikkat Mekanizması, Transformatörler ve Ön Eğitimli Dil Modelleri
6 Çözümleme
7 Komut İnce Ayarı, RLHF ve Parametre Verimli İnce Ayar
8 Özetleme
9 Üretim ve Çevirinin Değerlendirilmesi
10 Doğal Dil İşlemede Etik
11 Bağlam İçi Öğrenme
12 Soru Cevaplama
13 Almayla Artırılmış Üretim
14 Doğal Dil İşleme için Difüzyon Modelleri

 

CENG 471 Kriptografi

Kriptografinin tarihsel gelişimi, gereksinim duyulan güvenlik fonksiyonları ve bu fonksiyonların konvansiyonel, simetrik ve asimetrik kripto sistemler tarafından nasıl sağlandığı, zayıflıkları ve saldırı şekilleri işlenmektedir. Kripto sistemlerin güvenlik seviyelerini ve zayıflıklarını öğrencilerin anlayabilmesi için sayılar kuramı, soyut cebir gibi alanlardan gerekli matematik kuram ve yapılar konularla paralel olarak öğretilmektedir. Öğrenciler dönem ödevi olarak kriptografik araçların farklı alanlarda uygulamalarını inceleyerek, konu, ilgili problemler ve yanıtları hakkında bir rapor ve sunuş hazırlar, sınıfta sunar.

Dersin Amacı

Bilgi güvenlik fonksiyonlarının öğretilmesi. Güvenlik fonksiyonlarının nasıl ve hangi kriptografik araçlarla sağlanıldığının öğretilmesi. Simetrik ve asimetrik kriptografinin tarihsel gelişiminin, teknolojik ve sosyal gelişmelerle ilişkilerinin öğretilmesi. Kriptosistemlerin güvenlik seviyelerinin nasıl belirleneceğinin ve ilgili standartların öğretilmesi. Günümüz bilişim ve iletişim teknolojilerinde kullanılan güvenlik çözümlerinin öğretilmesi.

Kaynakça

W.Trappe, L.Washington, ‘Introduction to Cryptography with Coding Theory’, Pearson, 2006 ,P. Gutman, ‘Cryptographic Security Architecture’, Springer, 2004 ,D. R. Stinson, ‘Cryptography, Theory and Practice’, Chapman & Hall/CRC Press, 2002 ,B. Schneider, ‘Applied Cryptography, Protocols, Algorithms, and Source Code in C’, John Wiley & Sons, 1996

Öğrenme Çıktıları

1. Güvenlik zayıflıkları, tehditleri ve hangi güvenlik fonksiyonlarının sağlanmakta olduğunun bir sistem için analizini yapabilme.

2. Hedeflenen güvenlik fonksiyonları için doğru kriptografik araçları seçebilme, uygulayabilme ve test edebilme.

3. Teknolojideki gelişimi izleyerek yeni kriptografik çözüm gereksinimlerini etkin analiz edebilme.

4. Kriptografik çözümlerde uluslararası standartları uygulayabilme.

5. Güvenlik gereksinimine göre kriptografik bir güvenlik çözümünü belirleme ve oluşturabilme kabiliyetinin elde edilmesi.

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
Transpozisyon-Permütasyon
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

Notlandırma

Vize: 25%

Ödev: 30%

Sunum: 20%

Final: 25%

CENG 472 Bilgisayar 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ı.

Dersin Amacı

1. Bilgisayar ağları güvenliği konusunda temel bilgileri edindirmek.

2. Ağ paket güvenliği konusunda temel bilgileri edindirmek.

3. Bilgisayar yerel/kurumsal ağ güvenliği konusunda temel bilgileri edindirmek.

Kaynakça

w. Stallings, Network Security Essentials: Applications and Standards , Prentice-Hall, 2010. ,C. Kaufman, R. Perlman, M. Speciner, Network Security: PRIVATE Communication in a PUBLIC World , Prentice-Hall, 2002.

Öğrenim Çıktıları

1. Farklı ağ güvenliği yaklaşımlarını bilme ve karşılaştırma.

2. Ağ güvenliği problemleri analiz etme, çözüm geliştirme ve gerçekleştirme.

3. Soyutlama yeteneğini güvenlik alanında kullanma.

4. Güvenlik mühendisliği yöntemleri ile gerçek dünya problemlerini çözmek.

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

Notlandırma

Vize: 30%

Sunum: 40%

Final: 30%

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.

Dersin Amacı

1. Bilgi ve iletişim teknolojileri güvenliğiyle ilgili problemlerin ve çözüm araçlarının öğretilmesi.

2. Var olan güvenlik problemlerinin, ve oluşturduğu risklerin öğrenilmesi.

3. Güncel bilgi ve iletişim teknolojileri için açık güvenlik problemlerinin ve yapılan araştırma çalışmalarının öğrenilmesi.

4. Bilgi sistemlerinin, güvenli tasarım, kurulum ve yönetiminin öğrenilmesi.

Kaynakça

B. Schneider, ‘Applied Cryptography, Protocols, Algorithms, and Source Code in C’, John Wiley & Sons, 1996

Öğrenme Çıktıları

1. Bilgi ve iletişim teknolojileriyle ilgili güvenlik risklerinin analiz edilebilmesi yetkinliğine sahip olma.
2. Güvenlik problemlerinin çözümünde doğru araçları seçme ve test edebilme.
3. Teknolojideki gelişimi izleyebilme ve olası güvenlik risklerini, tehditleri belirleyebilme kabiliyetinin kazandırılması
4. Bilgi sistemlerinin güvenlik tasarımı ve yönetimini yürütecek temel bilgi ve methodolojiye sahip olma

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
İnternet 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

Bilgisayar bilimlerini oluşturan temel kuramların ve bilim insanlarının vizyonlarının aktarıldığı bir derstir. Dönemlerde farklı konulara ağırlık verilebilir. İşlenilen konulara örnek olarak; “scientific and programming visualization”, “humancomputer interaction”, “cryptography”, “software design”, “robotics”, “usability”, “computer security”, “computational complexity”, “Algorithms”, “Automata Theory Languages and Computability”, “Artificial Intelligence and Machine Learning” vb.

Dersin  Amacı

Bilgisayar bilimlerinde kullanılan kuramları öğretmek. Bilgisayar bilimlerinde araştırma, analiz, karşılaştırma ve modelleme tekniklerini öğretmek. Bilgisayar bilimlerinde güncel kavram, çalışma alanları vearaştırma problemlerini öğretmek.

Kaynakça

The text book/books are determined by decided topics.

Öğrenme Çıktıları

1. Bilgisayar bilimlerinde kullanılan kuramları ve güncel uygulama alanı olan konuları kullanarak problemleri ve yeni gereksinimleri analiz edebilmek.

2. Bilgisayar bilimlerinde güncel araştırma problemlerini tanımlamak, modelleyebilmek.

3. Öğrencinin gelecek kariyer döneminde, bigisayar bilimlerinde yönleneceği ve katkı vereceği alana karar verebilmesi.4 Bilgisayar bilimlerindeki temel kuramların disiplinler arası araştırma ve çalışmalarda uygulama becerisinin edinilmesi.

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

Notlandırma

Vize: 20%

Ödev: 20%

Sunum: 40%

Final: 20%

CENG 482 Evrimsel Hesaplama

Evrimsel hesaplama yöntemleri, ayrık ve sürekli eniyileme problemleri, evrimsel hesaplama için yazılım kütüphaneleri, genetik algoritmalar, genetik programlama, evrim stratejileri, diferansiyel gelişim, parçacık sürü eniyilemesi, çok amaçlı eniyileme.

Dersin Amacı

Bu dersin amacı öğrencilere evrimsel hesaplama yöntemleri ve bunların eniyileme problemleri üzerinde uygulamaları hakkında bilgi vermektir.

Kaynakça

Introduction to Evolutionary Computing by A.E. Eiben and J.E. Smith, Springer, 2nd Edition Global Optimization Algorithms – Theory and Application –Thomas Weise, 2009 Essentials of Metaheuristics, Sean Luke, Second Edition, 2012

Öğrenme Çıktıları:

1. Evrimsel hesaplama ve temel bileşenlerini açıklayabilme.
2. Verilen probleme göre uygun evrimsel hesaplama yöntemini seçebilme.
3. Evrimsel hesaplama yöntemlerini eniyileme problemlerinin çözümüne uygulayabilme.
4. Evrimsel algoritmalar için deneysel çalışma tasarlayabilme.

Hafta Konular
1

Evrimsel Hesaplamaya Giriş

2

Evrimsel Hesaplamanın Temelleri ve Genel Bileşenleri

3

İkili Temsil, Tamsayı Temsili ve İkili Genetik Algoritmalar

4

Kayan Nokta Temsili, Evrim Stratejileri

5

Permütasyon Temsili, Genetik Algoritma Kullanarak Gezgin Satıcı Probleminin Çözümü

6

Ağaç Temsili, Genetik Programlama

7

Uygunluk, Seçilim ve Popülasyon Yönetimi

8

Diferansiyel Gelişim Algoritması

9

Parçacık Sürü Eniyilemesi Algoritması

10

Evrimsel Hesaplama için Yazılım Kütüphaneleri

11

Evrimsel Algoritmalar ile Çalışma

12

Çok Amaçlı Evrimsel Algoritmalar

13

Örnek Problem Çözümleri

14

Genel Değerlendirme

Notlandırma:

  • Ara Sınav %25
  • Dönem Projesi %25
  • Final Sınavı %50
P.O. 1 P.O. 2 P.O. 3 P.O. 4 P.O. 5 P.O. 6 P.O. 7 P.O. 8 P.O. 9 P.O. 10 P.O. 11
L.O. 1 0 0 0 0 0 0 0 0 0 0 0
L.O. 2 0 5 0 5 0 0 0 0 0 0 0
L.O. 3 5 0 5 5 0 0 0 0 0 0 0
L.O. 4 0 0 0 0 5 0 0 0 0 0 0

Teslimler: Proje, Rapor

Tamamlayıcı: CENG 462

CENG 483 Davranışsal Robot Bilimi

Robot bilimine ağırlıklı olarak yazılımsal ve uygulamalı yaklaşmak; robotların mekatronik parçalarını ve donanımsal yapılarını incelemek; robot yazılım parçalarını ve yazılımsal yapılarını incelemek; robotların akıllı davranışlar göstermek için yardımcı olacak yazılımsal yapıları ve özelliklerini incelemek; iş birlikçi robotların donanımsal ve yazılımsal gereksinimlerini incelemek; örnek iş birlikçi ve akıllı görünen robot uygulamaları geliştirmek.

Dersin Amacı

1. Robotların donanımsal özelliklerini öğrenmek(CO 1)
2. Robotların yazılımsal özelliklerini öğrenmek(CO 2;3)
3. Robotların iş birlikçi ve akıllı davranmalarını sağlayacak uygulamalar geliştirmek (CO 2;3)

Kaynakça

Mataric, Maja J; 2007; “The Robotics Primer”; The MIT Press; ISBN 026263354x ,Craig, John. J.; 2003; “Introduction to Robotics: Mechanics and Control”; Prentice Hall; ISBN 0201543613 ,Jones, Joe; 2003; “Robot Programming: A Practical Guide to Behaviour-Based Robotics”; McGraw-Hill, ISBN 0071427783 ,Enderton, Herbert B.; 2001; “A Mathematical Introduction to Logic”; Academic Press; ISBN 0-12-238452-0 ,Kelly, John; 1997; “The Essence of Logic”; ISBN 0-13-396375-6 ,Bell,J.L.; 1997; “A course in mathematical logic”; 1997; N.H.; ISBN 0-7204-2844-0 ,Gabbay, Dov M.; 2000; “Temporal logic: mathematical foundations and computational aspects”; Oxford: Clarendon press; ISBN 0-19-853768-9 ,Lootsma, Freerk A.; 1997; “Fuzzy logic for planning and decision making”; Kluwer Academic Publishers; ISBN 0-7923-4681-5

Öğrenme Çıktıları

1. Robot türlerini ve davranışlarını ayırt eder

2. Akıllı robot davranışları için yöntemler kullanır

3. İş birlikçi robot davranışları için yöntemler kullanır

4. Yapboz robotlardan robotlar geliştirir

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

Notlandırma

Vize: 20%

Kuiz: 10%

Ödev: 1o%

Sunum: 20%

Final: 30%

Rapor: 10%

CENG 484 Veri Madenciliği

Bilgi keşfi sürecine genel bakış, genel hatları ile veri madenciliği, veri hazırlama, veri madenciliğii temelleri, ilişki kuralları madenciliği, sınıflandırma ve kestirim, kümeleme analizi, web madenciliği, veri madenciliği uygulamaları, dönem projeleri.

Dersin Amacı

1.Yeni bir alanla tanışarak teknik altyapısını zenginleştirmek,

 

2.Araştırma yapma yeteneği kazanmak,

3.Karmaşık bir problemi anlama ve çözüm üretme yeteneği kazanmak,

4.Süreç yönetimi yapma yeteneği kazanmak,

5.Sözlü ve yazılı iletişim becerisini arttırmak.

Kaynakça

J. Han, Data Mining: Concepts and Techniques , Morgan Kaufman, 2000. ,M. H. Dunham, Data Mining Introductory and Advanced Topics , Prentice Hall, Pearson Education, 2003. ,R. J. Roiger and M. W. Geatz, Data Mining A Tutorial Based Primer , Addison Wesley, 2003. ,M. J. A. Berry and G. S. Linoff, Mastering Data Mining , Wiley, 2000

Öğrenme Çıktıları

1. Bilgi keşfi sürecinin adımlarını ve veri madenciliği algoritmalarını öğrenmek

2. Veri madenciliği araçlarını kullanma yeteneğinin kazanmak

3. Bir bilgi keşfi probleminin anlamak, modellemek ve gerçekleştirmek

4. Geliştirilen projeleri yazılı ve sözlü olarak anlatabilmek

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ı

Notlandırma

Vize: 30%

Sunum: 30%

Final: 40%

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.

Dersin Amacı

Bu dersin amacı, bilgi teknolojileri özelinde girişimcilik tanıtmaktır. Bilgi teknolojileri sektöründe sürdürülebilir büyümeyi yakalamak isteyen firmalar için gerekli olan girişimcilik bakış açısı ve düşünce sistematiği bu ders kapsamında vurgulanacaktır.

Kaynakça

Stephen Covey, The 7 Habits of Highly Effective People, Free Press, 2004. ,Thomas Friedman, The World Is Flat, 3.0, A Brief History of the Twenty-First Century, Picador, Paperback, 2007. ,Fuat Alican, Yol, 2010.

Öğrenme Çıktıları

1. Bilgi teknolojileri sektöründe girişimciliği tanımak.

2 Girişimcilik bakış açısı ve düşünce sistematiğini anlamak.

3 Kendi işini kurma ve kendi ürünlerini geliştirme sürecine hazırlanmak.

4 Sürdürülebilir büyüme konusunu anlayabilmek.

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

Notlandırma

Vize: 30%

Sunum: 40%

Final: 30%

CENG 486 Akıllı İşletmeler için Girişimcilik

Akıllı iş dünyasını oluşturan bileşenler ve ekosistem. İş süreçlerinin otomasyonu. Akıllı İş Dünyası iş modelleri ve bunların gerçekleştirimi.

Hafta Konu
1 Akıllı İş Dünyasına Giriş
2 Akıllı İş Dünyası Ekosistemi
3 Otomasyon Temelli Değer Yaratma
4 İş Ortaklarını Ağlarla Bağlama
5 Veriye Dayanan Akıl
6 Karar Vermeyi Otomatikleştirme
7 İş süreçlerini Otomatikleştirme
8 Otomasyon Temelli İş Modelleri
9 Üyelik Ekonomisi
10 Bulut Temelli İş Platform Oluşturma
11 Nesnelerin İnterneti ve Sayısal Dönüşüm
12 Akıllı İş Dünyası için Girişimcilik Yetkinlikleri
13 Akıllı İş Dünyası için Girişimcilik Ekosistemi
14 Akıllı İş Dünyasının Geleceği
CENG 487 Bilgisayar Grafiğine Giriş

Bu ders bilgisayar grafiği oluşturma tekniklerini ve programlama arabirimlerini konu alır. Derste bilgisayar grafiği için gerekli temel matematiksel konular (iki ve üç boyutlu dönüşümler), ışıklandırma modelleri, görüntü oluşturma teknikleri, basit sahne modelleme ve görünürlük analizi yöntemleri anlatılmaktadır. Ayrıca bu bilgisayar grafiği tekniklerinin OpenGL programlama arabirimi ile güncel donanım üzerinde uygulanmasını da kapsar.

Dersin Amacı

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.

Kaynakça

Interactive Computer Graphics: A Top-Down Approach with OpenGL, by Edward Angel and Dave Shreiner

Öğrenim Çıktıları

1. Bilgisayar grafiği tekniklerini standart programlama arabirimleri kullanarak uygulayabilme

2. 3B nesneler ile imge görüntüleri arasındaki matematiksel ilişkiyi türetebilme

3. Farklı ışıklandırma modellerini karşılaştırabilme

4. Oluşturma yazılımlarını görünürlük veri yapıları kullanarak eniyileyebilme

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.

Dersin Amacı

Dersin temel amacı öğrencilerin modelleme, oluşturma, dokulandırma ve ışıklandırma benzeri Bilgisayar Grafiği konularında güncel teknikler hakkında bilgi sahibi olmalarıdır. Öğrenciler öğrendiklerini uygulama konusunda da pratik kazanacaklardır.

Kaynakça

Computer Graphics: Principles and Practice. 3rd Ed., J.F. Hughes et al.

Öğrenme Çıktıları

1. İleri bilgisayar grafiği tekniklerini pratikte uygulayabilme

2. Işıklandırma ve hacim oluşturma teknikleri için kullanılan matematiksel ilişkileri türetebilme

3. Farklı ışıklandırma modellerini karşılaştırabilme

4. Oluşturma yazılımlarını eniyileyebilme

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

Notlandırma

Vize: 25%

Homework: 30%

Final: 35%

 

CENG 491 Destekleyici Alan Dersi

Destekleyici Alan Dersinin Teknik Seçmeli Ders Olarak Sayılabilmesi İçin Gereklilikler

Bölümümüz dışında alınan ve tamamlanmış olan sertifikalı eğitim destekleyici alan dersi olarak kabul edilebilir. Ancak aşağıdaki koşulların sağlanması gerekmektedir:

  • İzmir Yüksek Teknoloji Enstitüsü Eğitim Planı Destekleyici Alan Dersinin Teknik Seçmeli Ders olarak saydırılmasına ilişkin usul ve esaslarda belirtilen tüm koşullar sağlanmış olmalıdır. Söz konusu usul ve esaslara buradan erişilebilir.
  • Alınan eğitimin içeriği bölüm eğitim planında yer alan dersler arasında bulunmamalıdır.
  • CENG491 dersine kaydolmadan önce ilgili dersin tamamlandığına dair bir sertifika alınmış olmalıdır.
  • Dersin en az 30 saatlik yüz yüze/çevrimiçi temas süresi bulunmalıdır.
  • Derste en az bir sınav ve/veya proje yer almalıdır.
  • Yapılan sınav(lar)ın ve/veya proje(ler)in sonuçları, ilgili ödevlerin açıklandığı tarihte dersin yürütücüleri ile paylaşılmalıdır.

Bu şartları sağlamayan dersler teknik seçmeli olarak kabul edilmeyecektir.

CENG 499 Ortak Eğitim (COOP)

CENG499 Ortak Eğitim (COOP) dersi, öğrencilerimizin endüstri ile iş birliği içinde gerçek çalışma ortamlarında yarı zamanlı görev alarak deneyim kazanmalarını amaçlamaktadır. Bu ders kapsamında öğrenciler, 13 hafta boyunca haftada bir veya iki tam gün olmak üzere anlaşmalı firmalarda yarı zamanlı olarak görev alırlar. Öğrencilerin 4. sınıf seviyesinde olmaları, en az 3.00 genel not ortalamasına sahip olmaları ve ilk dört yarıyıldaki tüm derslerini başarıyla tamamlamış olmaları gerekmektedir. CENG499 Dersi 3 kredili (0+6) bir teknik seçmeli derstir. Bu ders ile öğrencilerin;

  • teorik bilgi birikimlerini endüstriyel uygulamalarla pekiştirmeleri,
  • profesyonel çalışma ortamlarında proje yürütme, raporlama ve iletişim becerilerini geliştirmeleri,
  • kariyer hedeflerini belirlemeleri ve sektörle güçlü bağlar kurmaları hedeflenmektedir.

Ders süresince yapılan çalışmalar raporlanarak değerlendirilir. Sigorta işlemleri ve sözleşme süreçleri Mühendislik Fakültesi Dekanlığı koordinasyonunda yürütülmektedir. Enstitü Ortak Eğitim yönergesine bu bağlantıya tıklayarak erişebilirsiniz.