PROGRAMI
DERS TANITIM VE UYGULAMA BİLGİLERİ

Ders AdıKoduVerildiği YılVerildiği YarıyılSüresi (T+U)Yerel KredisiAKTS Kredisi
Yazılım Geliştirme TemelleriCPR 201212 + 024,00
 
Ders Bilgileri
Dersin Öğretim Diliİngilizce
Dersin SeviyesiLisans
Dersin Türü
Dersin Veriliş BiçimiYüz Yüze
 
Dersin Öğrenme Kazanımları:

Bu dersi başarı ile tamamlayan öğrenciler:
1. Yazılım geliştirme yaşam döngüsü süreçlerini tanımlar.
2. Algoritma ve akış diyagramı oluşturur.
3. Temel düzeyde yapısal programlama mantığını uygular.
4. Kodlama sürecinde üretken yapay zeka araçlarını etik şekilde kullanır.
5. Basit yazılım projeleri geliştirir ve dokümante eder.
 
Dersin Önkoşulları ve Birlikte Alınması Gereken DerslerYok
Daha Önce Alınmış Olması Önerilen DerslerYok
 
Dersin Tanımı:

Bu ders, yazılım geliştirme yaşam döngüsünün temel aşamalarını öğretmeyi amaçlar. Planlama, analiz, tasarım, geliştirme, test, bakım ve dokümantasyon gibi süreçleri içeren yazılım geliştirme sürecinin temel bileşenleri tanıtılır. Öğrenciler, algoritma geliştirme, temel akış diyagramları oluşturma, yapısal programlama ilkeleri ve yazılımda modülerlik konularında bilgi ve beceri kazanır.
 
Üretken Yapay Zeka Kullanımı:

Ders kapsamında öğrenciler, yazılım algoritmalarını tasarlarken üretken yapay zekadan nasıl destek alabileceklerini öğrenirler. ChatGPT, GitHub Copilot gibi araçlarla kod önerileri alma, açıklama üretme ve hata tespiti gibi işlevler deneyimlenir.
 
Dersin İçeriği (Haftalık Konu Dağılımı):
 
HaftaKonu
1Yazılım Geliştirme Yaşam Döngüsüne Giriş
2Planlama ve Gereksinim Analizi
3Algoritma Geliştirme Temelleri
4Akış Diyagramları
5Yapısal Programlamaya Giriş
6Conditional Structures
7Döngü Yapıları
8Ara Sınav
9Fonksiyonlar ve Modüler Programlama
10Diziler ve Temel Veri Yapıları
11Yazılımda Hata Ayıklama ve Test Süreci
12Yapay Zeka Destekli Kodlama
13Proje Geliştirme ve Belgeleme
14Öğrenci Proje Sunumları
 
Kaynaklar:
Pressman, R. S., & Maxim, B. R. (2014). Software engineering: A practitioner's approach (8th ed.). McGraw-Hill Education.
 
Diğer Kaynaklar:
Wirth, N. (2005). Algorithms + data structures = programs. Prentice-Hall.
 
Öğretim Yöntem ve Teknikleri:
Ders teorik anlatımlar, laboratuvar uygulamaları, proje temelli öğrenme ve yapay zekâ destekli mini uygulamalarla yürütülür. Öğrenciler bireysel ve grup çalışmaları ile projeler geliştirir. Derse Devam Hakkında: Ara sınav ve final sınavlarının yanı sıra dönem boyunca gerçekleştirilmesi planlanan sınıf içi etkinliklere katılmayı tercih etmeyen ve verilen ödevleri teslim etmeyen öğrencilerin “NA” notu alacaklardır. Ayrıca, öğrencilerin derse katılımlarının nihai dönem notuna dahil edilecektir.
 
Değerlendirme Sistemi:
YöntemAdetKatkı (%)
Ara Sınav1%30
Final Projesi1%30
Final Sınavı1%40
 
Ders İşbaşı Eğitimi (iş yerinde eğitim) Gerektiriyor mu?
Gerektirmiyor
 
