| İLERİ NESNEYE YÖNELİK PROGRAMLAMA |
BSM506 |
1 |
3 |
0 |
7,0 |
| Önkoşul(lar)-var ise |
|
| Dersin Dili |
|
| Dersin Türü |
Yüksek Lisans - Tezli |
| 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 |
Sınav |
1 |
| 2 |
C++ dili ile nesneye yönelik programlama dili ile çözümleri gerçeklemek |
Anlatım |
Sınav |
1 |
| 2 |
To implement solutions using the object-oriented programming language C++. |
|
|
|
| 3 |
To efficiently and reliably utilize the mechanisms of the C++ language. |
|
|
|
| 3 |
C++ dilinin mekanizmalarını en verimli ve güvenilir şekilde kullanabilmek |
Anlatım |
Sınav |
1 |
| 4 |
Yapısal Programlama ile Nesneye Yönelik Programalama kavramlarını ayırt edebilmek |
Anlatım |
Sınav |
1 |
| 4 |
To differentiate between Structured Programming and Object-Oriented Programming concepts. |
|
|
|
| 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 |
1 |
| 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 |
| 1. Deitel, P. J., & Deitel, H. M. (2018). C++ how to program: introducing the new C++ 14 standard.
2. Stroustrup, B. (2018). A Tour of C++. Addison-Wesley Professional.
3. Savitch, W. J. (2006). Absolute C++. Pearson Education. |
Haftalara Göre İşlenecek Konular |
| Haftalar |
Konular |
Dokümanlar |
| 1 . Hafta |
C++ Nesneye Yönelik Programlama Diline Giriş |
|
| 1 . Hafta |
Introduction to C++ Object-Oriented Programming |
|
| 2 . Hafta |
General Review: Variables, Control Structures, Functions |
|
| 2 . Hafta |
Genel Tekrar: Değişkenler, Kontrol Yapıları, Fonksiyonlar |
|
| 3 . Hafta |
Sınıflar ve Veri Soyutlama |
|
| 3 . Hafta |
Classes and Data Abstraction |
|
| 4 . Hafta |
C++ Standard Libraries and the Boost Library |
|
| 4 . Hafta |
C++ Standard Kütüphaneler ve Boost Kütüphanesi |
|
| 5 . Hafta |
Karakter Dizileri |
|
| 5 . Hafta |
Character Strings |
|
| 6 . Hafta |
Stream Operations and Exception Handling |
|
| 6 . Hafta |
Akış İşlemleri ve Olağanüstü Durumların Yönetilmesi |
|
| 7 . Hafta |
Göstericiler ve Akıllı Göstericiler |
|
| 7 . Hafta |
Pointers and Smart Pointers |
|
| 8 . Hafta |
Midterm Exam |
|
| 8 . Hafta |
Ara Sınav |
|
| 9 . Hafta |
Operatörlerin Aşırı Yüklenmesi |
|
| 9 . Hafta |
Operator Overloading |
|
| 10 . Hafta |
Inheritance |
|
| 10 . Hafta |
Kalıtım |
|
| 11 . Hafta |
Sanal Fonksiyonlar |
|
| 11 . Hafta |
Virtual Functions |
|
| 12 . Hafta |
Polymorphism |
|
| 12 . Hafta |
Çok-Biçimlilik |
|
| 13 . Hafta |
Genelleştirilmiş Kod Yazımı: Şablonlar ve modern mekanizmalar |
|
| 13 . Hafta |
Writing Generalized Code: Templates and modern mechanisms |
|
| 14 . Hafta |
Function Pointers, Function Objects, and Lambda Expressions |
|
| 14 . Hafta |
Fonksiyon Göstericileri, Fonksiyon Nesneleri ve Lambda İfadeler |
|
| 15 . Hafta |
Diğer Nesneye Yönelik Programlama Dilleri (Java ve C#) ile Benzerlikler ve Farklılıklar |
|
| 15 . Hafta |
Similarities and Differences with Other Object-Oriented Programming Languages (Java and C#) |
|
| 16 . Hafta |
Dönem Sonu Sınavı |
|
|
Değerlendirme Sistemi |
| Yarıyıl içi çalışmaları |
Sayısı |
Katkı Payı (%) |
| Yarıyıl İçi Çalışmaları |
1 |
30 |
| Ara Sınav |
0 |
0 |
| Final Sınavı |
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 (sınav haftası dahil: 16xders saati) |
1 |
2 |
2 |
| Sınıf Dışı Ders Çalışma Süresi (Ön çalışma, pekiştirme) |
0 |
0 |
0 |
| Ara Sınav |
0 |
0 |
0 |
| Dönem Sonu Sınavı |
0 |
0 |
0 |
|
0 |
0 |
0 |
|
0 |
0 |
0 |
|
0 |
0 |
0 |
|
1 |
2 |
2 |
|
0 |
0 |
0 |
|
0 |
0 |
0 |
|
0 |
0 |
0 |
|
14 |
3 |
42 |
|
0 |
0 |
0 |
|
0 |
0 |
0 |
|
0 |
0 |
0 |
|
0 |
0 |
0 |
|
14 |
3 |
42 |
|
7 |
4 |
28 |
|
7 |
4 |
28 |
|
14 |
4 |
56 |
|
0 |
0 |
0 |
| Toplam İş Yükü |
200 |
|
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 |
It defines the multidisciplinary scope of the field of information technologies and the interaction between related disciplines. |
X |
|
|
|
|
| 2 |
Gain comprehensive knowledge about current techniques and methods applied in the field of information technologies and their limitations, effects and results. |
X |
|
|
|
|
| 3 |
By doing applied research in the field of information technologies, it reaches the information in depth and in depth, evaluates the information and applies the results. |
X |
|
|
|
|
| 4 |
Complements and applies knowledge with scientific methods, using uncertain, limited or incomplete data; integrates knowledge from different disciplines. |
X |
|
|
|
|
| 5 |
Develops algorithms and methods to solve defined engineering management problems and applies innovative methods in solutions. |
X |
|
|
|
|
| 6 |
Can work effectively in disciplinary and multi-disciplinary teams, lead such teams and develop solution approaches in complex situations; can work independently and take responsibility. |
X |
|
|
|
|
| 7 |
Be aware of new and developing applications in the field of information technologies and have the ability to examine and learn about them. |
X |
|
|
|
|
| 8 |
Uses advanced methods and software and communication technologies used in the field of technology. |
X |
|
|
|
|
| 9 |
Analyzes problems in different fields, develops solutions and implements solutions using information technologies. |
X |
|
|
|
|
| 10 |
Can realize information technology applications by considering entrepreneurship and innovation dimensions. |
X |
|
|
|
|
| 11 |
It observes social, scientific and ethical values in the stages of data collection, interpretation, announcement and in all professional activities. |
X |
|
|
|
|
|