BBY261 İleri Programlama dersine hoşgeldiniz. Ders BBY162 Programlama ve Algoritmalar dersinin devamı niteliğinde olup Python programlama dili ve algoritma geliştirme ile ilgili genel bilgilere hakim olduğunuz varsayılmaktadır. BBY162 kodlu dersi almış olmasanız bile temel programlama ve algoritma geliştirme bilgisine sahipseniz dersi yürütebileceğiniz düşünülmektedir.
Dersin Katalog Tanımı
Derste, nesne yönelimli programlamanın temelleri, UML ile nesne yönelimli program geliştirme, Java’nın temel elemanları (değişkenler, akış kontrolü, sınıflar ve nesneler, dizinler ve taşıyıcı sınıflar, arayüz yapıları), sınıflar ve kalıtım (sınıf yaratımı, kalıtım ve çok biçimlilik, arayüz kavramı ve geliştirimi), nesneye yönelik kodlama ve dokümantasyon standartları, kodun entegrasyonu, soyutlamaya dayalı tasarım ve tasarım örüntüleri anlatılmaktadır.
Kaynaklar
Ders kapsamında birçok açık eğitim kaynağından faydalanacağız. Bu kaynaklara aşağıdaki listeden ulaşabilirsiniz:
- Python Docs
- Colab: Python’a Giriş
- W3Shools Python Tutorials
- Udacity Course: Intro to TensorFlow for Deep Learning
Değerlendirme
Proje 01
Açıklama: Bir metin katarı (string) içerisinde yer alan herhangi bir kelimeyi tam olarak aratıp bulabilmenizi sağlayacak uygulamayı Google Colab üzerinde geliştirerek proje_01.ipynb olarak GitHub hesabınızdaki hu-bby261-2020 adlı depoya kaydedin. (5P)
Proje 02
Açıklama: Celsius – Fahrenheit çeviren makine öğrenmesi uygulamasından faydalanarak Km – Mil ya da Mil – Km çeviren bir makine öğrenmesi uygulamasını Google Colab üzerinde geliştirerek proje_02.ipynb olarak GitHub hesabınızdaki hu-bby261-2020 adlı depoya kaydedin. Uygulamanızda çevrilecek değerin ve eğitim sayısının (epoq) dışardan klavye ile veri girişi yapılacak şekilde olmasını sağlayın. (10P)
Ek olarak uygulamanızda Km – Mil ya da Mil – Km seçiminin ilk başta tercih edilebilir olması için de çalışabilirsiniz.
Yine ekleyebileceğiniz bir başka özellik olarak makineyi öğretmek için kullanacağınız verileri dışarıdaki bir txt dokümanından alınmasını sağlayabilirsiniz.
Proje 03
Açıklama: 0-9 kadar el yazısı ile yazılmış rakamların makine öğrenmesi algoritmaları kullanarak sınıflandırılmasını uygulamasını Google Colab üzerinde geliştirerek proje_03.ipynb olarak GitHub hesabınızdaki hu-bby261-2020 adlı depoya kaydedin. Sınıflandırma uygulamasında öğretim ve test verisi olarak MNIST Digit veri setini kullanabilirsiniz. Uygulamanızın son aşamasında dışarıdan sizin oluşturduğunuz el yazısı görsellerini makine sınıflandırabilmelidir. (10P)
Proje 04
Açıklama: Tarihin en eski şifreleme tekniklerinden biri olan Sezar Şifrelemesi uygulamasını Google Colab üzerinde geliştirerek proje_04.ipynb olarak GitHub hesabınızdaki hu-bby261-2020 adlı depoya kaydedin. (15P)
Uygulama aşağıda yer alan üç özelliğe sahip olacak:
- Uygulama dışarıdan alınan bir TXT dokümanındaki şifrelenmemiş metni klavyeden girilecek olan anahtar yardımıyla şifreleyecek ve şifrelenmiş metni ayrı bir TXT dokümanı olarak tekrar kaydedebilecek.
- Uygulama dışarıdan alınan bir TXT dokümanındaki şifrelenmiş metni klavyeden girilecek olan anahtar yardımıyla çözebilecek ve ekranda şifresi çözülmüş metni gösterebilecek.
- Uygulama dışarıdan alınan bir TXT dokümanındaki şifrelenmiş metni bilinen bir anahtar olmadan çözmeye çalışacak ve sonucu ekranda gösterebilecek.
Not: Uygulamada yukarıda belirtilen özellikler arası geçiş bir menü yardımıyla gerçekleştirilirse kullanım açısından daha iyi bir deneyim yaşatacaktır.
Proje 05
Açıklama: SQLite 3 ile geliştirilecek bir veri tabanı uygulamasını proje_05.ipynb olarak GitHub hesabınızdaki hu-bby261-2020 adlı depoya kaydedin. (20P)
Uygulama aşağıdaki özelliklere sahip olacaktır:
- Uygulamanın basit bir arayüzü olacaktır.
- Uygulamada en az 1 tablo yer alacaktır.
- Tablo içinde en az 4 alan ve bu alanlardan birinin de otomatik artan anahtar alan ve bir alanında kaydın girildiği tarih ve saati belirten alan olması gerekmektedir.
- Uygulamada oluşturulan veri tabanına yeni kayıtlar eklenebilecek, kayıtlar listelenebilecek, silinebilecek ve güncellenebilecektir.
- Uygulama içinde kayıtlar aranabilir olacaktır.
Final Projesi
Açıklama: Gerçek hayatta karşılaştığınız ve bilişim teknolojileri yardımıyla çözülebileceğine inandığınız bir problemi Python programlama dili yardımıyla uygulama geliştirerek çözünüz. Final projeniz hemen her konuda olabilir.
Ör: İnternet üzerindeki bir web servisinden sağlanan verilerin işlenerek kullanıma sunulması. Günlük hava durumu verilerine göre öneride bulunan bir asistan vb.
Unutmayın, problem ne kadar ilginç olursa çözümü o kadar eğlenceli olur, ne kadar eğlence o kadar puan 🙂
Teslim Şekli: Final Projesi, GitHub hesabınızdaki hu-bby261-2020 adlı depo içerisinde “final_projesi” klasörü içinde teslim edilecektir ve final sınavı sırasında sunumu gerçekleştirilecektir.
Ders İzlencesi
Bölüm 1
Dersin bu ilk haftasında çalışmalarımızı yürütebilmek için ihtiyaç duyacağımız geliştirme araçlarını ve ortamlarını tanıyacağız ve genel bir Python tekrarı gerçekleştireceğiz. Python ile ilgili bilgilerimizi tazelerken Python’a Giriş Colab‘inden faydalanacağız. Bu derste inceleyeceğimiz platformlar:
Bölüm 2
Dersin bu haftasında Python’da “Sanal Ortam” (Virtual Environment” kullanımı göreceğiz, Python kütüphanelerin ve modüllerini sanal ortamda kurarak nesne yönelimli programlama metodlarını daha detaylı olarak inceleyeceğiz. Bunlara ek olarak PyCharm geliştirme ortamını inceleyerek çalışmalarımızı PyCharm üzerinden nasıl gerçekleştirebileceğimizi göreceğiz.
Bölüm 3
Bu hafta ilk makine öğrenmesi uygulamamızı gerçekleştiriyoruz. Uygulamayı gerçekleştirirken Udacity Course: Intro to TensorFlow for Deep Learning kursunun ikinci dersindeki örneği kullanacağız.
Bölüm 4
Bu hafta üçüncü bölümde incelediğimiz makine öğrenmesi uygulamasının temel alarak farklı bir örnek üzerinde çalışacağız. Bu örnek uygulamada Km, Mil’e ve Mil de Km dönüştürülecek.
Bölüm 5
Bu hafta ikinci makine öğrenmesi uygulamamızı gerçekleştiriyoruz. Uygulamayı gerçekleştirirken Udacity Course: Intro to TensorFlow for Deep Learning kursunun üçüncü dersindeki örneği kullanacağız.
Bölüm 6
Bu hafta beşinde bölümde incelediğimiz makine öğrenme uygulamasını temel alarak farklı bir örnek üzerinde çalışacağız. Bu örnek uygulamada el yazısı rakamların sınıflandırılması problemi üzerinde çalışacağız. Örnek uygulamaya için tıklayınız.
Bölüm 7
Bu hafta tarihin en eski şifreleme tekniklerinden biri olan Sezar Şifrelemesi‘ni bir uygulamaya dönüştüreceğiz. Uygulamada kullanabileceğiniz örnek kodlara aşağıdaki bağlantılardan ulaşabilirsiniz:
Bölüm 8
Python ile ilgili arayüz çalışmalarını bu bölümde gerçekleştireceğiz. İhtiyaç duyacağımız temel dokümantasyona ve örneklere aşağıdaki bağlantılardan ulaşabilirsiniz:
Bölüm 9
Python ile SQLite3 kullanarak basit veri tabanı çalışmalarını bu bölümde gerçekleştireceğiz. İhtiyaç duyacağınız temel dokümantasyona ve örneklere aşağıdaki bağlantılardan ulaşabilirsiniz:
Bölüm 10
Django kütüphanesini kullanarak web tabanlı Python uygulamalarını bu bölümde gerçekleştireceğiz. İhtiyaç duyacağınız temel dokümantasyona ve örneklere aşağıdaki bağlantılardan ulaşabilirsiniz:
BBY 261 İleri Programlama açık eğitim kaynağı, Orçun Madran tarafından CC BY 4.0 ile lisanslanmıştır.
- Başlık: BBY 261 İleri Programlama
- Konu: Programlama, Algoritma, Uygulama Geliştirme, İleri Uygulama
- Tanım: BBY261 İleri Programlama dersine hoşgeldiniz. Ders BBY162 Programlama ve Algoritmalar dersinin devamı niteliğinde olup Python programlama dili ve algoritma geliştirme ile ilgili genel bilgilere hakim olduğunuz varsayılmaktadır. BBY162 kodlu dersi almış olmasanız bile temel programlama ve algoritma geliştirme bilgisine sahipseniz dersi yürütebileceğiniz düşünülmektedir.
- Tip: Etkileşimli Kaynak, Etkinlik, Hareketli Görsel, Veri seti, Yazılım,
- Yaratıcı: Orçun Madran
- Yayıncı: Madran INC
- Katkı Sağlayan: Rafet Madran
- Lisans: CC BY 4.0
- Tarih: 2021-04-26
- Dil: tr
- Biçim: PDF, MP4
- Tanımlayıcı: https://madran.net/bby-261-ileri-programlama/
- Hedef Kitle: Ortaöğretim, Yükseköğretim, Yaşam Boyu Öğrenme,
- Eğitsel Kullanım: Bireysel öğrenme,
- Erişilebilirlik Özelliği: Görsel, İşitsel, Metinsel,
- İhtiyaç Duyulan Süre: 14