Yazılım Mühendisliği
Lisans TYYÇ: 6. Düzey QF-EHEA: 1. Düzey EQF-LLL: 6. Düzey

Ders Genel Tanıtım Bilgileri

Ders Kodu: YAZ103
Ders İsmi: Temel Programlama 1 (Python)
Ders Yarıyılı: Güz
Ders Kredileri:
AKTS
6
Öğretim Dili: Turkish
Ders Koşulu:
Ders İş Deneyimini Gerektiriyor mu?: Hayır
Dersin Türü: Zorunlu
Dersin Seviyesi:
Lisans TYYÇ:6. Düzey QF-EHEA:1. Düzey EQF-LLL:6. Düzey
Dersin Veriliş Şekli: Yüz yüze
Dersin Koordinatörü: Araş. Gör. ZEHRA TÜFEKÇİ
Dersi Veren(ler): Öğr. Gör. STAFF 1
Dersin Yardımcıları:

Dersin Amaç ve İçeriği

Dersin Amacı: Bu ders, Python programlama dili kullanılarak, bilgisayar programcılığında çok az ya da hiç deneyime sahip olmayan öğrencileri bilişimsel düşünmeye ve bunun yanı sıra yazılım geliştirmeye hazırlamayı hedefleyen bir derstir. Derste Python dilinin oluşturan öğelerin yanı sıra programlama mantığını ve yazılım geliştirmenin temelleri de öğretilecektir. Dersler interaktif bir şekilde, sınıf içi alıştırmalarla desteklenerek ve öğretim elemanlarının aktif destekleriyle işlenecektir. Dersin son haftalarına doğru, bilgisayar programlama ve yazılım geliştirmeye dair ileri kavramlar da tanıtılacaktır. Bu derste ana hedef, öğrencide bir yazılım mühendisi zihniyeti ve düşünce şekli oluşturarak, bölüm müfredatında yer alan üst düzey derslere hazırlamaktır.
Dersin İçeriği: Python dilini oluşturan öğelerin (değişkenler, deyimler, fonksiyonlar, şartlı ifadeler, döngüler, özyineleme, istisnalar, vs.) yanı sıra programlama mantığı ve yazılım geliştirmenin temelleri de aktarılır. Dersin verilişi interaktif sınıf içi alıştırmalar, haftalık ödevler, dersin öğretim elemanlarından sağlanan yakın desteklerle şekillendirilir. Dönemin son haftalarına doğru, bilgisayar programlama ve yazılım geliştirmeye dair ileri kavramlar da tanıtılır. Dersle ilgili her türlü iletişim ve etkileşimler “Piazza” ortamı üzerinden gerçekleştirilir.

Öğrenme Kazanımları

Bu dersi başarıyla tamamlayabilen öğrenciler;
1) Bilişimsel düşünme yeteneği.
2) Bilişimsel problemleri anlamaya ve bilgisayar yardımıyla çözmeye yönelik temel beceriler.
3) Python programlama diliyle programlama teknikleri.

Ders Akış Planı

Hafta Konu Ön Hazırlık
1) Dersin tanıtımı, öğretim üyesiyle tanışma, temel bilgisayar kavramları (Merkezi işlem birimi, hafıza, yedekleme, işletim sistemi, algoritma, yazılım, programlama, ). Bölüm 1
2) Programlamanın temelleri, değişkenler, ifadeler, deyimler. Bölüm 2, 3
3) Fonksiyonlar. Vaka çalışması: Turtle World ile basit arayüz tasarımları. Bölüm 3
4) Vaka çalışmasına devam (Turtle World ile basit arayüz tasarımları). Bölüm 4
5) Şartlı ifadeler, özyineleme. Bölüm 5
6) Bereketli fonksiyonlar Bölüm 6
7) Tekrarlamalar, döngüler. Bölüm 7
8) Ara sınav
9) Sicimler. Vaka çalışması: kelime oyunu. Bölüm 8,9
10) Listeler, Sözlükler, Tanımlama Grupları. Bölüm 10, 11
11) Listeler, Sözlükler, Tanımlama Grupları (devam). Bölüm 11, 12
12) Vaka çalışması: doğru veri yapısı seçimi. Bölüm 13
13) Veritabanı yapıları, istisnalar. Bölüm 13
14) Sınıflar, nesneler, metotlar. Bölüm 15, 16
15) Sınıflar, kalıtım, çok-formluluk. Bölüm 17, 18

