Ana içeriğe atla

Mühendislik ve Doğa Bilimleri Fakültesi · Bilgisayar Mühendisliği · Lisans

AKTS: 6 T+U+L: 2+0+1 Zorunlu
Koordinatör: Dr. Öğr. Üyesi Cem TURAN
Ön Koşul Dersleri: BIM 227 - Veri Yapıları

Dersin Amacı

Bu dersin amacı, öğrencilere algoritmaların tasarlanması, doğruluğunun değerlendirilmesi ve çalışma verimliliğinin analiz edilmesi konusunda temel bilgi ve beceriler kazandırmaktır. Ders kapsamında zaman ve bellek karmaşıklığı, asimptotik notasyonlar, arama ve sıralama algoritmaları, özyinelemeli algoritmalar, açgözlü algoritmalar, böl ve fethet yaklaşımı, dinamik programlama ve graf algoritmaları gibi temel konular ele alınarak öğrencilerin farklı problemlere uygun algoritmaları seçebilmesi, karşılaştırabilmesi ve performans açısından değerlendirebilmesi hedeflenmektedir.

Ders İçeriği

Algoritma kavramı ve algoritma analizi, asimptotik gösterimler (Big-O, Θ, Ω), zaman ve alan karmaşıklığı analizi, sıralama algoritmaları ve karmaşıklıklarının incelenmesi, arama algoritmaları ve en iyi-ortalama-en kötü durum analizleri, ikili ağaç tabanlı algoritmaların zaman karmaşıklığı, grafik temsilleri ve graf tabanlı algoritmalar (BFS, DFS, en kısa yol ve minimum kapsayan ağaç algoritmaları), açgözlü (greedy) algoritma yaklaşımı ve uygulamaları.

Zorunlu Kaynaklar

•Kevin Wayne, Robert Sedgewick. Algoritmalar. Nobel, 2018

•Introduction to the Design and Analysis of Algorithms (3rd Edition) by Anany Levitin, 2011

•Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein. Introduction to Algorithms. (3rd Edition) 2008.

•Robert Sedgewick, Philippe Flajolet. An Introduction to the Analysis of Algorithms. (2nd Edition) 2013.

Kurallar

