Categories
Algorithms and Programming I

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ıİçerikAdres
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
Categories
Algorithms and Programming I

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.

https://docs.google.com/forms/d/e/1FAIpQLSd23R8gvWSKOiA5h3YC6Cdgq9iZ-En9I-5Y1wR9AwKhAXGaTA/viewform?vc=0&c=0&w=1

Categories
Algorithms and Programming I

Grades

Categories
Algorithms and Programming I

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.

Categories
Algorithms and Programming I

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;

http://levent.tc/files/courses/algorithms_and_programming_i/projects/project1/BLM103_proje1_yapay_zeka.pdf

  • İ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;

http://levent.tc/files/courses/algorithms_and_programming_i/projects/project2/BLM103_proje2_goruntu_isleme.pdf


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

http://levent.tc/files/courses/algorithms_and_programming_i/projects/project3/BLM103_proje3_kriptografi.pdf

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

http://levent.tc/files/courses/algorithms_and_programming_i/projects/proje4/BLM103_proje4_veri_sikistirma.pdf

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

http://levent.tc/files/courses/algorithms_and_programming_i/projects/proje5/BLM103_proje5_pong_oyunu.pdf

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

http://levent.tc/files/courses/algorithms_and_programming_i/projects/proje6/BLM103_proje6_adam_asmaca.pdf

  • 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


Rapor: http://levent.tc/files/courses/algorithms_and_programming_i/projects/2019/BLM103_adam_asmaca_rapor_erdem_alp.pdf

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

Categories
Algorithms and Programming I

Homeworks

ÖdevKonuTarihSon Teslim TarihiTeslim YöntemiİndirmeÇözüm
1Akış Diyagramları15.10.201922.10.2019, Ders Saatleri İçerisindeYazılı Olarak Ders Sınıfında Teslim
2Seçim ve Kontrol Yapıları5.11.201912.11.2019, Ders Saatleri İçerisindeYazılı Olarak Ders Sınıfında Teslim
3Fonksiyonlar12.11.201919.11.2019, Ders Saatleri İçerisindeYazılı Olarak Ders Sınıfında Teslim
4İşaretçiler3.12.201910.12.2019, Ders Saatleri İçerisindeYazılı Olarak Ders Sınıfında Teslim
5Diziler10.12.201917.12.2019, Ders Saatleri İçerisindeYazılı Olarak Ders Sınıfında Teslim
6Özyinelemeli Fonksiyonlar17.12.201924.12.2019, Ders Saatleri İçerisindeYazılı Olarak Ders Sınıfında Teslim
Categories
Algorithms and Programming I

Lecture Notes

HaftaKonuİndirme
1Giriş
2Akış Diyagramları
3C’e Genel Bakış, Değişkenler ve Operatörler
4Resmi Tatil
5Seçim ve Kontrol Yapıları
6Fonksiyonlar
7Vize
8Test ve Hata Ayıklama
9İşaretçiler
10Diziler
11Özyinelemeli Fonksiyonlar
12Karakterler, Girdi/Çıktı Formatlama, Dosya Okuma ve Yazma
13C Yapıları
14Önişlemler ve Diğer Konular
15Final ve Proje Sunumları
Categories
Algorithms and Programming I

Syllabus

HaftaKonuTarih
1Giriş8.10.2019
2Akış Diyagramları15.10.2019
3C’e Genel Bakış, Değişkenler ve Operatörler22.10.2019
4Resmi Tatil29.10.2019
5Seçim ve Kontrol Yapıları5.11.2019
6Fonksiyonlar12.11.2019
7Vize19.11.2019
8Test ve Hata Ayıklama26.11.2019
9İşaretçiler3.12.2019
10Diziler10.12.2019
11Özyinelemeli Fonksiyonlar17.12.2019
12Karakterler, Girdi/Çıktı Formatlama, Dosya Okuma ve Yazma24.12.2019
13C Yapıları31.12.2019
14Önişlemler ve Diğer Konular7.1.2020
15Final ve Proje SunumlarıSınav Haftası
  
Categories
Algorithms and Programming I

Detailed Course Description

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.

FaaliyetlerOranlar
Vize%15
Ödev/Quiz%10
Lab%15
Proje%40
Final%20
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.

Categories
Courses

Algorithms and Programming I

Important Note: Some links may be broken, if you send me an e-mail I can send you the file.

Course Description: 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.