Ders Adı Kodu Yarıyıl T+U Saat Kredi AKTS
Yazılım Mühendisliğinde Problem Çözümleme SWE 101 1 3 + 1 4 5
Ön Koşul Dersleri
Önerilen Seçmeli Dersler
Dersin Dili İngilizce
Dersin Seviyesi Lisans
Dersin Türü Zorunlu
Dersin Koordinatörü Dr.Öğr.Üyesi GÜLÜZAR ÇİT
Dersi Verenler Dr.Öğr.Üyesi GÜLÜZAR ÇİT,
Dersin Yardımcıları
Dersin Kategorisi Diğer
Dersin Amacı

Bu dersin amacı yazılım mühendisliğinde sistematik düşünmeye dayalı temel bilgiler vermektir. Bu doğrultuda, algoritma ve sözde kod yazımı ile birlikte akış diyagramı çizimi detaylı olarak anlatılacaktır.

 

Dersin İçeriği

Dersin ana içeriği algoritma, sözde kod ve akış diyagramı konularından oluşmaktadır. Ayrıca, programlama kavramı ve programlama dilleri, programlama dillerindeki değişken, karar yapısı, döngü, dizi, string, yapı, fonksiyon, dosya kullanımı kavramları da yapısal programlama altında anlatılacaktır. 

 

# Ders Öğrenme Çıktıları Öğretim Yöntemleri Ölçme Yöntemleri
1 Algoritma geliştirme sürecinde akış diyagramı ve sözde kod kullanarak problemleri analiz eder ve çözer. Anlatım, Tartışma, Rol Oynama, Problem Çözme, Çoktan Seçmeli Testler, Yazılı Sınavlar (Kısa ve Uzun Yanıtlı),
2 C/C++ programlama dili ile temel programlama yapıları (değişkenler, operatörler, karar yapıları, döngüler, fonksiyonlar ve diziler) kullanarak program geliştirir. Rol Oynama, Tartışma, Anlatım, Gözlem, Proje, Problem Çözme, Gösterip Yaptırma, Yazılı Sınavlar (Kısa ve Uzun Yanıtlı), Sözlü Sınavlar, Performans Değerlendirme,
3 İşaretçileri (pointers) kullanarak bellek yönetimi ve veri erişimi işlemlerini gerçekleştirir. Gözlem, Gezi / Gözlem, Rol Oynama, Tartışma, Anlatım, Gösterip Yaptırma, Problem Çözme, Performans Değerlendirme, Yazılı Sınavlar (Kısa ve Uzun Yanıtlı),
4 Dosya işlemlerini kullanarak veri okuma, yazma ve işleme uygulamaları geliştirir. Tartışma, Rol Oynama, Deney ve Laboratuvar, Gezi / Gözlem, Gözlem, Anlatım,
5 Nesneye dayalı programlamanın temel kavramlarını (sınıf, nesne) açıklar ve uygular. Gözlem, Rol Oynama, Tartışma, Anlatım, Gösterip Yaptırma, Yazılı Sınavlar (Kısa ve Uzun Yanıtlı), Sözlü Sınavlar, Performans Değerlendirme,
6 Algoritmik düşünme becerisi geliştirerek yazılım mühendisliği problemlerine programlama temelli çözümler üretir. Tartışma, Deney ve Laboratuvar, Gezi / Gözlem, Anlatım, Problem Çözme, Proje, Yazılı Sınavlar (Kısa ve Uzun Yanıtlı), Çoktan Seçmeli Testler, Sözlü Sınavlar,
Hafta Ders Konuları Ön Hazırlık
1 Ders Tanıtımı & Giriş
2 Yazılım Mühendisliği Yaşam Döngüsü ve Algoritma Kavramı
3 Algoritma ve Sözde Kod Yazma
4 Akış Diyagramı
5 Programlama ve Programlama Dili Kavramı
6 Yapısal Programlama Kavramı
7 Değişken Kavramı, Karar Yapıları, İterasyonlar, Döngüler
8 Yıl İçi Sınavı
9 Diziler (Sayı ve Karakter Dizileri)
10 Alt Yordam Kavramı
11 Alt Yordam Kavramı
12 İşaretçiler ve Dinamik Hafıza Yönetimi
13 Nesneye Dayalı Programlama
14 Dosyalarda Giriş/Çıkış İşlemleri
Kaynaklar
Ders Notu
Ders Kaynakları

- C++ How to Program, Deitel, P, Deitel H., Ninth Edition

- Think Like a Programmer, An Introduction to Creative Problem Solving, A. Anton Spraul, No Starch Press, 2012.

- Introduction to Algorithms, Thomas, H. Cormen, 3rd Edition, MIT Press

