| 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 |
|
|
|
|
|