Dersin AKTS İş Yükü:
#AktiviteAdetSüre (Saat)İş Yükü
1Derslere Katılım (haftalık bazda)142,0028,00
2Laboratuvarlara/Derslere Katılım (haftalık bazda)00,000,00
3Notların önceden hazırlanması ve son haline getirilmesi (haftalık bazda)00,000,00
4İlgili materyalin toplanması ve seçilmesi (bir kez)00,000,00
5İlgili materyalin kendi kendine incelenmesi (haftalık bazda)102,0020,00
6Ev ödevleri00,000,00
7Sınavlara Hazırlık00,000,00
8Ara Sınavlara Hazırlık (Sınavların süresi dahil)115,0015,00
9Dönem Ödevi/Vaka Çalışması Raporunun Hazırlanması (sözlü sunum dahil)00,000,00
10Dönem Projesi/Saha Çalışması Raporunun Hazırlanması (sözlü sunum dahil)120,0020,00
11Final Sınavına Hazırlık (sınav süresi dahil)115,0015,00
 
Dersin Program Yeterlilikleri vs. Öğrenme Kazanımları:
#Program YeterlilikleriKatkı (0-4)
1Bilgisayar sistemlerinde yeterli altyapıya sahip olma; bu alandaki kuramsal ve uygulamalı bilgileri bilgisayar sistemlerinde kullanabilme becerisi, Bilgisayar sistemindeki problemleri saptama, tanımlama ve çözme becerisi; bu amaçla uygun yöntemler ve tekniklerini seçme ve uygulama becerisi2
2Bir sistemi, sistem bileşenini ya da süreci analiz etme ve istenen gereksinimleri karşılamak üzere gerçekçi kısıtlar altında tasarlama becerisi; bu doğrultuda modern tasarım yöntemlerini uygulama becerisi, Bilgisayar programında gerekli olan teknik araçları seçme ve kullanma becerisi; bilişim teknolojilerini etkin kullanma becerisi2
3Bilgisayar Teknolojileri ve Programlama alanında tanımı iyi yapılmış problemlerin çözümü için gerekli olan verileri tanımlama, toplama ve kullanmayı etkin bir biçimde yapabilmek; pratik uygulamalarda gereken teorik bilgileri, el ve/veya düşünsel becerileri kullanabildiğini göstermek1
4İleri düzey programlama becerisi kazanır. Güncel bilgisayar programlama teknolojilerini kullanarak sektörün beklentilerini karşılayacak şekilde Bilgisayar Programcılığı ile ilgili süreci/süreçleri planlama becerisine sahip olmak.3
5Bağımsız çalışabilme, inisiyatif alabilme, özgün içerikler oluşturabilme ve yazılım takımları içinde verimli çalışabilme becerisine sahip olmak.1
6Türkçeyi ve İngilizce yazılı ve sözlü olarak etkin bir biçimde kullanabilme, sunulan Bilgisayar Programcılığı bilgisini kolayca takip etme ve meslektaşlarıyla etkin bir biçimde iletişim kurabilme becerisine sahip olmak.2
7Sorunların çözümünde bilimsel yöntemler kullanmayı benimser ve problem çözme becerisini geliştirir.1
8Bilgiye erişebilmeye bu amaçla kaynak araştırması yapabilme, veri tabanları ve diğer bilgi kaynaklarını kullanabilme becerisi, Yaşam boyu öğrenmenin gerekliliği bilinci; bilim ve teknolojideki gelişmeleri izleme ve kendini sürekli yenileme becerisi2
9Kendi alanı ile ilgili çalışmalarda öngörülmeyen durumlarla ilgili sorunları belirleme ve çözüm arama yeteneğini kazandığını göstermek1
10Bilgiye erişebilme bilimde ve teknolojide gelişmeleri takip edebilme ve sürekli kişisel gelişimi sürdürebilme becerisine sahip olmak0
11Mesleki, hukuksal, sosyal ve etik sorumluluklarını anlayabilir ve uygular.0