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 |
KNOWLEDGE | |||||||
---|---|---|---|---|---|---|---|
Theoretical | |||||||
Program Yeterlilikleri/Çıktıları | Katkı Düzeyi | ||||||
0 | 1 | 2 | 3 | 4 | 5 | ||
1 |
Explains the fundamental engineering concepts of computer science and relates them to the groundwork of computer science.
|
4 |
KNOWLEDGE | |||||||
---|---|---|---|---|---|---|---|
Factual | |||||||
Program Yeterlilikleri/Çıktıları | Katkı Düzeyi | ||||||
0 | 1 | 2 | 3 | 4 | 5 | ||
1 |
Uses theoretical and practical knowledge coming from mathematics, probability, statistics and various other branches of life sciences, to find solutions to engineering problems.
|
4 |
SKILLS | |||||||
---|---|---|---|---|---|---|---|
Cognitive | |||||||
Program Yeterlilikleri/Çıktıları | Katkı Düzeyi | ||||||
0 | 1 | 2 | 3 | 4 | 5 | ||
1 |
Determines the components and the underlying process of a system and designs an appropriate computational model under reasonable constraints.
|
5 | |||||
2 |
Designs a computer-aided conceptual model with modern techniques.
|
5 |
SKILLS | |||||||
---|---|---|---|---|---|---|---|
Practical | |||||||
Program Yeterlilikleri/Çıktıları | Katkı Düzeyi | ||||||
0 | 1 | 2 | 3 | 4 | 5 | ||
1 |
Determines, detects and analyzes the areas of computer science applications and develops appropriate solutions.
|
4 | |||||
2 |
Identifies, models and solves computer engineering problems by applying appropriate analytical methods.
|
5 | |||||
3 |
Determines and uses the necessary information technologies in an efficient way for engineering applications.
|
4 |
OCCUPATIONAL | |||||||
---|---|---|---|---|---|---|---|
Autonomy & Responsibility | |||||||
Program Yeterlilikleri/Çıktıları | Katkı Düzeyi | ||||||
0 | 1 | 2 | 3 | 4 | 5 | ||
1 |
Possess the responsibility and ability to design and conduct experiments for engineering problems by collecting, analyzing and interpreting data.
|
5 | |||||
2 |
Possess the ability to conduct effective individual study.
|
4 | |||||
3 |
Takes responsibility as a team work and contributes in an effective way.
|
5 |
OCCUPATIONAL | |||||||
---|---|---|---|---|---|---|---|
Learning to Learn | |||||||
Program Yeterlilikleri/Çıktıları | Katkı Düzeyi | ||||||
0 | 1 | 2 | 3 | 4 | 5 | ||
1 |
Monitors the developments in the field of information technologies by means of internet and related journals and possess the required knowledge for the management, control, development and security of information technologies.
|
5 | |||||
2 |
Develops positive attitude towards lifelong learning.
|
4 |
OCCUPATIONAL | |||||||
---|---|---|---|---|---|---|---|
Communication & Social | |||||||
Program Yeterlilikleri/Çıktıları | Katkı Düzeyi | ||||||
0 | 1 | 2 | 3 | 4 | 5 | ||
1 |
Communicates effectively by oral and/or written form and uses at least one foreign language.
|
5 | |||||
2 |
Possess sufficient consciousness about the issues of project management, practical applications and also environmental protection, worker's health and security.
|
5 |
OCCUPATIONAL | |||||||
---|---|---|---|---|---|---|---|
Occupational and/or Vocational | |||||||
Program Yeterlilikleri/Çıktıları | Katkı Düzeyi | ||||||
0 | 1 | 2 | 3 | 4 | 5 | ||
1 |
Possess professional and ethical responsibility and willingness to share it.
|
4 | |||||
2 |
Possess sufficient consciousness about the universality of engineering solutions and applications and be well aware of the importance of innovation.
|
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 |