Dersin Dili:
İngilizce
Dersin Koordinatörü:
Dersin Amacı:
Bu ders, ikinci bir programlama dilini tanıtır ve bu dilde algoritmaların nasıl tasarlandığı, analiz edildiğini ve karmaşıklığının belirlendiği öğretilir.
Dersin İçeriği:
Python dili Java yanında ikinci bir dil olarak öğretilir. Algoritmaların tasarımı ve analizi. Büyük-O ölçütü. Sıralama, arama, çizge algoritmaları.
Dersin Öğretim Yöntemleri:
1: Anlatım, 2: Soru-Cevap, 3: Tartışma, 4: Uygulama
Dersin Ölçme Yöntemleri:
A: Sınav, B: Sunum, C: Ödev, D: Proje, E: Laboratuvar
Dikey Sekmeler
Dersin Öğrenme Çıktıları
Dersin Öğrenme Çıktıları | Program Öğrenme Çıktıları | Öğretim Yöntemleri | Ölçme Yöntemleri |
Algoritmaları analiz etme, tasarlama ve karmaşıklıklarını ölçme | 3,4 | 1,2,3 | A,C |
Algoritmaların teorik temellerini tanıma | 3,4 | 1,2,3,4 | A,E |
Gerçek hayattaki hesaplama problemlerinin çözümü için verimli algoritmalar geliştirme | 3,4 | 1,4 | A,E |
Algoritmalar uygulaması | 3,4 | 1,4 | A,E |
Arama ve sıralama algoritmalarını analiz etme | 3,4 | 1,2,4 | A,E,C |
Python programlama dilinin temellerini öğrenme | 3,4 | 1,2,4 | A,E,C |
Dersin Akışı
DERS AKIŞI | ||
Hafta | Konular | Ön Hazırlık |
1 | Java Programcılar için Python | Ders Notu |
2 | Python’da Veri Yapıları | Ders Notu |
3 | Fonksiyonların Büyümesi (Karmaşıklık ölçüleri Büyük-O) | 3. Ünite |
4 | Böl ve Fethet Yaklaşımı | 4. Ünite |
5 | Sıralama Algoritmaları (Ekleme Sıralaması, Birleştirme Sıralaması). | |
6 | Sıralama Algoritmaları (Hızlı Sıralama, Yığın Sıralama) | Ünite 6 ve 7 |
7 | Arama Algoritmaları (Doğrusal Arama, İkili Arama) | Ünite 12 |
8 | Hashing and Hash Tabloları. | Ünite 11 |
9 | ARA SINAV | |
10 | Arama Algoritmaları (İkili Arama Ağaçları, Kırmızı Siyah Ağaçlar) | Ünite 12 ve 13 |
11 | Dinamik Programlama | Ünite 15 |
12 | Doyumsuz Algoritmalar | Ünite 16 |
13 | Temel Çizge Algoritmaları. | Ünite 22 |
14 | Çizge Algoritmaları ve NP Tamlığı | Üinte 23 ve 25 |
15 | FINAL |
Kaynaklar
KAYNAKLAR | |
Ders Notu | Ders Notları |
Diğer Kaynaklar |
Introduction to Algorithms, 4th Edition, Cormen, Leiserson, Rivest, Stein; MIT Press 2022.
Java tutorials, (https://docs.oracle.com/javase/tutorial/), Oracle. Start Out with Python, Global Edition, (4. edition), Gaddis, Pearson, 2021. |
Materyal Paylaşımı
MATERYAL PAYLAŞIMI | |
Dokümanlar | Ders Notları, Ders Kitabı |
Ödevler | Kısa Sınavlar |
Sınavlar | 1 |
Değerlendirme Sistemi
DEĞERLENDİRME SİSTEMİ | ||
YARIYIL İÇİ ÇALIŞMALARI | SAYI | KATKI YÜZDESİ |
Ara Sınav | 1 | 40 |
Kısa Sınav | 1 | 20 |
Ödev | 10 | 40 |
Toplam | 100 | |
Finalin Başarıya Oranı | 60 | |
Yıl içinin Başarıya Oranı | 40 | |
Toplam | 100 |
Dersin Program Çıktılarına Katkısı
DERSİN PROGRAM ÇIKTILARINA KATKISI | ||||||
No | Program Öğrenme Çıktıları | Katkı Düzeyi | ||||
1 | 2 | 3 | 4 | 5 | ||
1 | Öğrenci gelişen bilgisayar teknolojileriyle ortaya çıkan çoklu ortamlarda görsel ara yüzlerin tasarlanması ve geliştirilmesi için gerekli sistemlerin oluşturulması konusunda bilgi sahibidir. | x | ||||
2 | Öğrenci gelişen bilgisayar teknolojileriyle ortaya çıkan çoklu ortamlarda kullanıcılara amaçlarına uygun bilgisayar uygulamalarının tasarlanması, geliştirilmesi ve kullanılabilmesi için gerekli sistemlerin oluşturulması konusunda ileri bilgi sahibidir. | x | ||||
3 | Bilgisayar biliminin temel işleyişini ve problemlerini soyut matematik çerçevesi içinde çözebilmek için gerekli algoritma veri yapılarını tasarlayabilen, geliştirilebilen ve uygulayabilen bilgi ve beceriye sahiptir. | x | ||||
4 | Öğrenci günümüze kadar geliştirilen yapısal yazılım geliştirme araçlarıyla amacına uygun yazılım mantığını tasarlayabilme, bu yazılımları geliştirebilme ve farklı donanım ortamlarında uç kullanıcıların kullanımına sunabilme bilgi ve becerilerine sahiptir. | x | ||||
5 | Öğrenci günümüze kadar geliştirilen nesne yönelimli yazılım geliştirme araçlarıyla amacına uygun yazılım mantığını tasarlayabilme, bu yazılımları geliştirebilme ve farklı donanım ortamlarında uç kullanıcıların kullanımına sunabilme bilgi ve becerilerine sahiptir. | x | ||||
6 | Öğrenci bilgisayarların temel bileşeni işletim sistemlerinin işleyiş mantığını, sistemde işlerin ve kullanıcı yetkilerinin yönetimi için komutların geliştirilmesi ve farklı donanımsal ortamlarda uygulanmasını bilir. | x | ||||
7 | Öğrenci veri kavramı, yapıları, modelleri ile veri tabanı uygulamalarını kullanma ve ilişkisel veri tabanlarında veriyi erişim ve işleme araçlarını tasarlama, geliştirme ve uygulama hakkında bilgi ve becerilere sahiptir. | x | ||||
8 | Öğrenci ticari amaçlı yazılımların veri depolarının modellenmesi, yazılımdan bağlanarak(aracılığıyla) veriye erişim, verilerin işlenmesi konularında ilgili yazılım araçlarıyla geliştirme ve uygulayabilme bilgi ve becerilerine sahiptir. | x | ||||
9 | Öğrenci bilgisayar ağlarının temellerini, ağ sistemin tasarlanması ve yapılandırılması, bakımı ve sorunlarını çözebilmek için gerekli ve yeterli bilgi birikimine sahip olmak. | x | ||||
10 | Öğrenci günümüzün en büyük bilgisayar ağ olan internete özel olarak görsel ara yüzlerin ve çoklu katmanlı istemci/sunucu mimarisinde çalışabilecek yazılımların tasarlanması, geliştirilmesi ve uygulanabilmesi gerekli bilgi, beceri ve donanıma sahiptir. | x |
AKTS İş Yükü Tablosu
DERS KATEGORİSİ | Uzmanlık / Alan Dersleri | ||
AKTS / İŞ YÜKÜ TABLOSU | |||
Etkinlik | SAYISI |
Süresi (Saat) |
Toplam İş Yükü (Saat) |
Ders Süresi | 15 | 3 | 45 |
Sınıf Dışı Ders Çalışma Süresi (Ön çalışma, pekiştirme) | 15 | 3 | 45 |
Ara Sınav | 1 | 10 | 10 |
Ödev | 3 | 10 | 30 |
Final | 1 | 10 | 10 |
Toplam İş Yükü | 140 | ||
Toplam İş Yükü / 25 (s) | 5.6 | ||
Dersin AKTS Kredisi | 6 |
1