BİLGİSAYAR PROGRAMCILIĞI
Kazanılan Yeterlilik Program Süresi Toplam Kredi (AKTS) Öğretim Şekli Yeterliliğin Düzeyi ve Öğrenme Alanı
2 120 FULL TIME TYÇ, TYYÇ, EQF-LLL, ISCED (2011):5. Düzey
QF-EHEA:Kısa Düzey
TYYÇ, ISCED (1997-2013): 48

DERSİN GENEL BİLGİLERİ

Ders Kodu: BIP1024
Ders İsmi: VERİ YAPILARI VE ALGORİTMALAR
Ders Yarıyılı: Bahar
Ders Kredileri:
Teorik Uygulama Kredi AKTS
3 0 3 6
Öğretim Dili:
Ders Koşulu: BIP1023 - BİLGİSAYAR TEKNOLOJİLERİ VE PROGRAMLAMA
Ders İş Deneyimini Gerektiriyor mu?: Hayır
Dersin Türü: Zorunlu
Dersin Seviyesi:
Önlisans TYYÇ:5. Düzey QF-EHEA:Kısa Düzey EQF-LLL:5. Düzey
Dersin Veriliş Şekli: Yüz yüze
Dersin Koordinatörü: Dr. Öğr. Üyesi Refik Tanju SİRMEN
Dersi Veren(ler): Refik Tanju Sirmen
Dersin Yardımcıları:

Dersin Amaç ve İçeriği

Dersin Amacı: Bu ders, yazılım mühendisliğinin temel kavramları, veri yapıları ve algoritmaları hakkında genel bilgi vermeyi, etkili veri yapısı ve algoritma oluşturma ve değerlendirme kurallarını ve bazı önemli algoritmaları öğretmeyi amaçlamaktadır.
Bu dersi başarıyla tamamlayan öğrenciler, aşağıdaki alanlarda temel bilgi ve beceriler kazanacaktır:
1. Belirli yazılım mühendisliği kavramları.
2. Algoritma tasarımı ve değerlendirme teknikleri
3. Temel ve dinamik veri yapıları.
4. Belirli ana problemler ve bilgisayar temelli çözüm yaklaşımları.
5. Belirli önemli algoritmalar.
Dersin İçeriği: Bu ders, algoritma değerlendirme tekniklerinin ve bazı önemli algoritmaların yanı sıra yazılım mühendisliğinin belirli kavramlarını, veri yapılarını ve algoritmalarını öğretir.

Öğrenme Kazanımları

Bu dersi başarıyla tamamlayabilen öğrenciler;
1) Temel veri türleri ve bellek organizasyonu, Modüller ve değişken bildirim aralığı, Sınıflar ve nesneler
2) Özyineleme, Algoritma ve Algoritma analizi, Dinamik veri yapıları
3) Arama algoritmaları, Sıralama algoritmaları, İletişim sorunları ve çözümleri
4) Ayrık ve bulanık mantık, diğer temel kavramlar ve yaklaşımlar
5) Çeşitli önemli problemler ve algoritmalar

Ders Akış Planı

Hafta Konu Ön Hazırlık
1) Temel veri tipleri ve bellek organizasyonu
2) Modüller ve değişken tanım aralığı
3) Sınıflar ve nesneler
4) Özyineleme
5) Algoritma ve algoritma analizi
6) Dinamik veri yapıları
7) Arama algoritmaları
8) Sıralama algoritmaları
9) İletişim sorunları ve çözümleri
10) Ayrık ve Bulanık mantık
11) Diğer temel kavramlar ve yaklaşımlar
12) Bazı önemli sorunlar ve algoritmalar
13) Dönem Projesi Sunumu
14) Final Sınavı

Kaynaklar

Ders Notları / Kitaplar: • Baka B., Python Data Structures and Algorithms, Packt Publishing, ISBN: 978-1-78646-735-5, 2017.
• Notes and Presentations
• Sample programs
Diğer Kaynaklar: • Bhargava A.Y., Grokking Algorithms - An Illustrated Guide for Programmers and Other Curious People, Manning Publications Co., ISBN: 9781617292231, 2016.

Ders - Program Öğrenme Kazanım İlişkisi

Ders Öğrenme Kazanımları

1

2

3

4

5