1. Yönetmeliğe göre bir öğrenci toplam ders saatinin en az % 70’ine devam etmemesi halinde derse devamsızlıktan kalır ve (DZ) notu ile başarısız olur. Bu “tolerans” sebepsiz harcanabilir bir hakkı değil, hayatın olağan akışı içinde karşılaşılan yaşamsal sorunlarda dersin hemen kaybedilmemesi için getirilmiş bir tedbirdir. Bu toleransın aşılması durumunda hiçbir istisna yoktur, rapor kabul edilmez. Bir ders yükünün yüzde 30’undan daha fazlasında olunmaması halinde, o ders kazanımlarının elde edilemeyeceği kabul edilir. Gelişim ancak varlıkta olan bir mevhum olup yokluğunuzda bu, mümkün görülmemektedir.
2. Dersi alttan alıp devamsızlıktan kalmamış olmak, derse devam edilmemesi gerektiği olarak yorumlanmamalıdır. Bir eksiklik ve sorun vardır ki ders tekrar alınmaktadır. Bu olumsuzluğun ancak derse ciddiyetle katılım ile giderilebileceğini anımsayınız.
3. Sorumluluklarını önemseyip ihmal etmemek, çalışmak ve gayret göstermek, işinde doğru ve dürüst tutum sergilemek mühendislikte “teknik borçsuzluk” olarak ifade edilmekle, öğrenciliğinizle ilgili teknik borcunuzun bulunmasının, ders başarısızlığınızın nedeni olacağını ve bunun sorumluluğunun sizde olduğunu unutmayınız.
4. Dersi derste öğrenmek ve bunun için istekli olmak, ders öncesinde hazırlıklı olmak, dersin sorularla açılmasına katkı sunmak; akademik faydanın artışı için önemlidir. Derste soru sormaktan, ders gündemi hakkında fikir beyan etmekten çekinmemelisiniz. Böyle davranmanız, ders kazanımları kadar kişisel gelişiminize de önemli katkı sunar, özgüven ve kendinizi ifade edebilme gücünüzü artırır.
5. Daha fazla açıklama gerektiren sorularınızda, merakınızı ve sorularınızı gidermek için akademik görüşme saatlerinde görüşebilirsiniz.
6. Dersi, sizde oluşması istenen mühendislik binasının bir tuğlası olarak görünüz ve onun eksik, zayıf kalmasına izin vermeyiniz ki bina da sağlam olabilsin. Bu nedenle konuları ve anlamadıklarınızı biriktirmeyiniz, sıcağı sıcağına yanıtlarını arayınız.
7. Eğitimin, doğal zekanın gelişimi için olduğunu unutmayınız. Yapay zekayı kendinizle ikame etmeyiniz, çıktılarını kendi çıktılarınız gibi sunmayınız. Etik yönü bir yana, bu kendinize yapacağınız en büyük kötülük, gelişmenizin önüne kendi elinizle öreceğiniz bir duvar olur. Hiçbir aracı kendiniz yerine koymamanız, sizden beklenmektedir.
8. Tüm sınavlarda, yoklamalarda ve çalışmalarınızda etik kurallara uyunuz. Değerli yapınızı her durumda korumanız ve etik kuralların dışına çıkmamanız, her şeyden önemlidir ve eğitimin temelini oluşturur. Aksi davranışlar, en büyük zararı sahibine vermekle, üniversitemizin ilgili yönetmeliği gereği cezai soruşturmaya konu edilir.
9. Derslere mutlaka defter, kalem gibi gereksinimleriniz tam olarak geliniz. Beyninizin bu hazırlığınızın varlığına göre derste karşılacaklarına önem atfedeceğini, ya sindireceğini ya hemen unutacağını anımsayınız.
10. Derste notlarınızı alınız. Başkalarının notları, yaptıkları hataları da size taşıyacağından; başkalarından not almayınız. Ders defterinizi, yazarı siz olan bir el yazması kitap olarak görünüz ve kıymet veriniz. Not almak, beyninizin anlama sürecine olağanüstü katkı sağlayan, karmaşık ve çok yönlü bir bilişsel etkinliktir; bundan kendinizi mahrum bırakmayınız.
11. Ders içinde spontane quizler, derse fiili katılımınız, söz alışlarınız “derse katılım ve ders içi ölçme” puanı olarak değerlendirilecektir.
12. Yoklamada var gibi gözükmek için derse sadece fiziken gelmeyiniz, ruhunuzu da derse getiriniz ve konsantre olunuz. Arka sıraları mümkün olduğunca seçmeyip dersin merkezinde olmaya gayret ediniz. Dersin interaktif yürümesinin, sizin katılımınıza bağlı olduğunu unutmayınız.
13. Derslerde her türlü ders dışı telefon, tablet, bilgisayar ile uğraşıda bulunmak; kabul edilir değildir. Bu durum olumsuz değerlendirilir. Ders anında dersten kopuk halde, özellikle arka sıralardaki gruplaşmalı konuşmalar da aynı sınıfta kabul edilir. Sınıf içi huzuru ve konsantrasyonu bu etkilere yönelik uyarılara duyarsız kalındığında, öğrenci dersin dışına davet edilir.
14. Sınav tarihleri tabloda ilan edildiği gibidir. Sınavların konuları makul bir süre öncesinde ilan edilecektir. İZÜ yönetmeliklerine göre kabul edilen mazeretler çerçevesinde girilmeyen sınavlar için telafi sınavı verilecektir.
15. Final sınavı bütün dönem boyu işlenmiş olan konuları kapsar. Final sınav günü, saati ve yeri Dekanlık tarafından ilan edilecektir.
16. Derse geç gelmeyiniz. Özellikle ilk 10 dakikadan sonra, ders konsantrasyonunu bozmamanız için sınıfa giriş yapmayınız, bir sonraki oturumu bekleyiniz. 10 dakika içinde sınıfa girdiğinizde, ders konsantrasyonunu bozucu giriş şekillerinden ve gürültü yapmaktan kaçınınız. Geç gelmeyi alışkanlık haline getirmeyiniz; bu, olumsuz kanaat nedenidir.
17. Güncel ders içeriği dışındaki konularda görüşmek için ders “teneffüs” aralarını kullanmayınız. Bu eğiliminiz başkasının teneffüs hakkını elinden almak anlamına geldiğini ve zarar verici olduğunu unutmayınız. Görüşmenin maliyetine katlanınız ve görüşme saatlerinde randevu alarak konuyu görüşünüz.

