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 Kodu: | BIP1024 | ||||||||
Ders İsmi: | VERİ YAPILARI VE ALGORİTMALAR | ||||||||
Ders Yarıyılı: | Bahar | ||||||||
Ders Kredileri: |
|
||||||||
Öğ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: |
|
||||||||
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 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. |
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 |
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ı |
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 Öğ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 |
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 |
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 |
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 |