TR EN

NESNE YÖNELİMLİ PROGRAMLAMA DERS TANITIM VE UYGULAMA BİLGİLERİ

Kodu Dersin Adı Yarıyıl Süresi(T+U) Kredisi AKTS Kredisi
BIL201 NESNE YÖNELİMLİ PROGRAMLAMA 3 5 4 8

DERS BİLGİLERİ

Dersin Öğretim Dili : Türkçe
Dersin Düzeyi LİSANS, TYY: + 6.Düzey, EQF-LLL: 6.Düzey, QF-EHEA: 1.Düzey
Dersin Türü Zorunlu
Dersin Veriliş Şekli -
Dersin Koordinatörü Dr.Öğr.Üyesi OĞUZHAN ÖZTAŞ
Dersi Veren Öğretim Üyesi/Öğretim Görevlisi Öğr.Gör. AHMET VEDAT TOKMAK-Öğr.Gör. HÜSEYİN GÖKAL-Dr.Öğr.Üyesi NİHAL ALTUNTAŞ-Dr.Öğr.Üyesi ZEINAB HASSANZADEH
Ders Ön Koşulu Yok

AMAÇ VE İÇERİK

Amaç: Bu ders ile öğrencinin, nesneye yönelik programlama kavramlarını öğrenmesi ve Python programlama dili ile nesne yönelimli programlar öğrenmesi ve geliştirebilmeleri amaçlanmaktadır. Bu dersi tamamladıktan sonra öğrencinin nesne yönelimli programlamaya ilişkin orijinal kodları ilgili uygulamalar için incelemesi ve bunlarda değişiklikler yapması beklenir.
İçerik: Nesneler ve sınıflar, oluşturucu, statik değişken, sabitler, metodlar, görünürlük değiştiricileri, geçici nesneler, yöntemlerin nesnelerle çağrılması, değişmezlik, değişken görünürlüğü, sınıf soyutlaması ve paketleme, üst ve alt sınıf kavramları, kalıtım, çoklu anlam, çiğneme, aşırıyükleme, soyut sınıf, nesne yönelimli tasarım.

DERSİN ÖĞRENME ÇIKTILARI (Öğrenciler, bu dersi başarı ile tamamladıklarında aşağıda belirtilen bilgi, beceri ve/veya yetkinlikleri gösterirler.)

Temel Programlama Becerileri: OOP Kavramlarını Anlamak, Sınıflar ve Nesneler Oluşturmak, Sistemleri Tasarlamak ve Uygulamak, Kalıtım ve Polimorfizmi Kullanmak, Erişim Değiştiricileriyle Çalışmak.
Gelişmiş Teknikler: Verileri Kapsülleme, Yöntemleri Aşırı Yükleme ve Geçersiz Kılma, Yapıcılar/Yıkıcılar ile Belleği Yönetme, Soyut Sınıflar ve Arayüzlerle Çalışma, İstisnaları Ele Alma.
Desenlerin ve En İyi Uygulamaların Tasarlanması: Tasarım Desenlerinin Uygulanması, SOLID Prensiplerinin İzlenmesi, Bağımlılık Enjeksiyonunun Uygulanması.
Uzmanlık Alanları: Performans için Kodun Optimize Edilmesi, Kütüphaneler ve Çerçevelerle Çalışma ve Nesne Kalıcılığının Ele Alınması.

HAFTALIK DERS KONULARI VE ÖNGÖRÜLEN HAZIRLIK ÇALIŞMALARI

