Ana içeriğe atla

BIM 109 - Algoritma ve Programlamaya Giriş

Mühendislik ve Doğa Bilimleri Fakültesi · Bilgisayar Mühendisliği · Lisans

AKTS: 5 T+U+L: 2+0+2 Zorunlu
Koordinatör: Dr. Öğr. Üyesi ARTRIM KJAMILJI
Öğretim Üyeleri: Dr. Öğr. Üyesi ARTRIM KJAMILJI

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. 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. 2. Öğrenciler fonksiyonlar konusunda sağlam bir anlayışa sahiptir ve bunları kullanarak program yazabilirler.
  3. 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. 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. 5. Öğrenciler vektörler ve diziler konusunda sağlam bir anlayışa sahiptir ve bunları kullanarak program yazabilirler.

Temel Alan Dağılımı

(48) Bilgisayar%50 (52) Mühendislik%50

Öğretim Yöntem ve Teknikleri

AnlatımSoru-CevapTartışmaAlıştırma ve UygulamaGrup ÇalışmasıBeyin FırtınasıBireysel ÇalışmaProblem Çözme

Ölçme ve Değerlendirme

ÖdevProje / TasarımSınav (Yazılı Sınav / Test: Doğru-Yanlış Testi, Çoktan Seçmeli Testi, Kısa Cevaplı Test, Eşleştirmeli Test)

AKTS / İş Yükü

EtkinlikSayıSüre (saat)Toplam İş Yükü
Ders Süresi (Sınav Haftası Dahil)15345
Sınıf Dışı Ders Çalışma Süresi15230
Ara Sınav122
Kısa Sınav717
Ödev000
Uygulama15230
Final122

Ders Akışı

HaftaKonuÖn Hazırlık
1Programlama 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)-
2Temel 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
3Dönüş değeri olan/olmayan fonksiyonlar, fonksiyon prototipleri ○ Parametre aktarımı (değerle ve referansla aktarım),2. hafta tekrar
4Koşullu ifadeler (if-else), iç içe else-if ifadeleri, ○ Mantıksal operatörler (&&, ||, !, vb.)3. hafta tekrar
5String sınıfı4. hafta tekrar
6Döngüler (while, for, do-while)5. hafta tekrar
7Char veri tipi ve aritmetik işlemler6. hafta tekrar
8Vize haftası1. - 7. hafta tekrarı
9Dosya giriş/çıkışı, konsol akışı cin, giriş ve çıkış dosya akışları,-
10Karakter dizisi akışları9. hafta tekrar
11Struct'lar, enum'lar, ○ Vektörler/diziler ve vektör işlemleri: ■ Vektöre eleman ekleme/çıkarma10. hafta tekrar
12■ Arama (ardışık, ikili) ■ Sıralama (seçerek ve yerleştirerek sıralama)11. hafta tekrar
13Yapı vektörü, matrisler12. hafta tekrar
14Sınıflar ve nesneler: mevcut sınıfları kullanma ve değiştirme.13. hafta tekrar
15Final sınav hazırlıkları1. - 14. Hafta tekrar
16Final Sınavı1.-15. Hafta Tekrarı