Mühendislik ve Doğa Bilimleri Fakültesi · Bilgisayar Mühendisliği · Lisans
Dersin Amacı
Bu dersin amacı, öğrencileri nesne yönelimli bir programlama dili (C++) aracılığıyla bilişim ve problem çözme alanıyla tanıştırmaktır. Bu doğrultuda ders, öğrencilerin yapısal bir programlama dilini de öğrenmelerini sağlayacak şekilde, ihtiyaç duyulan birçok C++ özelliğini ayrıntılı olarak ele alacaktır.
Dersler, etkileşimli uygulamalar, ödevler, sınavlar ve öğrenci etkinlikleri yoluyla öğrenciler, nesne yönelimli programlama paradigmalarına dayalı algoritmalar tasarlamayı öğreneceklerdir. Ayrıca, çözümlerin doğruluk ve verimlilik açısından değerlendirilmesi konusu da işlenecektir.
Ders İçeriği
1.
o Programlama Dillerine Giriş,
o Veri Temsili (bitler ve baytlar),
o Temel programlama yapısı ve kavramları: tanımlayıcılar, sabit değerler (literals), semboller, değişkenler, ekran girişi/çıkışı (cin ve cout)
2.
o Temel veri tipleri (int/double/char/bool) ve işlem öncelikleriyle birlikte temel aritmetik işlemler,
o Visual MS Studio ile ilk C++ programı
3.
o Dönüş değeri olan/olmayan fonksiyonlar, fonksiyon prototipleri
o Parametre aktarımı (değerle ve referansla aktarım),
4.
o Koşullu ifadeler (if-else), iç içe else-if ifadeleri,
o Mantıksal operatörler (&&, ||, !)
5.
o String sınıfı,
o Döngüler (while, for, do-while)
6.
o Char veri tipi ve aritmetik işlemler
7.
o Dosya Giriş/Çıkışı (I/O), konsol akışı cin, giriş ve çıkış dosya akışları,
o String akışları
8.
o Struct'lar (yapılar), enum,
o Vektörler/diziler ve vektör işlemleri:
Vektöre ekleme/silme
Arama (Ardışık, ikili/binary)
Sıralama (seçmeli/selection ve yerleştirmeli/insertion) sıralama)
9.
o Struct vektörü, matris
o Algoritma karmaşıklığı analizine giriş
10. Sınıflar ve nesneler: Dice, RandGen, Date gibi mevcut sınıfların kullanımı ve değiştirilmesi.
Zorunlu Kaynaklar
“A Computer Science Tapestry”, 2nd Edition, Owen L. Astrachan
Önerilen Kaynaklar
Deitel, P., & Deitel, H. (2012). C How to program. Prentice Hall Press.
Kurallar
- Tıbbi raporlar sınavdan önce teslim edilmelidir. Son dakika sorunlarında veya COVID-19 nedeniyle sağlık kuruluşuna gidilemiyorsa, sınavdan önce öğretim üyesi bilgilendirilmelidir. Sınavdan sonra sunulan mazeretler kabul edilmeyecektir.
- Rapor sunmak, otomatik olarak mazeret sınavı hakkı kazandırmaz. Raporun geçerliliği ve sınava girme gerekliliği öğretim üyesinin takdirindedir.
- Geç sınavlara giren öğrenciler, adaletin sağlanması adına daha zor sorularla karşılaşabilir. Mazeret sınavları tamamen veya kısmen sözlü olabilir.
- Harf notu sadece ağırlıklı ortalamaya göre verilmez. Sınav ve ödev performansları arasındaki dengesizlikler dikkate alınır.
- Derse, laboratuvara ve uygulamalara katılım beklenmektedir. Devamsızlık ek süre kazandırmaz.
- Sınıfta anlatılan ama notlarda yer almayan konulardan da sorumlusunuz.
- Duyurular için e-posta hesabınızı ve Moodle platformunu düzenli takip edin.
- Son dakika çalışmaları yerine düzenli ve zamanında çalışmanız önerilir. Son gün yapılan danışmanlık saatleri genellikle yoğun olur.
- Ödevin birebir ya da kısmen değiştirilmiş hali de intihal sayılır.
- İşbirliği yapmak (grup projesi hariç) mazeret değildir.
- İntihal tespitinde her iki tarafa da ceza uygulanır:
- İlk seferde: –100 puan
- Tekrarı halinde: Dersten kalma
- İntihal, kopya, uzaktan/yasadışı yardım kesinlikle tolere edilmez ve ilgili mevzuata göre ceza uygulanır.
Dersin Öğrenme Çıktıları
- 1. Öğrenciler; sözdizimi, veri tipleri, tanımlayıcılar, değişmezler (literals), semboller, değişkenler, veri gösterimi, derleme vb. gibi temel programlama kavramlarını iyi bir şekilde kavrarlar.
- 2. Öğrenciler fonksiyonlar konusunda sağlam bir anlayışa sahiptir ve bunları kullanarak program yazabilirler.
- 3. Öğrenciler koşullu ifadeler (if/else ifadeleri) ve döngüler (for ve while) hakkında sağlam bir anlayışa sahiptir ve bunları kullanarak program yazabilirler.
- 4. Öğrenciler; string, char, dosya ve I/O akışları gibi örnekler üzerinden sınıflar ve nesneler hakkında sağlam bir anlayışa sahiptir ve bunları kullanarak programlar yazabilirler.
- 5. Öğrenciler vektörler ve diziler konusunda sağlam bir anlayışa sahiptir ve bunları kullanarak program yazabilirler.
Temel Alan Dağılımı
Öğretim Yöntem ve Teknikleri
Ölçme ve Değerlendirme
AKTS / İş Yükü
| Etkinlik | Sayı | Süre (saat) | Toplam İş Yükü |
|---|---|---|---|
| Ders Süresi (Sınav Haftası Dahil) | 15 | 3 | 45 |
| Sınıf Dışı Ders Çalışma Süresi | 15 | 2 | 30 |
| Ara Sınav | 1 | 2 | 2 |
| Kısa Sınav | 7 | 1 | 7 |
| Ödev | 0 | 0 | 0 |
| Uygulama | 15 | 2 | 30 |
| Final | 1 | 2 | 2 |
Ders Akışı
| Hafta | Konu | Ön Hazırlık |
|---|---|---|
| 1 | Programlama Dillerine Giriş, ○ Veri Temsili (bitler ve baytlar), ○ Temel programlama yapısı ve kavramları: veri türleri, tanımlayıcılar, değişmezler (literals), semboller, değişkenler, ekran girişi/çıkışı (cin ve cout) | - |
| 2 | Temel veri tipleri (int/double/char/bool) ve işlem öncelikleriyle birlikte temel aritmetik işlemler, ○ Visual MS Studio ile ilk C++ programı | 1. hafta tekrar |
| 3 | Dönüş değeri olan/olmayan fonksiyonlar, fonksiyon prototipleri ○ Parametre aktarımı (değerle ve referansla aktarım), | 2. hafta tekrar |
| 4 | Koşullu ifadeler (if-else), iç içe else-if ifadeleri, ○ Mantıksal operatörler (&&, ||, !, vb.) | 3. hafta tekrar |
| 5 | String sınıfı | 4. hafta tekrar |
| 6 | Döngüler (while, for, do-while) | 5. hafta tekrar |
| 7 | Char veri tipi ve aritmetik işlemler | 6. hafta tekrar |
| 8 | Vize haftası | 1. - 7. hafta tekrarı |
| 9 | Dosya giriş/çıkışı, konsol akışı cin, giriş ve çıkış dosya akışları, | - |
| 10 | Karakter dizisi akışları | 9. hafta tekrar |
| 11 | Struct'lar, enum'lar, ○ Vektörler/diziler ve vektör işlemleri: ■ Vektöre eleman ekleme/çıkarma | 10. hafta tekrar |
| 12 | ■ Arama (ardışık, ikili) ■ Sıralama (seçerek ve yerleştirerek sıralama) | 11. hafta tekrar |
| 13 | Yapı vektörü, matrisler | 12. hafta tekrar |
| 14 | Sınıflar ve nesneler: mevcut sınıfları kullanma ve değiştirme. | 13. hafta tekrar |
| 15 | Final sınav hazırlıkları | 1. - 14. Hafta tekrar |
| 16 | Final Sınavı | 1.-15. Hafta Tekrarı |