Kaynaklar

Ders Notları / Kitaplar: Think Python, 2nd Edition, How to Think Like a Computer Scientist, Allen Downey, Green Tea Press (2015).
https://greenteapress.com/wp/think-python-2e/
Diğer Kaynaklar: Her Yönüyle Python, 5. Baskı, Fırat Özgül, Kodlab, 2017

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

Course Learning Outcomes

1

2

3

Program Kazanımları
1) Matematik, fen bilimleri ve ilgili mühendislik disiplinine özgü konularda yeterli bilgi birikimine; bu alanlardaki kuramsal ve uygulamalı bilgileri, mühendislik problemlerinde kullanabilme becerisine sahiptir. 1 1 1
2) Bir sistemi, süreci veya ürünü ekonomik, çevre, sosyo-politik, etik, sağlık, güvenlik, üretilebilirlik ve sürdürülebilirlik ile ilişkili gerçekçi koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama becerisine sahiptir. 2 3 2
3) Mühendislik problemlerini tanımlama, formüle etme ve çözme; çözüm için gerekli yöntemi seçme ve uygulama becerisine sahiptir. 2 3 1
4) Mühendislik uygulamalarında karşılaşılan problemlerin analizi ve çözümü için gerekli olan modern teknikleri geliştirme, seçme ve kullanma; bilişim teknolojilerini etkin bir şekilde kullanma becerisine sahiptir. 3 3 2
5) Mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi için deney tasarlama, deney yapma, veri toplama, sonuçları analiz etme ve yorumlama becerisine sahiptir. 1 2 1
6) Çok disiplinli takımlarda etkin biçimde çalışabilme becerisine sahiptir. 1
7) Sözlü ve yazılı etkin iletişim kurma becerisi ile etkin rapor yazma ve yazılı raporları anlama, etkin sunum yapabilme becerisine sahiptir. 1 1
8) Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk bilincine sahiptir; mühendislik uygulamalarında kullanılan standartlar hakkında bilgiye sahiptir. 1 2 3
9) Bir yabancı dili Avrupa Dil Portföyü kriteri açısından en az B1 düzeyinde kullanabilme becerisine sahiptir.
10) Yaşam boyu öğrenmenin gerekliliği bilincine sahiptir; bilgiye erişebilme, bilim ve teknolojideki gelişmeleri izleme ve kendini sürekli yenileme becerisine sahiptir. 2 3 3
11) Bilgisayar yazılımı ile birlikte bilişim ve iletişim teknolojilerini Avrupa Bilgisayar Kullanma Lisansı İleri düzeyinde kullanabilme becerisine sahiptir. 3 3 3
12) Proje yönetimi ve risk yönetimi uygulamaları hakkında bilgi; girişimcilik, yenilikçilik hakkında farkındalık; sürdürülebilir kalkınma hakkında bilgiye sahiptir. 1 3 2
13) Mühendislik uygulamalarının evrensel ölçekte çevre, sağlık ve güvenlik üzerindeki etkileri ve hukuksal sonuçları hakkında bilgi ve farkındalığa sahiptir.
14) Yazılım alternatiflerini irdeleyerek bilgisayar tabanlı sistemlerin modellenmesi ve tasarımında, algoritma prensiplerini, matematiksel temelleri ve bilgisayar bilimleri teorisini uygulama becerisine sahiptir. 3 3 3
15) Türevsel denklemler, integral hesapları, doğrusal cebir, mantık ve ayrık matematik içerecek şekilde ileri matematik eğitimi ile birlikte yazılım mühendisliğinde veri yapıları ve algoritmalar, programlama dilleri, işletim sistemleri, bilgisayar güvenliği, bilgisayar teorisi, ağ programlama ve makine öğrenmesi alanlarını kapsayan mühendislik eğitimine sahiptir. 2 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ı Payı
1) Matematik, fen bilimleri ve ilgili mühendislik disiplinine özgü konularda yeterli bilgi birikimine; bu alanlardaki kuramsal ve uygulamalı bilgileri, mühendislik problemlerinde kullanabilme becerisine sahiptir. 1
2) Bir sistemi, süreci veya ürünü ekonomik, çevre, sosyo-politik, etik, sağlık, güvenlik, üretilebilirlik ve sürdürülebilirlik ile ilişkili gerçekçi koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama becerisine sahiptir. 2
3) Mühendislik problemlerini tanımlama, formüle etme ve çözme; çözüm için gerekli yöntemi seçme ve uygulama becerisine sahiptir. 2
4) Mühendislik uygulamalarında karşılaşılan problemlerin analizi ve çözümü için gerekli olan modern teknikleri geliştirme, seçme ve kullanma; bilişim teknolojilerini etkin bir şekilde kullanma becerisine sahiptir. 3
5) Mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi için deney tasarlama, deney yapma, veri toplama, sonuçları analiz etme ve yorumlama becerisine sahiptir. 1
6) Çok disiplinli takımlarda etkin biçimde çalışabilme becerisine sahiptir.
7) Sözlü ve yazılı etkin iletişim kurma becerisi ile etkin rapor yazma ve yazılı raporları anlama, etkin sunum yapabilme becerisine sahiptir. 1
8) Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk bilincine sahiptir; mühendislik uygulamalarında kullanılan standartlar hakkında bilgiye sahiptir. 2
9) Bir yabancı dili Avrupa Dil Portföyü kriteri açısından en az B1 düzeyinde kullanabilme becerisine sahiptir.
10) Yaşam boyu öğrenmenin gerekliliği bilincine sahiptir; bilgiye erişebilme, bilim ve teknolojideki gelişmeleri izleme ve kendini sürekli yenileme becerisine sahiptir. 2
11) Bilgisayar yazılımı ile birlikte bilişim ve iletişim teknolojilerini Avrupa Bilgisayar Kullanma Lisansı İleri düzeyinde kullanabilme becerisine sahiptir. 3
12) Proje yönetimi ve risk yönetimi uygulamaları hakkında bilgi; girişimcilik, yenilikçilik hakkında farkındalık; sürdürülebilir kalkınma hakkında bilgiye sahiptir. 2
13) Mühendislik uygulamalarının evrensel ölçekte çevre, sağlık ve güvenlik üzerindeki etkileri ve hukuksal sonuçları hakkında bilgi ve farkındalığa sahiptir.
14) Yazılım alternatiflerini irdeleyerek bilgisayar tabanlı sistemlerin modellenmesi ve tasarımında, algoritma prensiplerini, matematiksel temelleri ve bilgisayar bilimleri teorisini uygulama becerisine sahiptir. 3
15) Türevsel denklemler, integral hesapları, doğrusal cebir, mantık ve ayrık matematik içerecek şekilde ileri matematik eğitimi ile birlikte yazılım mühendisliğinde veri yapıları ve algoritmalar, programlama dilleri, işletim sistemleri, bilgisayar güvenliği, bilgisayar teorisi, ağ programlama ve makine öğrenmesi alanlarını kapsayan mühendislik eğitimine sahiptir. 1

Ölçme ve Değerlendirme

Yarıyıl İçi Çalışmaları Aktivite Sayısı Katkı Payı
Laboratuvar 9 % 20
Ödev 5 % 15
Ara Sınavlar 1 % 25
Final 1 % 40
Toplam % 100
YARIYIL İÇİ ÇALIŞMALARININ BAŞARI NOTU KATKISI % 60
YARIYIL SONU ÇALIŞMALARININ BAŞARI NOTUNA KATKISI % 40
Toplam % 100

İş Yükü ve AKTS Kredisi Hesaplaması

Aktiviteler Aktivite Sayısı İş Yükü
Ders Saati 16 48
Laboratuvar 16 32
Sınıf Dışı Ders Çalışması 16 48
Ödevler 5 13
Ara Sınavlar 1 2
Final 1 2
Toplam İş Yükü 145