Categories
Algorithms and Programming II

Lecture Notes

HaftaKonuİndirme
1Giriş
2Sınıflar ve Objelere Giriş
3Vektörler
4Sınıflar I (Classes)
5Sınıflar II (Classes)
6Operatör Aşırı Yükleme
7Kalıtım (Inheritance)
8Vize
9Çok Biçimlilik (Polymorphism)
10Şablonlar (Templates)
11Stream IO ve İstisna İdaresi (Exception Handling)
12Resmi Tatil
13Dosya Okuma/Yazma ve String İşleme
14STL (Standard Template Library)
15Final ve Proje Sunumları
Categories
Algorithms and Programming II

Syllabus

HaftaKonuTarih
1Giriş6.2.2020
2Sınıflar ve Objelere Giriş13.2.2020
3Vektörler20.2.2020
4Sınıflar I (Classes)27.2.2020
5Sınıflar II (Classes)5.3.2020
6Operatör Aşırı Yükleme12.3.2020
7Kalıtım (Inheritance)19.3.2020
8Vize26.3.2020
9Çok Biçimlilik (Polymorphism)2.4.2020
10Şablonlar (Templates)9.4.2020
11Stream IO ve İstisna İdaresi (Exception Handling)16.4.2020
12Resmi Tatil23.4.2020
13Dosya Okuma/Yazma ve String İşleme30.4.2020
14STL (Standard Template Library)7.5.2020
15Final ve Proje SunumlarıSınav Haftası
   

Categories
Algorithms and Programming II

Detailed Course Description

Ders Açıklaması

Bu dersin amacı, nesneye yönelimli programlama ilkelerini ve C ++ ‘ı kullanan teknikleri kapsar. Konular arasında işaretçiler, sınıflar, opreratör aşırı yükleme, veri soyutlama, bilgi gizleme, enkapsülasyon, kalıtım, polimorfizm, dosya işleme, şablonlar, istisnalar, tasarım kalıpları ve düşük seviye dil özellikleri bulunur.

Ders Saatleri (Teorik + Lab)

Perşembe 9.00-13.00

Öğretim Elemanları ve Ofis Saatleri

Dr. Öğr. Üyesi Vecdi Emre Levent, Ofis 311 – Perşembe 15.00-17.00

Arş. Gör. Uğur Özbalkan, Ofis 311 –  Salı 16.00-17.00, Cuma 16.00-17.00

Ön Gereksinimler

Yok

Yardımcı Kaynaklar

Dersin referans kaynakları aşağıda listelenmektedir.

  • Thinking in C++: Introduction to Standard C++, Bruce Eckel, Pearson
  • C++ How to Program, Paul Deitel, Pearson
  • C++ Primer, Stanley Lippman, Addison-Wesley Professional
  • Effective Modern C++, Scott Meyers, Shroff Publishers & Distributors

Yazılımlar

C++ dili ile geliştirilecek olan uygulamalar, Visual Studio Community kullanılarak derlenecektir.

Dersler

Dersin haftalık 2 saat teorik, 2 saat laboratuvar bölümü bulunmaktadır. Öğretim üyesi tarafından verilen ders materyallerinin ders öncesi incelenip, ders sonrasında ise tekrar edilmesi beklenmektedir. 

Öğrenim Çıktıları

  • Okunabilir kodlar yazmak için standartları ve ilkeler
  • Bir programda hata tespiti ve hata ayıklama becerileri
  • Program modülü olarak hizmet veren bir sınıf tasarımı
  • Nesneye yönelik tasarım kavramlarını (kalıtım, polimorfizm ve bilgi gizleme) anlamak
  • C++ dili ile yazılmış uygulama ve sınıf kütüphanesi içeren projeler geliştirebilmek

Quizler

Dönem içerisinde iki adet quiz yapılacaktır. 30 dk süre verilecektir. Quiz tarihi bir hafta önceden duyurulacaktır. 

Notlandırma

Derslere %80 oranında devam zorunludur.

Dönem notu; vize, lablar, ödevler, proje ve final sınavı ile belirlenecektir. Değerlendirme yüzdeleri aşağıdaki tabloda verilmiştir.

FaaliyetlerOranlar
Vize%20
Ödev/Quiz%10
Lab%15
Proje%30
Final%25
Bonus5 Puan’a kadar

Ödev ve quizlerin teslim saati üzerinden her geçen saat için 5 puan kesilecektir.

Dönem sonu notunun karşılık geldiği ağırlık ve harf notu aşağıdaki tabloda verilmiştir.

Dönem NotuAğırlıkHarf Notu
90-1004.00AA
85-893.50BA
80-843.00BB
75-792.50CB
65-742.00CC
50-641.50DC
45-491.00DD
0 -440FF

Beklenen Efor

Öğrencinin dönem içinde göstermesi beklenen efor tablosu aşağıda verilmiştir.

İçerikSaatKaç DefaAra Toplam
Derse Hazırlık21428
Ders Tekrarı21428
Ödev4624
Proje48148
Sınıf Dersi41456
Ara Sınav ve Final326


Öğrenciler dersten başarılı olmak için dönem boyunca ortalama 190 saat harcamaları beklenmektedir.

Kodlama Ödevleri

Kodlama ödevlerinin notlandırılması, kodun doğruluğu, kalite ve algoritmik gerçeklemedeki detayları incelenerek yapılacaktır.

Doğruluk

Verilecek her bir ödev için test girişi ve beklenen çıkışlar paylaşılacaktır. Ancak ödev kontrolü yapılırken sizinle paylaşılmamış başka test durumları da denenecektir. Çalışma zamanı, beklenenden çok uzun süren kodlar yanlış olarak değerlendirilebilir.

Teori

Kod, istenen algoritmanın tasarımı olmalıdır. En optimum çözüm beklenmemektedir. Ancak bellek ve çalışma zamanı beklenenden çok fazla olmamalıdır.

Yazılı Ödevler

Ödev kendi el yazınız ile yazılmalıdır. Ödev cevap kağıtının üzerinde, dersin adı, öğrenci adı ve soyadı, öğrenci numarası ve tarih bulunmalıdır. 

Akademik Dürüstlük

Ödevin amacı, ders hakkında derinlemesine araştırma yapmayı öğrenmek ve pratik bilgiler kazanmayı sağlamaktır. Verilen ödevler hakkında, diğer öğrenciler ile birlikte çalışma teşvik edilmektedir. Çalışma grubu oluşturan öğrenciler, kendi başına çalışan öğrencilere göre sınavlarda daha başarılı olmaktadırlar. 

Ancak bir ödevi çözmek için başkaları ile birlikte çalışsanız bile, her bir sorunun çözümünü yardım almadan kendiniz yapmalısınız. Çözümünüzü bir araştırma yolu ile elde ederseniz (örn. bir internet araması), çözümü kendi cümle ve/veya kodunuz ile ifade etmelisiniz. Çözümü sözlü olarak sorulduğunda, öğrencinin açıklayabilmesi beklenmektedir. 

Verilen ödev bir kod ise, kendinizin yazması gerekmektedir. Hata ayıklamada başkalarından yardım alabilirsiniz. Kodda intihal tespiti için manuel ve otomatik mekanizmalar kullanılacaktır. İntihal, sınav içi kopya ve benzeri davranışlar disiplin yönetmeliğine göre cezalandırılır.