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