Bu dersin amacı, öğrencilere bilgisayar dünyasında çok karşılaşılan bazı algoritmaların anlatılması, algoritmalar arası karşılaştırmaların yapılması ve anlatılan algoritmaların PYTHON ile programlarının yazılmasıdır.
1. HAFTA:
Genel Kavramlar:
Rekürsif (Özyinelemeli) Algoritmalar
Geri İzlemeli Algoritmalar
Böl ve Yönet Algoritmaları
Dinamik Programlama Algoritmaları
Aç Gözlü Algoritmalar
Kaba Kuvvet Algoritmaları
Laboratuvar:
PYTHON’a giriş
Değişkenler, İfadeler ve Deyimler
2. HAFTA:
Diziler
Bağlantılı Listeler
Dizilerle Bağlantılı Listelerin Karşılaştırılması
Laboratuvar:
Koşullu Durumlar ve İfadeler
3. HAFTA:
Tek Yönlü Doğrusal Bağlantılı Liste
Çift Yönlü Doğrusal Bağlantılı Liste
Tek Yönlü Dairesel Bağlantılı Liste
Çift Yönlü Dairesel Bağlantılı Liste
Laboratuvar:
Döngüler
4. HAFTA:
Yığın ve Kuyruk Yapısı
Dizilerle Yığının Gerçeklenmesi
Bağlantılı Listelerle Yığının Gerçeklenmesi
Laboratuvar:
Fonksiyonlar
5. HAFTA:
Dizilerle Kuyruğun Gerçeklenmesi
Bağlantılı Listelerle Kuyruğun Gerçeklenmesi
Laboratuvar:
Listeler, Karakter Dizileri, Demetler ve Sözlükler
6. HAFTA:
Kriptolojiye Giriş
Sezar’ın Kutu Şifresi
Tek Alfabeli Yerine Yerleştirme Kriptolama
Algoritması
Laboratuvar:
Dosyalar ve Modüller
7. HAFTA:
İki Alfabeli Yerine Yerleştirme Kriptolama
Algoritması
Sezar’ın Kutu Şifresinin İyileştirilmesi
Vigenere Şifresi
Laboratuvar:
Hata Yakalama
8. HAFTA:
Frekans Analizi
Kırılamaz Şifre
Şifreleme Algoritmalarının Karşılaştırılması
Laboratuvar:
Soru çözümü
9. HAFTA:
Yarıyıl İçi Sınavı
10. HAFTA:
Rekürsif Yapılar
Araya Yerleştirme Sıralama Algoritması
Seçmeli Sıralama Algoritması
Kabarcık Sıralama Algoritması
Laboratuvar:
Nesne Tabanlı Programlamaya Giriş
11. HAFTA:
Kokteyl Sıralama Algoritması
Basit Sıralama Algoritması
Gnome Sıralama Algoritması
Sayma Sıralama Algoritması
Laboratuvar:
Nesne Tabanlı Programlamaya Giriş
12. HAFTA:
Tek-Çift Yerdeğiştirme Sıralama Algoritması
Hızlı Sıralama Algoritması
Birleştirme Sıralama Algoritması
Laboratuvar:
Grafik Arayüz Uygulamaları
13. HAFTA:
Hash Fonksiyonları
Algoritma Analizi
Büyük O Notasyonu
Laboratuvar:
Lineer Programlama Uygulamaları
14. HAFTA:
Büyük O Notasyonunun Bulunmasına Ait Örnekler
CPU ve RAM Kullanımı Konusunda Algoritmalar
Arası Karşılaştırmalar
Laboratuvar:
Soru çözümü
Bu dersi başarıyla tamamlayan öğrenci:
1.Algoritma kavramını öğrenecek ve algoritmaların performans analizini yapabilecektir.
2.Yığın yapısı, kuyruk yapısı, sıralama algoritmaları, temel kriptoloji algoritmaları, rekürsif algoritmalar gibi bilgisayar dünyasında çok karşılaşılan algoritmaları öğrenecektir.
3.Python programlama dilini kullanarak program yazmayı ve ders kapsamında verilen algoritmaların python ile programlamasını öğrenecektir.
1. Algoritmalar, Robert Sedgewick, Kevin Wayne, Nobel Akademik Yayıncılık, 2018.
2. Algoritmalar ve Programlama, Anadolu Üniversitesi Açık Öğretim Fakültesi Yayınları, 2016.
3. Veri Yapıları ve Algoritma Temelleri, Dr. Sefer Kurnaz, Papatya Bilim, 2004.
4. Algoritma Geliştirme ve Veri Yapıları, Dr. Rifat Çölkesen, Papatya Bilim, 2016.
5. PYTHON, Mustafa Başer, Pusula Yayıncılık, 2002.
6. PYTHON, Fırat Özgül, Kodlab Yayıncılık, 2010.
7. Resmi Python3 Kılavuzu, Sürüm 3, Guido Van Rossum, Free Ebook, 2015.
8. Python İle Çocuklar İçin Programlama, Mustafa Murat Çoşkun, Dikeyeksen Yayıncılık, 2017.
9. Kod Kitabı, Simon Singh, Klan Yayınevi, 2004.
10. Şifrelerin Matematiği: Kriptografi, Canan Çimen, Sedat Akleylek, Ersan Akyıldız, ODTÜ Yayınevi, 2007.
| Hafta | Konu Başlıkları |
|---|---|
| 1 | Problem çözümü |
| 2 | Algoritmalar tarihi |
| 3 | Enküçükleme ve enbüyükleme |
| 4 | Sıralama ve arama |
| 5 | Saf matematik |
| 6 | İleri eniyileme |
| 7 | Geometri |
| 8 | Tekrar |
| 9 | Ara sınav |
| 10 | Dil |
| 11 | Makina öğrenmesi |
| 12 | Yapay zeka |
| 13 | Daha ileri konular |
| 14 | Tekrar |
| Hafta | Konu Başlıkları |
|---|---|
| 1 | Problem çözümü |
| 2 | Algoritmalar tarihi |
| 3 | Enküçükleme ve enbüyükleme |
| 4 | Sıralama ve arama |
| 5 | Saf matematik |
| 6 | İleri eniyileme |
| 7 | Geometri |
| 8 | Tekrar |
| 9 | Ara sınav |
| 10 | Dil |
| 11 | Makina öğrenmesi |
| 12 | Yapay zeka |
| 13 | Daha ileri konular |
| 14 | Tekrar |
| Etkinlikler | Sayı | Katkı Payı |
|---|---|---|
| Yarıyıl içi çalışmaların başarı notuna katkısı | 1 | 50 |
| Yarıyıl sonu çalışmaların başarı notuna katkısı | 1 | 50 |
| Toplam | 2 | 100 |
| Etkinlikler | Sayı | Katkı Payı |
|---|---|---|
| Ödevler | 0 | 0 |
| Sunum | 0 | 0 |
| Arasınavlar (Hazırlık Süresi Dahil) | 1 | 50 |
| Proje | 0 | 0 |
| Laboratuar | 0 | 0 |
| Diğer Uygulamalar | 0 | 0 |
| Kısa Sınavlar | 0 | 0 |
| Dönem Ödevi / Projesi | 0 | 0 |
| Portfolyo Çalışmaları | 0 | 0 |
| Raporlar | 0 | 0 |
| Öğrenme Günlükleri | 0 | 0 |
| Bitirme Tezi/Projesi | 0 | 0 |
| Seminer | 0 | 0 |
| Diğer | 0 | 0 |
| Toplam | 1 | 50 |
| Numara | Program Yeterlilikleri | Puan | ||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 1 | Matematik, fen ve mühendislik bilimleri konularında yeterli bilgi birikimi | X | ||||
| 2 | Bu alanlardaki kuramsal ve uygulamalı bilgileri karmaşık mühendislik problemlerini modelleme ve çözme için uygulayabilme becerisi | X | ||||
| 3 | Karmaşık Endüstri Mühendisliği problemlerini saptama, tanımlama, formüle etme, doğrulama ve çözme becerisi; bu amaçla uygun analiz ve modelleme yöntemlerini seçme ve uygulama becerisi | X | ||||
| 4 | Karmaşık bir üretim veya hizmet sistemini, süreci, cihazı veya ürünü gerçekçi ve değişken kısıtlar ve koşullar altında, performans boyutlarını iyileştirmeye yönelik tasarlama becerisi; bu amaçla modern tasarım yöntemlerini uygulama becerisi | X | ||||
| 5 | Endüstri Mühendisliği uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern yöntem, teknik ve araçları geliştirme, seçme ve kullanma becerisi; bilişim teknolojilerini etkin bir şekilde kullanma becerisi | X | ||||
| 6 | Karmaşık Endüstri Mühendisliği problemlerinin veya bu alandaki araştırma konularının incelenmesi için deney tasarlama, deney yapma, veri toplama, sonuç çıkartma, sonuçları analiz etme ve yorumlama becerisi | |||||
| 7 | Disiplin içi ve çok disiplinli takımlarda etkin biçimde ve farklı rollerde çalışabilme becerisi; bireysel çalışma becerisi | X | ||||
| 8 | Türkçe sözlü ve yazılı etkin iletişim kurma becerisi; en az iki yabancı dil bilgisi; etkin rapor yazma ve yazılı raporları anlama, tasarım ve üretim raporları hazırlayabilme, etkin sunum yapabilme, açık ve anlaşılır talimat verme ve alma becerisi | |||||
| 9 | Yaşam boyu öğrenmenin gerekliliği bilinci; bilgiye erişebilme, bilim ve teknolojideki gelişmeleri izleme, bilgi yönetimi araçlarını kullanma ve kendini sürekli yenileme becerisi | |||||
| 10 | Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk bilinci; Endüstri Mühendisliği uygulamalarında kullanılan ulusal ve/veya uluslararası standartlar hakkında bilgi | |||||
| 11 | Proje yönetimi ile risk yönetimi ve değişim yönetimi gibi, iş hayatındaki uygulamalar hakkında bilgi | |||||
| 12 | Girişimcilik, yenilikçilik hakkında farkındalık; sürdürülebilir kalkınma hakkında bilgi | |||||
| 13 | Endüstri Mühendisliği uygulamalarının evrensel ve toplumsal boyutlarda sağlık, çevre ve güvenlik üzerindeki etkileri hakkında bilgi; toplumsal ve kurumsal sosyal sorumluluk bilinci | |||||
| 14 | Çağın mühendislik alanına yansıyan sorunları hakkında bilgi | |||||
| 15 | Endüstri Mühendisliği çözümlerinin hukuksal sonuçları konusunda farkındalık | |||||
| Etkinlikler | Sayı | Süre | Toplam İş Yükü |
|---|---|---|---|
| Ders Süresi | 14 | 4 | 56 |
| Sınıf Dışı Çalışma Süresi | 13 | 3 | 39 |
| Arasınavlar (Hazırlık Süresi Dahil) | 1 | 10 | 10 |
| Yarıyıl Sonu Sınavı (Hazırlık Süresi Dahil) | 1 | 18 | 18 |
| Kısa Sınavlar | 2 | 5 | 10 |
| Toplam İş Yükü | 133 | ||
| Toplam İş Yükü / 25 | 5.32 | ||
| Dersin AKTS Kredisi | 5 | ||