Hafta Ön Hazırlık Konular Yöntem
1 -Referansların ilgili bölümü, ek kaynaklar ve ders notları. Python Programlama Dili Temelleri: Python'a Giriş, Python programlama dili neden bu kadar popüler? Python paketleri, Anaconda, Python editörleri, Kaynaklar, Python Kurulumu, Python ile Nesne Yönelimli Programlama Giriş; Lecture presentation, Discussion(Question-Answer)
2 -Referansların ilgili bölümü, ek kaynaklar ve ders notları. Python Kullanmaya Başlangıç : Python IDLE , İlk Python Programı, Python shell, Python'ı Konsoldan Çalıştırma, Komut dosyası (script) modu; Ders anlatımı, Tartışma (Soru-Cevap), Laboratuvar Uygulamaları.
3 -Referansların ilgili bölümü, ek kaynaklar ve ders notları. Temel Python programlama: Temel Python programı, Değişkenler (Sayılar, Dizeler (Strings), Dize Girişi (String Input), Yerleşik fonksiyonlar (Built-in functions), Örnekler; Ders anlatımı, Tartışma (Soru-Cevap), Laboratuvar Uygulamaları.
4 -Referansların ilgili bölümü, ek kaynaklar ve ders notları. Temel Python programlama: Python standart kütüphanesi, Python kütüphanelerinin kullanımı, Paketler ve modüller, Python'da çizim, If ... else, Diziler, for döngüleri, İç içe for döngüleri, While döngüleri, Örnekler; Ders anlatımı, Tartışma (Soru-Cevap), Laboratuvar Uygulamaları.
5 -Referansların ilgili bölümü, ek kaynaklar ve ders notları. Veri tipleri: Python Veri Türleri, Sabitler, Değişkenler; Ders anlatımı, Tartışma (Soru-Cevap), Laboratuvar Uygulamaları.
6 -Referansların ilgili bölümü, ek kaynaklar ve ders notları. Dizi Veri Türleri (Sequence): Strings, Liste, Tuple-Demet Koleksiyonu, Sözlük (dictionary), Set Koleksiyonu; Ders anlatımı, Tartışma (Soru-Cevap), Laboratuvar Uygulamaları.
7 -Referansların ilgili bölümü, ek kaynaklar ve ders notları. Print() fonksiyonu: Satır Başı (\n), format() Metodu ile Biçimlendirme, Biçimlendirme Karakterleri; Ders anlatımı, Tartışma (Soru-Cevap), Laboratuvar Uygulamaları.
8 - ARA SINAV -
9 -Referansların ilgili bölümü, ek kaynaklar ve ders notları. Operatörler : Aritmetik Operatörler, Matematiksel Fonksiyonlar ve math Modülü, Karşılaştırma Operatörleri, Mantıksal - Bool Operatörleri , Değer Atama Operatörleri Aitlik operatörleri , Kimlik Operatörleri ; Ders anlatımı, Tartışma (Soru-Cevap), Laboratuvar Uygulamaları.
10 -Referansların ilgili bölümü, ek kaynaklar ve ders notları. Döngüler (Loops) :While döngüsü, For döngüsü, Range Fonksiyonu, pass, break, Continue; Ders anlatımı, Tartışma (Soru-Cevap), Laboratuvar Uygulamaları.
11 -Referansların ilgili bölümü, ek kaynaklar ve ders notları. Fonksiyonlar: Gömülü, Fonksiyonlar, Lambda Fonksiyonları, Özyinelemeli (Recursive) Fonksiyonlar, İç İçe (Nested) Fonksiyonlar, Üreteçler (Generators); Ders anlatımı, Tartışma (Soru-Cevap), Laboratuvar Uygulamaları.
12 Referansların ilgili bölümü, ek kaynaklar ve ders notları. Modüller: Hazır Modüller, Modüllerin İçe Aktarılması, Üçüncü Şahıs Modülleri, Modüllerin Özel Nitelikleri; Ders anlatımı, Tartışma (Soru-Cevap), Laboratuvar Uygulamaları.
13 Referansların ilgili bölümü, ek kaynaklar ve ders notları. Nesne Tabanlı Programlama (OOP): Temel Özellikler, Class (Sınıf), Nesne Nitelikleri (Instance attributes), Sınıf ve Nesne Değişkenleri, Nesne (Object) ve Class Metotları; Ders anlatımı, Tartışma (Soru-Cevap), Laboratuvar Uygulamaları.
14 Referansların ilgili bölümü, ek kaynaklar ve ders notları. Nesne Tabanlı Programlama (OOP): Alternatif İnşacılar, Nesneler, Sınıf Üyeleri; Ders anlatımı, Tartışma (Soru-Cevap), Laboratuvar Uygulamaları.
15 Referansların ilgili bölümü, ek kaynaklar ve ders notları. Temel Dosya İşlemleri: Dosya Oluşturmak, Dosyaya Yazmak, Dosya Okumak, Dosyaları Otomatik Kapatmak, Dosyalarda Değişiklik Yapmak, Dosyaya Erişme Kipleri (File Access Modes); Ders anlatımı, Tartışma (Soru-Cevap), Laboratuvar Uygulamaları.
16 - FİNAL -
17 - FİNAL -

KAYNAKLAR

Nesne Tabanlı Programlama (PYTHON) , Prof. Dr. Cahit Karakuş, Balbiti, Haziran 2023.
Dr. Öğr. Üyesi Zeinab HASSANZADEH, Ders Notları ve Sunumlar (Türkçe), 2024-2025 Güz Dönemi.
Yardımcı Kaynak: - Python 3 Object-oriented Programming, Dusty Phillips, Second Edition, Published by Packt Publishing Ltd, ISBN: 978-1-78439-878-1.

ÖLÇME VE DEĞERLENDİRME

Yarıyıl İçi Yapılan Çalışmaların Ölçme ve Değerlendirmesi Etkinlik Sayısı Katkı Yüzdesi Açıklama
(0) Etkisiz (1) En Düşük (2) Düşük (3) Orta (4) İyi (5) Çok İyi
0 1 2 3 4 5

DERSİN PROGRAM ÖĞRENME ÇIKTILARINA KATKISI

BİLGİ
Kuramsal
Program Yeterlilikleri/Çıktıları Katkı Düzeyi
0 1 2 3 4 5
1
Bilgisayar Bilimi ile ilgili temel mühendislik kavramlarını açıklar ve Bilgisayar Biliminin teorik altyapısı ile ilişkilendirir.
4
BİLGİ
Olgusal
Program Yeterlilikleri/Çıktıları Katkı Düzeyi
0 1 2 3 4 5
1
Matematik, fen bilimleri, olasılık ve istatistik gibi kendi dalıyla ilgili mühendislik konularında sahip olduğu kuramsal ve uygulamalı bilgileri mühendislik çözümleri için kullanır.
4
BECERİLER
Bilişsel
Program Yeterlilikleri/Çıktıları Katkı Düzeyi
0 1 2 3 4 5
1
Bir sistemin bileşenlerini ya da sistemdeki süreçleri analiz eder ve gereksinimler doğrultusunda gerçekçi kısıtlar altında bir bilgisayar modeli tasarlar.
5
2
Belirli bir kavramsal modeli bilgisayar ortamında modern yöntemlerle tasarlar.
5
BECERİLER
Uygulamalı
Program Yeterlilikleri/Çıktıları Katkı Düzeyi
0 1 2 3 4 5
1
Bilgisayar Mühendisliği alanında var olan uygulama alanlarını analiz eder, değerlendirir ve bunların çözümüne yönelik uygulama geliştirir.
4
2
Bilgisayar Mühendisliği alanında yer alan konulara uygun analitik yöntemler ve modelleme tekniklerini seçer ve uygular.
5
3
Mühendislik uygulamaları için gerekli olan modern teknik ve araçları seçer ve bilişim teknolojilerini etkin olarak kullanır.
4
YETKİNLİKLER
Bağımsız Çalışabilme ve Sorumluluk Alabilme Yetkinliği
Program Yeterlilikleri/Çıktıları Katkı Düzeyi
0 1 2 3 4 5
1
Deney tasarlama, deney yapma, veri toplama, sonuçları analiz etme ve değerlendirme bilincine ve sorumluluğuna sahiptir.
5
2
Bireysel olarak etkin çalışmalar yürütebilir.
4
3
Bir ekip içerisinde etkin çalışabilme becerisi gösterir ve sorumluluk alır.
5
YETKİNLİKLER
Öğrenme Yetkinliği
Program Yeterlilikleri/Çıktıları Katkı Düzeyi
0 1 2 3 4 5
1
Bilişim Teknolojilerinin yönetim, denetim, gelişim ve güvenliği/güvenilirliği hakkında bilgi sahibidir ve bilim ve teknolojideki gelişmeleri internet ve dergi aracılığı ile takip edebilir ve kendini sürekli yenileyebilir.
5
2
Yaşam boyu öğrenmenin gerekliliği bilincine sahiptir.
4
YETKİNLİKLER
İletişim ve Sosyal Yetkinlik
Program Yeterlilikleri/Çıktıları Katkı Düzeyi
0 1 2 3 4 5
1
Bir problemi sözlü ya da yazılı ifade edebilir ve etkin iletişim kurabilir ve en az bir yabancı dil bilgisine sahiptir.
5
2
Proje yönetimi, işyeri uygulamaları, çalışanların sağlığı, çevre ve iş güvenliği konularında bilinçlidir.
5
YETKİNLİKLER
Alana Özgü Yetkinlik
Program Yeterlilikleri/Çıktıları Katkı Düzeyi
0 1 2 3 4 5
1
Mesleki ve etik sorumluluk bilincine ve toplumda bu sorumluluğu yayma bilincine sahiptir.
4
2
Mühendislik çözümlerinin ve uygulamalarının evrensel ve toplumsal boyutlardaki etkilerinin bilincindedir, girişimcilik ve yenilikçilik konularının öneminin farkındadır.
4

DERSİN İŞ YÜKÜ VE AKTS KREDİSİ

Öğrenme-Öğretme Etkinlikleri İş Yükü
Öğrenme-Öğretme Etkinlikleri Etkinlik(hafta sayısı) Süresi(saat sayısı) Toplam İş Yükü
Ders 14 5 70
Derse Ön Hazırlık ve Ders Sonrası Pekiştirme 3 1 3
Arazi Çalışması 3 4 12
Grup Çalışması / Ödevi 1 3 3
Laboratuvar 3 5 15
Okuma 1 3 3
Ödev 6 2 12
Proje Hazırlama 3 4 12
Seminer 0 0 0
Staj 0 0 0
Teknik Gezi 1 1 1
Web Tab. Öğrenme 0 0 0
Uygulama 3 4 12
Yerinde Uygulama 1 1 1
Mesleki Faaliyet 1 1 1
Sosyal Faaliyet 1 5 5
Tez Hazırlama 5 10 50
Alan Çalışması 0 0 0
Rapor Yazma 2 2 4
Final Sınavı 1 2 2
Final Sınavı Hazırlığı 0 0 0
Ara Sınav 1 1 1
Ara Sınav Hazırlığı 0 0 0
Kısa Sınav 1 1 1
Kısa Sınav Hazırlığı 0 0 0
TOPLAM 51 0 208
Genel Toplam 208
Toplam İş Yükü / 25.5 8,2
Dersin AKTS(ECTS) Kredisi 8,0