Sıra Program Çıktıları Katkı Düzeyi
1 2 3 4 5
1 Mühendislik Bilgisi: Matematik, fen bilimleri, temel mühendislik, bilgisayarla hesaplama ve ilgili mühendislik disiplinine özgü konularda bilgi; bu bilgileri, karmaşık mühendislik problemlerinin çözümünde kullanabilme becerisi. X
2 Problem Analizi: Karmaşık mühendislik problemlerini, temel bilim, matematik ve mühendislik bilgilerini kullanarak ve ele alınan problemle ilgili BM Sürdürülebilir Kalkınma Amaçlarını gözeterek tanımlama, formüle etme ve analiz becerisi. X
3 Mühendislik Tasarımı: Karmaşık mühendislik problemlerine yaratıcı çözümler tasarlama becerisi; karmaşık sistemleri, süreçleri, cihazları veya ürünleri gerçekçi kısıtları ve koşulları gözeterek, mevcut ve gelecekteki gereksinimleri karşılayacak biçimde tasarlama becerisi. X
4 Teknik ve Araçların Kullanımı: Karmaşık mühendislik problemlerinin analizi ve çözümüne yönelik, tahmin ve modelleme de dahil olmak üzere, uygun teknikleri, kaynakları ve modern mühendislik ve bilişim araçlarını, sınırlamalarının da farkında olarak seçme ve kullanma becerisi. X
5 Araştırma ve İnceleme: Karmaşık mühendislik problemlerinin incelenmesi için literatür araştırması, deney tasarlama, deney yapma, veri toplama, sonuçları analiz etme ve yorumlama dahil, araştırma yöntemlerini kullanma becerisi. X
6 Mühendislik Uygulamalarının Küresel Etkisi: Mühendislik uygulamalarının BM Sürdürülebilir Kalkınma Amaçları* kapsamında, topluma, sağlık ve güvenliğe, ekonomiye, sürdürülebilirlik ve çevreye etkileri hakkında bilgi; mühendislik çözümlerinin hukuksal sonuçları konusunda farkındalık.
7 Mühendislik Etiği: Mühendislik meslek ilkelerine* uygun davranma, etik sorumluluk hakkında bilgi; hiçbir konuda ayrımcılık yapmadan, tarafsız davranma ve çeşitliliği kapsayıcı olma konularında farkındalık. X
8 Bireysel ve Takım Çalışması: Bireysel olarak ve disiplin içi ve çok disiplinli takımlarda (yüz yüze, uzaktan veya karma) takım üyesi veya lideri olarak etkin biçimde çalışabilme becerisi. X
9 Sözlü ve Yazılı İletişim: Hedef kitlenin çeşitli farklılıklarını (eğitim, dil, meslek gibi) dikkate alarak, teknik konularda sözlü, yazılı etkin iletişim kurma becerisi. X
10 Proje Yönetimi: Proje yönetimi ve ekonomik yapılabilirlik analizi gibi iş hayatındaki uygulamalar hakkında bilgi; girişimcilik ve yenilikçilik hakkında farkındalık. X
11 Yaşam Boyu Öğrenme: Bağımsız ve sürekli öğrenebilme, yeni ve gelişmekte olan teknolojilere uyum sağlayabilme ve teknolojik değişimlerle ilgili sorgulayıcı düşünebilmeyi kapsayan yaşam boyu öğrenme becerisi. X
# Ders Öğrenme Çıktılarının Program Çıktılarına Katkısı PÇ 1 PÇ 2 PÇ 3 PÇ 4 PÇ 5 PÇ 6 PÇ 7 PÇ 8 PÇ 9 PÇ 10 PÇ 11
1 Algoritma geliştirme sürecinde akış diyagramı ve sözde kod kullanarak problemleri analiz eder ve çözer. 5 5 0 4
2 C/C++ programlama dili ile temel programlama yapıları (değişkenler, operatörler, karar yapıları, döngüler, fonksiyonlar ve diziler) kullanarak program geliştirir. 5 4 3 2 2 1
3 İşaretçileri (pointers) kullanarak bellek yönetimi ve veri erişimi işlemlerini gerçekleştirir. 4 4 0 5 2 2 1
4 Dosya işlemlerini kullanarak veri okuma, yazma ve işleme uygulamaları geliştirir. 3 3 0 5 2 2
5 Nesneye dayalı programlamanın temel kavramlarını (sınıf, nesne) açıklar ve uygular. 4 0 4 3 1 1 1
6 Algoritmik düşünme becerisi geliştirerek yazılım mühendisliği problemlerine programlama temelli çözümler üretir. 4 5 3 3
Değerlendirme Sistemi
Yarıyıl Çalışmaları Katkı Oranı
1. Ara Sınav 40
1. Ödev 10
2. Ödev 10
3. Ödev 15
4. Ödev 15
1. Kısa Sınav 5
2. Kısa Sınav 5
Toplam 100
1. Final 40
1. Yıl İçinin Başarıya 60
Toplam 100
AKTS - İş Yükü Etkinlik Sayı Süre (Saat) Toplam İş Yükü (Saat)
Ders Süresi (Sınav haftası dahildir: 16x toplam ders saati) 16 4 64
Sınıf Dışı Ders Çalışma Süresi(Ön çalışma, pekiştirme) 16 3 48
Ara Sınav 1 2 2
Ödev 4 4 16
Final 1 3 3
Kısa Sınav 2 1 2
Toplam İş Yükü 135
Toplam İş Yükü / 25 (Saat) 5,4
dersAKTSKredisi 5