• Türkçe
  • English
Ders Kodu: 
CIS 114
Ders Dönemi: 
Bahar
Ders Tipi: 
Zorunlu
Teori Saati: 
2
Uygulama Saati: 
2
Kredi: 
3
AKTS: 
6
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