Dersin Öğrenme Çıktıları

  1. Graf tabanlı algoritmaları uygular.
  2. Açgözlü (Greedy) algoritma yaklaşımını tanımlar.
  3. Algoritma ve algoritma analizi kavramlarını tanımlar.
  4. Algoritmaların zaman karmaşıklığını hesaplar.
  5. Algoritmaların alan karmaşıklığını hesaplar.
  6. Sıralama algoritmalarının zaman karmaşıklığını analiz eder.
  7. Arama algoritmalarının en iyi, ortalama ve en kötü durum karmaşıklıklarını hesaplar.
  8. Arama algoritmalarının en iyi, ortalama ve en kötü durum karmaşıklıklarını hesaplar.

Temel Alan Dağılımı

(46) Matematik ve İstatistik%40 (48) Bilgisayar%60

Öğretim Yöntem ve Teknikleri

AnlatımSoru-CevapGösterimGösterip YaptırmaBireysel ÇalışmaProblem Çözme

Ölçme ve Değerlendirme

Performans Görevi (Uygulama / Laboratuvar / Atölye / Arazi Çalışması / Seminer / Sunum / Bitirme Çalışması / Tez)Sınav (Yazılı Sınav / Test: Doğru-Yanlış Testi, Çoktan Seçmeli Testi, Kısa Cevaplı Test, Eşleştirmeli Test)

AKTS / İş Yükü

EtkinlikSayıSüre (saat)Toplam İş Yükü
Ders Süresi (Sınav Haftası Dahil)15345
Sınıf Dışı Ders Çalışma Süresi15460
Ara Sınav122
Kısa Sınav000
Ödev248
Uygulama10220
Final122

Ders Akışı

HaftaKonuÖn Hazırlık
1Algoritma Analizine GirişDers notari
2Algoritmaların AnaliziDers notlari
3Algoritma Analizi (Yinelemeli İlişkileri Çözme)Ders notlari
4Üretken işlevler, bölme ve egemenlik yöntemleriDers notlari
5Sıralama ve analiz etmeDers notlari
6En küçük k sayıyı + dinamik programlama yönteminiDers notlari
7Dinamik programlamaDers notlari
8Ara SınavAra Sınav
9En uzun Ortak Sıra (dinamik programlama)ders notları
10Açgözlü AlgoritmalarDers notlari
11Açgözlü AlgoritmalarDers notlari
12Açgözlü Algoritmalar (Huffman Kodlaması)Ders notlari
13Geri İzleme Algoritmaları, Dal ve Sınır Algoritmaları ve grafiklerin temel tanımlarıDers notlari
14Grafikleri gösterin ve aralarında gezinin + Topolojik Sıralama ve Güçlü Bağlantılı BileşenlerDers notlari
15Grafteki En Kısa Yolları Bulma+ İki köşe arasındaki en kısa yolu bulun+ Minimumu kapsayan ağacı bulmaDers notlari
16Final SınavıFinal Sınavı