Program Öğrenme Çıktıları
1) Temel düzeydeki Matematik ve Mühendislik kavramlarıyla problemleri analiz etmek 1 1 1
2) Temel bilgisayar kullanımı bilgisini edinmek, mesleği için gerekli yazılım ve donanım araçlarını kullanmak 1 1 1 1
3) Algoritmik düşünmek ve yazılım planlamasında bu yetisini kullanmak 1 1 1
4) Mesleki problemleri tanımlamak ve çözme becerisi edinmek 1 1
5) Güncel yazılım dillerini kullanarak yazılım geliştirmek 1 1 1 1
6) İnternet teknolojileriyle yazılım tasarlayabilmek, kodlayabilmek ve sunucu ve istemci tabanlı programlar geliştirebilmek
7) Veritabanı tasarlamak ve veritabanıyla bağlantılı programlar geliştirmek
8) Bilgisayar alt donanımını oluşturan bileşenlere ait temel elektrik ve elektronik bilgisi edinmek
9) Edindiği programlama bilgisini Denizcilik alanına uygulayabilmek 1 1
10) Bir yazılımın analizi, tasarlanması, planlanması, kodlanması ve raporlanmasında görev alabilmek. Mesleğinde proje üretme çalışmalarında yönetsel olmayan görevlerde çalışabilmek 1 1
11) Bilgisayar ağları hakkında genel bilgiye sahip olmak
12) Bilgisayar işletim sistemlerinin temelleriyle ilgili bilgiye sahip olmak
13) Etkin sözlü ve yazılı iletişim kurabilme becerisi edinmek 1 1
14) Bağımsız davranma, sorumluluk alma, karar verme ve yaratıcılık becerilerini kazanmak 1 1
15) Yaşam boyu öğrenmenin gereğini algılamak, gelişmeleri takip ederek kendini sürekli geliştirme becerisini edinmek
16) Mesleki ve etik sorumlulukları kavramak
17) Ana dilinde ve yabancı dilde mesleğiyle ilgili yazılmış teknik belgeleri okuyabilmek, anlayabilmek, yazılı ve sözlü iletişim kurabilmek 1 1

Ders - Öğrenme Kazanımı İlişkisi

Etkisi Yok 1 En Düşük 2 Orta 3 En Yüksek
       
Dersin Program Kazanımlarına Etkisi Katkı Oranı
1) Temel düzeydeki Matematik ve Mühendislik kavramlarıyla problemleri analiz etmek 2
2) Temel bilgisayar kullanımı bilgisini edinmek, mesleği için gerekli yazılım ve donanım araçlarını kullanmak 2
3) Algoritmik düşünmek ve yazılım planlamasında bu yetisini kullanmak 1
4) Mesleki problemleri tanımlamak ve çözme becerisi edinmek 1
5) Güncel yazılım dillerini kullanarak yazılım geliştirmek 1
6) İnternet teknolojileriyle yazılım tasarlayabilmek, kodlayabilmek ve sunucu ve istemci tabanlı programlar geliştirebilmek 3
7) Veritabanı tasarlamak ve veritabanıyla bağlantılı programlar geliştirmek 3
8) Bilgisayar alt donanımını oluşturan bileşenlere ait temel elektrik ve elektronik bilgisi edinmek 3
9) Edindiği programlama bilgisini Denizcilik alanına uygulayabilmek 2
10) Bir yazılımın analizi, tasarlanması, planlanması, kodlanması ve raporlanmasında görev alabilmek. Mesleğinde proje üretme çalışmalarında yönetsel olmayan görevlerde çalışabilmek 2
11) Bilgisayar ağları hakkında genel bilgiye sahip olmak 3
12) Bilgisayar işletim sistemlerinin temelleriyle ilgili bilgiye sahip olmak 3
13) Etkin sözlü ve yazılı iletişim kurabilme becerisi edinmek 2
14) Bağımsız davranma, sorumluluk alma, karar verme ve yaratıcılık becerilerini kazanmak 2
15) Yaşam boyu öğrenmenin gereğini algılamak, gelişmeleri takip ederek kendini sürekli geliştirme becerisini edinmek 3
16) Mesleki ve etik sorumlulukları kavramak 3
17) Ana dilinde ve yabancı dilde mesleğiyle ilgili yazılmış teknik belgeleri okuyabilmek, anlayabilmek, yazılı ve sözlü iletişim kurabilmek 2

Öğrenme Etkinliği ve Öğretme Yöntemleri

Ölçme ve Değerlendirme Yöntemleri ve Kriterleri

Ölçme ve Değerlendirme

Yöntemler Uygulama Sayısı / Yarıyıl Katkı Oranı
Devam 1 % 10
Projeler 1 % 45
Yarıyıl Sonu Sınavı 1 % 45
Toplam % 100
YARIYIL İÇİ ÖLÇME VE DEĞERLENDİRME YÖNTEMLERİNİN BAŞARI NOTUNA KATKI ORANI % 55
YARIYIL SONU SINAVININ BAŞARI NOTUNA KATKI ORANI % 45
Toplam % 100

İş Yükü ve AKTS Kredisi Hesaplaması

Aktiviteler Uygulama Sayısı / Yarıyıl Süre (Saat) İş Yükü (Saat)
Ders 14 3 42
Sunum / Seminer 1 20 20
Proje 1 45 45
Yarıyıl Sonu Sınavı 1 45 45
Toplam İş Yükü 152