Category: Courses
Tools
Bu sayfada ders içeriklerine destek olması amacıyla sunulmuş çeşitli araçlar bulunmaktadır. LAB, ödev ve vize ve final sınavlarına hazırlık için kullanılacaktır.
Araç Adı | İçerik | Adres |
---|---|---|
Akış Diyagramı Uygulaması | Akış diyagramlarının öğrenilmesinde faydalı bir araçtır. Aracın kullanım kılavuzuna erişmek için tıklayınız. | İndirme |
Feedback
Ders hakkında geri bildirimleriniz önemlidir.
Kayıtlı öğrencilerin her hafta geri bildirimleri için LMS sistemi üzerinden “Geri Bildirim Formu” açılacaktır.
Her doldurulan geribildirim için 0.5 puan sene sonu notuna eklenecektir.
Anonim olarak geri bildirimde bulunmak için aşağıdaki linki kullanabilirsiniz.
Grades
LMS and Piazza
Öğrencilerin soru sorup yanıt alabileceği bir soru cevap sistemi sunulmaktadır. Ders duyuruları, öğrenci soruları ve cevapları için bir platformdur. Aşağıdan erişebilirsiniz.
https://piazza.com/class/k1gtkm99i1vl9
LMS (Learning Management System), bazı ödevlerin teslimi için LMS sistemi üzerinden olması istenecektir.
Projects
2019-2020 Yılı Verilen Projeler ve Öğrencilerin Hazırladığı Proje Teslim Dosyaları:
- Yapay Zeka ile Kanser Tespiti
Bu proje yapay zeka uygulamalarında kullanılan bir algoritma olan kNN (k Nearest Neighborhood, En Yakın k Komşu) algoritması gerçeklenecektir. Gerçeklenen algoritma ile, UC Irvine Üniversitesi’nin sağlamış olduğu Göğüs Kanseri verileri işlenecektir. Hasta olup olmadığı belli olmayan bir kişinin verileri sisteme beslenerek, hastalık tahmini yapılacaktır.
Detaylı proje spesifikasyonu için;
- İlhan Ersoy, Hasan Demir
Rapor: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_yapay_zeka_rapor_ilhan_hasan.pdf
Sunum: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_yapay_zeka_sunum_ilhan_hasan.pdf
Kaynak Kodlar: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_yapay_zeka_kaynakkod_ilhan_hasan.c
Github: https://github.com/ilhan-ersoy/Yapay-Zeka-ile-Kanser-Tespiti—ilhan-Ersoy-Hasan-Demir
Youtube: https://www.youtube.com/watch?v=iAQvrZIx6uI
- Özlem Çalı, Deniz Uzun
Rapor: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_yapay_zeka_rapor_ozlem_deniz.pdf
Sunum: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_yapay_zeka_sunum_ozlem_deniz.pdf
Kaynak Kodlar: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_yapay_zeka_kaynakkod_ozlem_deniz.c
Github: https://github.com/ozlemcali/Yapay-Zeka-le-Kanser-Tespiti
Youtube: https://www.youtube.com/watch?v=bKQm0-GV7e8
- Evrim Arda Kalafat, Arda Alhan
Rapor: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_yapay_zeka_rapor_evrim_arda.pdf
Sunum: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_yapay_zeka_sunum_evrim_arda.pdf
Kaynak Kodlar: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_yapay_zeka_kaynakkod_evrim_arda.c
Github: https://github.com/rhgod/Yapay_zeka_ile_kanser_tespiti
Youtube: https://www.youtube.com/watch?v=CfSBGO9qAhU
- Ekrem Büyükkaya, Mustafa Berk Taşkın
Rapor: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_yapay_zeka_rapor_ekrem_mustafa.pdf
Sunum: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_yapay_zeka_sunum_ekrem_mustafa.pdf
Kaynak Kodlar: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_yapay_zeka_kaynakkod_ekrem_mustafa.rar
Github: https://github.com/ekrembk/fbu-blm103
Youtube: https://www.youtube.com/watch?v=9veZF0cZj7U
- Görüntü İşleme Filtreler
Bu projede görüntü işleme uygulamalarında sıklıkla kullanılan bazı filtreler gerçeklenecektir. Filtreler, görüntüyü yumuşatma, görüntüdeki gürültüleri azaltma, kenar bulma, görüntü keskinleştirme ve inceltme olarak sıralanabilir.
Detaylı proje spesifikasyonu için;
- Kriptografi: Sezar Şifreleme ve Çözme
Tarihte ilk bilinen şifreleme yöntemi olan Sezar şifreleme yöntemi ile şifreleme ve çözme yapılacaktır. Bu şifrede, her harf o harften birkaç sonraki harf kullanılarak yazılır. Bir metin içeren dosya okunup, şifrelenerek kaydedilecektir. Şifrelenmiş dosyalar çözülerek kaydedilecektir.
Detaylı proje spesifikasyonu için;
- Aysen İpek Çakır, İrem Kalkanlı
Rapor: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_yapay_zeka_rapor_aysen_irem.pdf
Sunum: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_yapay_zeka_sunum_aysen_irem.pdf
Kaynak Kodlar: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_yapay_zeka_kaynakkod_aysen_irem.c
Github: https://github.com/iremkalkanli/BLM-103-Sezar-Sifreleme
Youtube: https://www.youtube.com/watch?v=S0dbjRSvVsA
- RLE Veri Sıkıştırma
RLE (Run Length Encoding) kayıpsız bir sıkıştırma yöntemidir. Birçok büyük sıkıştırma algoritmasının alt algoritmalarındandır (Örn. JPEG sıkıştırma). Veri içindeki tekrarları tespit eder ve tekrarları ortadan kaldırarak veri boyutunu azaltır. Bu projede verilecek test dosyası RLE algoritması ile sıkıştırılarak kaydedilecek. Sıkıştırılmış olan dosya tekrar çözülerek orijinal dosya geri elde edilecektir.
Detaylı proje spesifikasyonu için;
- Ahmet Hazar Haspolat, Ömer Sait Yorulmaz
Rapor: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_rle_rapor_ahmet_omer.pdf
Sunum: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_rle_sunum_ahmet_omer.pdf
Kaynak Kodlar: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_rle_kaynakkod_ahmet_omer.c
Github: https://github.com/espeniola/Run-Length-Encoder-Decoder
Youtube: https://www.youtube.com/watch?v=DoMQBqVTZ8I
- Berk Tunç, Cüneyt Balcı
Rapor: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_rle_rapor_berk_cuneyt.pdf
Sunum: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_rle_sunum_berk_cuneyt.pdf
Kaynak Kodlar: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_rle_kaynakkodlar_berk_cuneyt.c
Github: https://github.com/cuneytbalci/FBU-RleVeriSikistirma
Youtube: https://www.youtube.com/watch?v=ptir-Scy2WY
- Pong Oyunu
Pong Oyunu, 2 boyutlu grafiklere sahip bir tenis oyunudur. Tek kişilik bir oyundur. Bilgisayar’a karşı yarışılır. Görsel içeriğin hazırlanması için SDL (Simple DirectMedia Layer) kütüphanesi kullanılmaktadır. Verilen başlangıç tasarımının üzerine bilgisayar’ın otonom hareketlerini yapacak bir algoritma geliştirilecektir.
Detaylı proje spesifikasyonu için;
- Ogün Berat Gürses, Mehmet Çolak
Rapor: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_pong_rapor_ogun_mehmet.pdf
Sunum: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_pong_sunum_ogun_mehmet.pdf
Kaynak Kodlar: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_pong_kaynakkod_ogun_mehmet.c
Github: https://github.com/Siencer/BLM-103-PONG-OYUNU
Youtube: https://www.youtube.com/watch?v=dwF2nQ1UKfw
- Serhat Erdoğan, Hüseyin Berk Işıldak
Rapor: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_pong_rapor_serhat_huseyin.pdf
Sunum: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_pong_sunum_serhat_huseyin.pdf
Kaynak Kodlar: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_pong_kaynakkod_serhat_huseyin.c
Github: https://github.com/serhaterdogan77/pongOyunu
Youtube: https://www.youtube.com/watch?v=XQANx7UP2Xs
- Mert Meriç Karadeniz, Mehmet Rauf Füzun
Rapor: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_pong_rapor_mert_mehmet.pdf
Sunum: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_pong_sunum_mert_mehmet.pdf
Kaynak Kodlar: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_pong_kaynakkod_mert_mehmet.c
Github: https://github.com/Nygma23/fbu-pong
Youtube: https://www.youtube.com/watch?v=Hlm5o6wdOWs
- Adam Asmaca Oyunu
Adam asmaca oyunu, daha önceden belirlenmiş olan bir kelimenin tahmin edilmesine dayalı bir oyundur. Oyun başladığında belirlenmiş olan gizli kelimenin harflerinin kullanıcıdan tahmin edilmesi istenmektedir. Kelimenin harfi doğru tahmin edildiğinde ilgili harfler yerleri ile birlikte gösterilir. Yanlış tahmin edildikçe ekrana adım adım asılan bir adam çizdirilir.
Detaylı proje spesifikasyonu için;
- Ahmet Batuhan Yılmaz, Hayat Zehra Demir
Rapor: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_adam_asmaca_rapor_ahmet_hayat.pdf
Sunum: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_adam_asmaca_sunum_ahmet_hayat.pdf
Kaynak Kodlar: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_adam_asmaca_kaynakkod_ahmet_hayat.c
Github: https://github.com/lashraelrx/adamasmacafb-
Youtube: https://www.youtube.com/watch?v=CtYxN6W07-w
- Erdem Şentürk, Alp Yılmaz
Sunum: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_adam_asmaca_sunum_erdem_alp.pdf
Kaynak Kodlar: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_adam_asmaca_kaynakkod_erdem_alp.c
Github: https://github.com/erdem106/BLM-103-Adam-Asmaca-Erdem-Alp
Youtube: https://www.youtube.com/watch?v=GlY2XJjHbGo
Homeworks
Lecture Notes
Syllabus
Hafta | Konu | Tarih |
---|---|---|
1 | Giriş | 8.10.2019 |
2 | Akış Diyagramları | 15.10.2019 |
3 | C’e Genel Bakış, Değişkenler ve Operatörler | 22.10.2019 |
4 | Resmi Tatil | 29.10.2019 |
5 | Seçim ve Kontrol Yapıları | 5.11.2019 |
6 | Fonksiyonlar | 12.11.2019 |
7 | Vize | 19.11.2019 |
8 | Test ve Hata Ayıklama | 26.11.2019 |
9 | İşaretçiler | 3.12.2019 |
10 | Diziler | 10.12.2019 |
11 | Özyinelemeli Fonksiyonlar | 17.12.2019 |
12 | Karakterler, Girdi/Çıktı Formatlama, Dosya Okuma ve Yazma | 24.12.2019 |
13 | C Yapıları | 31.12.2019 |
14 | Önişlemler ve Diğer Konular | 7.1.2020 |
15 | Final ve Proje Sunumları | Sınav Haftası |
Ders Açıklaması
Bu dersin amacı algoritma tasarımı, analizi ve optimizasyonu yapabilme becerisi kazandırmaktır. Ders kapsamında problem çözme, C dili ile çeşitli algoritma geliştirme yöntemleri aktarılmaktadır. Kontrol yapıları, döngüler, fonksiyonlar, diziler, işaretçiler kullanılarak bilgisayar programlarının tasarımları öğretilmektedir. Dosya işleme, yapılar ve kullanım alanları, yeniden kullanılabilir kod kavramı ve verimli kod geliştirme kavramları hakkında bilgi verilmektedir.
Ders Saatleri (Teorik + Lab)
Salı 09.00-13.00
Öğretim Elemanları ve Ofis Saatleri
Dr. Öğr. Üyesi Vecdi Emre Levent, Ofis 311 – Pazartesi 17.00-18.00, Salı 16.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.
- Kernighan & Ritchie, The C Programming Language, Prentice Hall
- Deitel & Deitel, C How to Program, Prentice Hall
- Problem Solving & Programming Design In C, Fourth Edition, Jeri R. Hanly and Elliot B. Koffman
- Introduction to Algorithms, Third Edition, T.H. Cormen, C.E. Leiserson, R.L. Rivest and C. Stein, MIT Press
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ı
- Bir problemin birden çok çözüm yöntemini kıyasyabilme
- Basit veri yapılarıyla algoritma kurma becerisi
- Yeniden kullanılabilir ve optimize kod tasarımı
- Özyinelemeli fonksiyonlar ile tasarım
- C dili ile algoritma geliştirme kabiliyeti
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.
Faaliyetler | Oranlar |
---|---|
Vize | %15 |
Ödev/Quiz | %10 |
Lab | %15 |
Proje | %40 |
Final | %20 |
Bonus | 5 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 Notu | Ağırlık | Harf Notu |
90-100 | 4.00 | AA |
85-89 | 3.50 | BA |
80-84 | 3.00 | BB |
75-79 | 2.50 | CB |
65-74 | 2.00 | CC |
50-64 | 1.50 | DC |
45-49 | 1.00 | DD |
0 -44 | 0 | FF |
Beklenen Efor
Öğrencinin dönem içinde göstermesi beklenen efor tablosu aşağıda verilmiştir.
İçerik | Saat | Kaç Defa | Ara Toplam |
Derse Hazırlık | 2 | 14 | 28 |
Ders Tekrarı | 2 | 14 | 28 |
Ödev | 4 | 6 | 24 |
Proje | 48 | 1 | 48 |
Sınıf Dersi | 4 | 14 | 56 |
Ara Sınav ve Final | 3 | 2 | 6 |
Öğ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.