Dersin Adı Ders Kodu Yarıyılı Teori
(Saat/Hafta)
Uygulama
(Saat/Hafta)
Akts
NESNEYE YÖNELİK PROGRAMLAMA BLM211 3 3 2 6,0
Önkoşul(lar)-var ise
Dersin Dili
Dersin Türü Lisans
Dersin sorumlusu(ları) Dr. Öğr. Üyesi ULAŞ VURAL
Dersin Amacı Bu dersin amacı; modern C++ standartlarına uygun şekilde öğrencilerin nesneye yönelik bir programlama dilini öğrenmesi ve nesneye yönelik programlama kavranlarına hakim olarak yazılım geliştirme bilgi ve kabiliyetlerinin arttırılması amaçlanmaktadır.
Dersin Verilme Şekli Örgün
Sıra No Dersin Öğrenme Çıktıları Öğretim Yöntemleri Değerlendirme Yöntemleri Program Yeterliliklerini Karşılama Düzeyi(1)(2)(3)(4)(5)
1 To design software solutions using object-oriented programming principles for a given problem
1 Verilen bir problemin çözümü için nesneye yönelik programlama prensiplerini kullanarak yazılım tasarlamak Anlatım, Laboratuar Proje Ödevi 1, 2, 3, 4, 8, 9
2 C++ dili ile nesneye yönelik programlama dili ile çözümleri gerçeklemek Anlatım Proje Ödevi 1, 2, 3, 4, 5, 8, 9
2 To implement solutions using the object-oriented programming language C++
3 To utilize the mechanisms of the C++ language in the most efficient and reliable manner
3 C++ dilinin mekanizmalarını en verimli ve güvenilir şekilde kullanabilmek Laboratuar Proje Ödevi 1, 2, 3, 4, 5, 8, 9, 14
4 Yapısal Programlama ile Nesneye Yönelik Programalama kavramlarını ayırt edebilmek Anlatım Sınav, Proje Ödevi 1, 2, 3, 4, 5, 6, 8, 9, 10, 14
4 To distinguish between the concepts of Structured Programming and Object-Oriented Programming
5 To have a good understanding of the similarities and differences between modern C++ standards and other object-oriented languages
5 Diğer nesneye yönelik dillerle modern C++ standarları arasındaki fark ve benzerliklere hakim olmak Anlatım Sınav, Performans Ödevi 1, 4, 5, 6, 7, 8, 9, 10, 14
6
6
7
7
8
8
9
9
10
10
11
11
12
12
13
13
14
14
15
15
Dersin İçeriği
Bu ders kapsamında; C++ Nesneye Yönelik Programlama Diline Giriş, Değişkenler, Kontrol Yapıları, Fonksiyonlar, Sınıflar ve Veri Soyutlama, C++ Standard Kütüphaneler ve Boost Kütüphanesi, Karakter Dizileri Akış İşlemleri ve Olağanüstü Durumların Yönetilmesi, Göstericiler ve Akıllı Göstericiler, Operatörlerin Aşırı Yüklenmesi, Kalıtım, Sanal Fonksiyonlar, Çok-Biçimlilik, Genelleştirilmiş Kod Yazımı: Şablonlar ve modern mekanizmalar, Fonksiyon Göstericileri, Fonksiyon Nesneleri ve Lambda İfadeler Diğer Nesneye Yönelik Programlama Dilleri (Java ve C#) ile Benzerlikler ve Farklılıklar konuları anlatılacaktır.
Kaynaklar
Deitel, H. M., & Deitel, P. J. (2017). C++ How to Program (10. Sürüm). Pearson.
Haftalara Göre İşlenecek Konular
Haftalar Konular Dokümanlar
1 . Hafta Introduction to C++ Object-Oriented Programming Language
1 . Hafta C++ Nesneye Yönelik Programlama Diline Giriş
2 . Hafta Genel Tekrar: Değişkenler, Kontrol Yapıları, Fonksiyonlar
2 . Hafta Review: Variables, Control Structures, Functions
3 . Hafta Classes and Data Abstraction
3 . Hafta Sınıflar ve Veri Soyutlama
4 . Hafta C++ Standard Kütüphaneler ve Boost Kütüphanesi
4 . Hafta C++ Standard Libraries and Boost Library
5 . Hafta Character Strings
5 . Hafta Karakter Dizileri
6 . Hafta Akış İşlemleri ve Olağanüstü Durumların Yönetilmesi
6 . Hafta Stream Operations and Exception Handling
7 . Hafta Pointers and Smart Pointers
7 . Hafta Göstericiler ve Akıllı Göstericiler
8 . Hafta Ara Sınav
8 . Hafta Midterm Exam
9 . Hafta Overloading Operators
9 . Hafta Operatörlerin Aşırı Yüklenmesi
10 . Hafta Kalıtım
10 . Hafta Inheritance
11 . Hafta Virtual Functions
11 . Hafta Sanal Fonksiyonlar
12 . Hafta Çok-Biçimlilik
12 . Hafta Polymorphism
13 . Hafta Generic Coding: Templates and Modern Mechanisms
13 . Hafta Genelleştirilmiş Kod Yazımı: Şablonlar ve modern mekanizmalar
14 . Hafta Fonksiyon Göstericileri, Fonksiyon Nesneleri ve Lambda İfadeler
14 . Hafta Function Pointers, Function Objects, and Lambda Expressions
15 . Hafta Similarities and Differences with Other Object-Oriented Programming Languages (Java and C#)
15 . Hafta Diğer Nesneye Yönelik Programlama Dilleri (Java ve C#) ile Benzerlikler ve Farklılıklar
Değerlendirme Sistemi
Yarıyıl içi çalışmaları Sayısı Katkı Payı (%)
Ara Sınav 1 30
Ödevler 0 0
Dönem Sonu Sınavı 0 0
Proje Ödevi 0 0
Sınav 0 0
Performans Ödevi 0 0
0 0
0 0
0 0
1 50
0 0
0 0
0 0
14 20
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
Toplam 100
Yarıyıl İçi Çalışmalarının Başarı Notuna Katkısı 2 30
Yarıyıl Sonu Çalışmalarının Başarı Notuna Katkısı 1 0
Toplam 100
AKTS (Öğrenci İş Yükü) Tablosu
Etkinlikler Sayısı Süresi Toplam İş Yükü
Ders Süresi 1 3 3
Ara Sınav 0 0 0
Dönem Sonu Sınavı 0 0 0
Ödevler 0 0 0
Ara Sınava Hazırlık 0 0 0
Dönem Sonu Sınavına Hazırlık 0 0 0
0 0 0
0 0 0
0 0 0
1 3 3
0 0 0
0 0 0
14 3 42
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
14 5 70
7 2 14
7 2 14
14 2 28
0 0 0
Toplam İş Yükü 174
Dersin Öğrenme Çıktılarının Program Yeterlilikleri İle İlişkilendirilmesi
Sıra No Program Yeterlilikleri Katkı Düzeyi*
1 2 3 4 5
1 A computer engineer possesses fundamental applied and conceptual knowledge in the field of computer engineering. X
2 They utilize mathematics, natural sciences, and theoretical and applied knowledge in computer engineering to solve engineering problems. X
3 They identify current engineering problems in various application domains and provide feasible recommendations for their solution using computer systems. X
4 They perform analyses of software or hardware-based systems, components, and processes required for problem-solving and create optimal designs that meet specified requirements and constraints. X
5 They select and implement modern methods and tools necessary for engineering applications. X
6 Problemlerin çözümü için gerekli olan veriyi toplar ve işler, deneyler tasarlar, deneyleri gerçekleştirir ve sonuçlarını yorumlar. X
7 Mühendislik projelerinin yönetim süreçlerini bilir, proje için en uygun yönetim araçlarını ve proje yaşam döngüsünü seçer ve uygular. X
8 They code, test, operate, and maintain computer-based systems. X
9 They work effectively in interdisciplinary research and software development teams, both within and outside their own field. X
10 They keep up with current developments in computer engineering and related areas with a consciousness of the necessity of continuous professional development. X
11 They utilize Turkish and English fluently and effectively for tracking scientific and technical resources, presenting projects, and writing academic publications. X
12 They are aware of the legal consequences of information technology applications and the individual, corporate, social, and universal impacts. X
13 Geliştirdiği yazılım ve sistemlerde mesleki ve etik sorumluk bilinciyle hareket eder. X
14 They design and develop computer systems that will facilitate human life or increase comfort with analytical thinking skills. X
15 They possess awareness as an individual who is informed about current and historical events and can interpret them rationally and draw conclusions. X