Skip to content

acetinkaya/Python-Google-Colab-Algoritmalar-ve-Veri-Yapilari-Egitimi

Repository files navigation

Python + Google Colab: Algoritmalar ve Veri Yapıları Eğitimi (Sıfırdan İleriye)

alternatif metin

Öğr. Gör. Ali ÇETİNKAYA - Ocak 2025

“Makine Düşünebilir mi ve Nasıl Düşünebilir? (Arf, 1959)”


Veri Yapıları ve Algoritma Kavramı // Concept of Data Structures and Algorithms


Teknoloji, yazılım ve algoritma geliştirmeyi her yaştan ve her meslekten insan öğrenmeli!

Yazılımın geleceği, ekosistemlerde şekilleniyor.

Sanayinin yazılımcı ihtiyacı giderek artıyor... Peki çözüm ne olmalı?

Yazılımda inovasyonun başarısı, sürdürülebilirlikte saklıdır. Bunun için;

1. Algoritma geliştirmeyi yaşamınızın merkezine koymak kritik bir öneme sahiptir.
2. Geliştirilen algoritmaların sisteme entegre edilebilir olması gereklidir.
3. Fikri mülkiyet haklarınızı (TPMK Fikri ve Sınai Mülkiyet Hakları) almak ve korumak, sürdürülebilir başarı için önemlidir.

Eğitimin Hedefleri:

1. Yazılım Geliştirme Farkındalığı:

* Yazılım geliştirme alanında temel farkındalık oluşturmak,
* Eğitim sürecinde sıfırdan ileri seviyeye geçiş yapmalarını sağlamak,
* Teorik bilgiyle sınırlı kalmış yazılım becerilerini, güncel ekosistemler ile pratik uygulamalar geliştirmek.

2. Algoritma Odaklı Yaklaşım:

* Klasik konu anlatımının ötesine geçerek, uygulama odaklı bir eğitim sunmak,
* Python tabanlı algoritmalar geliştirmeye odaklanmak.

Eğitimin Kazanımları

1. Açık Kaynak Geliştiriciliğin Önemi:

* Algoritma geliştirme süreçlerinde açık kaynak ekosisteminin önemini anlama ve bu ekosistemde aktif bir rol oynama bilinci.

2. Veri ile Çalışarak Veriyi Tanıma ve Problem Çözme:

* Algoritma geliştirme süreçlerinde, gerçek verilerle çalışırken karşılaşılan sorunlara yaratıcı ve etkin çözümler üretebilme.

3. Veri ile Çalışarak Veriyi Tanıma ve Problem Çözme:

* Algoritma geliştirme süreçlerinde Türkçe verilerin işlenmesinin önemini kavrama ve bu verilerle etkili çalışabilme becerisi.

Tablo 1. Yazılım, algoritma, programlama, robotik ve yapay zeka alanındaki tarihi teknoloji gelişimlerin listesi (Kaynaklar aşağıda belirtilmiştir.)

El-Harezmi -> Harzemli algoritmaların geliştirimesi üzerindeki çalışmaları nedeniyle bilimde algoritmaların mucidi olarak geçmektedir. Algoritma ismi Harzemlinin isminden türetilmiştir. Matematik üzerinede önemli katkıları olan Harzemli cebirinde kurucusudur. Cebir kitabında denklem kurulması ve kareköklü ifadelerin çözümünü ve algoritmasını ele almıştır.

alternatif metin

alternatif metin


DERS PLANI -->

DERS 0. Eğitim Tanıtımı

DERS 1. Giriş

1.1. Eğitim İçeriği

1.2. Eğitmen Hakkında

1.3. Eğitim Ders Notları ve Proje Alt Yapısı

1.4. Yazılım Geliştirmede Veri Yapıları ve Algoritmalar Dersinin Kapsamı ve Önemi

1.5. Yazılım Sektöründe Platform Kullanımının Önemi Google, Colab, GitHub & LinkedIn

1.6. Algoritma ve Yazılım Geliştirme Alanlarında Tarihi Gelişimler ve Dönüm Noktaları

1.7. Peki Neden Python Programlama Dili?

1.8. Eğitime Nasıl Çalışmalıyız ve Ne kadar Zaman Ayırmalıyız?

DERS 2. Kurulumlar ve Hazırlıklar

2.3. Google Colab, Google Drive ve Github Ayarları

2.4. Google Drive 1-2

2.5. Google Colab 1-2

2.6. Github 1-2-3

2.7. linkedin

DERS 3. Python Programlama Dilindeki Değişkenler ve Veri Türleri

3.1. Google Colab Platform İşlemleri

3.2. Değişkenler ve Veri Türlerine Giriş

3.3. Python Veri Tipleri ve Python Fonksiyonları

3.4. Google Colab üzerinde uygulama - 1

3.5. Google Colab üzerinde uygulama – 2

4.1. Veri Türleri

 4.1.1. Integer (int) Veri Türü  
 4.1.2. Float (float) Veri Türü  
 4.1.3. String (str) Veri Türü  
 4.1.4. Boolean (bool) Veri Türü  

4.2. Operatör Nedir?

 4.2.1. Aritmetik Operatörler   
 4.2.2. Karşılaştırma Operatörleri   
 4.2.3. Mantıksal Operatörler   
 4.2.4. Atama Operatörleri    
 4.2.5. Bit Düzeyinde Operatörler     

4.3. Operatör Önceliği

4.4. ASCII Tablosu

4.5. Uygulamalı Örnekler ve Alıştırmalar

5.1. Kullanılan Operatörlerlerin Tam Listesi

5.2. Algoritmalarda Kullanılan Tanım ve Kavramlar

5.3. Algoritma Hazırlama Süreci

6.1. Akış Diyagramı Nedir?

 6.1.1. Akış diyagramlarının faydaları    
 6.1.2 Akış Diyagramında Kullanılan Çizimler   
 6.1.3 Akış Diyagramı Oluşturma Adımları    
 6.1.4 Akış Diyagramı Çizim Araçları   
    * Lucidchart    
    * Draw.io   
    * Microsoft Visio    
    * Diagrams.net   

6.2. Akış Diyagramı Çizim Uygulamasının Gerçekleştirilmesi

Ders 7. Algoritma Geliştirme: Sıralı, Koşullu ve Tekrarlı Yapılar

7.1. Sıralı, Koşullu ve Tekrarlı Yapılar

7.2. Python Programlama Dili Üzerinde Sıralı Yapılar

7.3. Python Programlama Dili Üzerinde Koşul Yapıları

7.4. Python Programlama Dili Üzerinde Döngü Yapıları

7.5. Python Programlama Dili Üzerinde Sıralı, Koşul & Döngü Örnekleri

Ders 8. Python Programlama Dili Üzerinde İstisnalar & Hata Yönetimi

Ders 9. Python Programlama Dili Üzerinde Dizi, Liste, Demet, Sözlük Yapılarının Kullanımı ve Örnekleri

9.1. Python Programlama Dili Üzerinde Liste - Dizi Yapısı ve İşlemleri

9.2. Python Programlama Dili Üzerinde Demet Yapısı ve İşlemleri

9.3. Python Programlama Dili Üzerinde Sözlük Yapısı ve İşlemleri

Ders 10. Python Programlama Dili Üzerinde Fonksiyon Kullanımı ve Örnekleri

Ders 11. Python Programlama Dili Üzerinde Gömülü Fonksiyonlar

Ders 12. Python Programlama Dili üzerinde Dosya İşlemleri

########### 2. Kısım ###########

Ders 13. Sıralama Algoritmaları

Ders 14. Arama Algoritmaları

Ders 15. Graf Algoritmaları

Ders 16. Yığın, Kuyruk ve Bağlantılı Liste Yapısı

Ders 17. Grafik Programlama

Ders 18. Gelişmiş Veri Yapıları ve Uygulamalar

Ders 19. Dinamik Programlama

Ders 20. Hash Tabloları ve Hash Fonksiyonları

Ders 21. Python’da Yerleşik Veri Koleksiyonları ve Özel Yapılar

Ders 22. Büyük O Notasyonu ve Algoritma Analizi

Ders 23. Python’da Multithreading ve Paralel Programlama

Ders 24. Python’da Veri Görselleştirme İşlemleri

Ders 25. Yapay Zeka ve Veri Bilimi Uygulamaları İçin Veri Yapılarının Önemi


Python + Google Colab: Algoritmalar ve Veri Yapıları Eğitimi (Sıfırdan İleriye) - 2025

alternatif metin

Öğr. Gör. Ali ÇETİNKAYA - Ocak 2025


Hz. Mevlana'nın sözüyle eğitim serimize başlıyoruz.

Mum olmak kolay değildir !! 
Işık saçmak için önce yanmak gerekir.
                          Hz. Mevlana

Python + Google Colab: Algoritmalar ve Veri Yapıları Eğitimi (Sıfırdan İleriye) - 2025


Bu Çalışmayı Oluşturulması İçin Kullanılan Referans Kaynaklar:

NOT: Bu kitaplar ülkemizin algoritma, veri yapıları, programlama ve yapay zeka alanında ortaya çıkardığı çalışmalardan önemli kaynaklardır. Her yazılımcının, mezun ve / veye öğrencilerinin mutlaka kütüphanelerinde olması gereken kitaplardır.


  1. Ord. Prof. Dr. Cahit ARF, "Makine düşünebilir mi ve nasıl düşünebilir", Atatürk Üniversitesi-Üniversite Çalışmalarını Muhite Yayma ve Halk Eğitimi Yayınları Konferanslar Serisi, (1), 91-103. Erzurum, 1959.

  2. Prof. Dr. Murat GÖK, "Makine Öğrenmesi Algoritmaları", Nobel Akademik Yayıncılık, Ankara, 2024.

  3. Prof. Dr. Vasıf NABİYEV, "Teoriden Uygulamalara Algoritmalar", Seçkin Yayınları, Ankara, 2011.

  4. Prof. Dr. Vasıf NABİYEV, "Yapay zeka: insan-bilgisayar etkileşimi", Seçkin Yayınları, Ankara, 2021.

  5. Prof. Dr. Ali OKATAN, Tamer KARATEKİN, Dr. Kağan OKATAN, "100 Sayfada Makine Öğrenmesi Kitabı", Papatya Bilim Yayıncılık, İstanbul, 2020.

  6. Prof. Dr. Vasıf NABİYEV, "Teoriden Uygulamalara Algoritmalar", Seçkin Yayınları, Ankara, 2011.

  7. Prof. Dr. Ercan Nurcan YILMAZ & Dr. Öğr. Üyesi Serkan GÖNEN, "Örneklerle Uygulamalı C ve C++ - 2023", İstanbul Gelişim Üniversitesi Yayınları, İstanbul, 2023.

  8. Prof. Dr. Çetin ELMAS, "Yapay Zeka Uygulamaları", Seçkin Yayıncılık, İstanbul, 2021.

  9. Prof. Dr. Şadi Evren ŞEKER, "Algoritmalar", Nobel Akademik Yayıncılık, Ankara, 2021.

  10. Prof. Dr. Eşref ADALI, "Bilişim Etiği ve Hukuku", İTÜ Ulusal Yazılım ve Sertifikasyon Merkezi, İstanbul, 2017.

  11. Doç. Dr. Yılmaz KAYA, "Python ile Veri YAPILARI ve ALGORİTMA ANALİZİ", Nobel Yayınevi, Ankara, 2023.

  12. Dr. Atınç YILMAZ, Öğr. Gör. Umut KAYA, "Derin Öğrenme", KODLAB Yayıncılık, İstanbul, 2022.

  13. Dr. Yalçın ÖZKAN, "Uygulamalı Derin Öğrenme", Papatya Bilim Yayıncılık, İstanbul, 2021.

  14. Dr. Andriy BURKOV, "The hundred-page machine learning" book (Vol. 1, p. 32). Quebec City, QC, Canada: Andriy Burkov, 2019.

  15. Dr. Öğr. Üyesi Fahri VATANSEVER, "Algoritma Geliştirme ve Programlamaya Giriş", Seçkin Yayınları, Ankara, 2009.

  16. Dr. Öğr. Üyesi Selçuk ALP & Arzu KİLİTCİ, "Algoritmalar ve Programlamaya Giriş", Umuttepe Yayınları, Kocaeli, 2015.

  17. Dr. Öğr. Üyesi Ebubekir YAŞAR, "Algoritma Ve Programlamaya Giriş", Ekin Basım Yayın, Bursa, 2015.

  18. Öğr. Gör. Ali ÇETİNKAYA, "Bulanık Mantık ve Python Uygulamaları". İstanbul Gelişim Üniversitesi Yayınları, 2023.

  19. Öğr. Gör. Tuğba SARAY ÇETİNKAYA & Öğr. Gör. Ali ÇETİNKAYA, Algorithm Design in Programming Language Education - Özgür Yayınları, Gaziantep, 2023.

  20. Öğr. Gör. Ali ÇETİNKAYA, Mühendislik Alanında Yapay Zeka (YZ) İçerikli Araştırmalarda Yaklaşımlar - Serüven Yayınevi, İzmir, 2022.

  21. Öğr. Gör. Ali ÇETİNKAYA, Approaches with Artificial Intelligence (AI) Algorithms to Smart System Works - Platanus Publishing, Ankara, 2023.

  22. Öğr. Gör. Ali ÇETİNKAYA’nın internet sayfaları:

    https://scholar.google.com.tr/citations?hl=tr&user=XSEW-NcAAAAJ  
    https://avesis.gelisim.edu.tr/alcetinkaya
    https://github.com/acetinkaya/
    https://alicetinkaya.site/    
    

Tablo 1 içerisinde yer alan çalışmaların referans kaynak listesi:

  1. Arf, C. (1959). Makine Düşünebilir mi ve Nasıl Düşünebilir?. Atatürk Üniversitesi 1958-1959 Öğretim Yılı Halk Konferansları, (1), 91-103.
  2. Widrow, B., & Hoff, M. E. (1960). Adaptative Switching Circuits. Wetscon Convention Record. Institute for Research and Education. New York.
  3. Zadeh, L. A. (1965). Fuzzy sets. Information and control, 8(3), 338-353.
  4. Brezina, C. (2006). Al-Khwarizmi: The inventor of algebra. The Rosen Publishing Group.
  5. Campbell, M., Hoane Jr, A. J., & Hsu, F. H. (2002). Deep blue. Artificial intelligence, 134(1-2), 57-83.
  6. Allahverdi, N. (2002). Uzman Sistemler Bir Yapay Zeka Uygulaması, Atlas Yayın Dağıtım, Ankara.
  7. James, W. (1984). Psychology, briefer course (Vol. 14). Harvard University Press.
  8. Nilsson NJ (1965). Foundations of trainable pattern classifying systems. McGraw-Hill, New York
  9. Taştan, A. (2001). Nasreddin Tusi: hayatı, eserleri, din ve toplum Görüşü. Erciyes Üniversitesi Sosyal Bilimler Enstitüsü Dergisi, 1(11), 1-13.
  10. Hebb, D. O. (1949). The first stage of perception: growth of the assembly. The Organization of Behavior, 4, 60-78.
  11. Farley, B. W. A. C., & Clark, W. D. (1954). Simulation of self-organizing systems by digital computer. Transactions of the IRE Professional Group on Information Theory, 4(4), 76-84.
  12. Uyanık, M. (2022). El-Hârezmî Ebû Ca‘Fer Muhammed B. Mûsâ. Bilgeler ve Bilginler: Cumhuriyetin 100. Yılına Armağan, Türk Kültürüne Hizmet Vakfı Yayın Evi, 250.
  13. McCulloch, W. S., & Pitts, W. (1943). A logical calculus of the ideas immanent in nervous activity. The bulletin of mathematical biophysics, 5(4), 115-133.
  14. Yang, S., Lee, J., Sezgin, E., Bridge, J., & Lin, S. (2021). Clinical Advice by Voice Assistants on Postpartum Depression: Cross-Sectional Investigation Using Apple Siri, Amazon Alexa, Google Assistant, and Microsoft Cortana. JMIR mHealth and uHealth, 9(1), e24045. https://doi.org/10.2196/24045
  15. McFarlane, M. D. (1972). Digital pictures fifty years ago. Proceedings of the IEEE, 60(7), 768-770.
  16. Turing, A. M. (1940). Mathematical theory of enigma machine. Public Record Office, London, 3, 150.
  17. Turing, A. M. (1948). Intelligent machinery. report for national physical laboratory. reprinted in ince, dc (editor). 1992. mechanical intelligence: Collected works of am turing.
  18. McCarthy, J. (1955). Human-Level Ai Is Harder Than It Seemed.
  19. Rosenblatt, F. (1957). The perceptron, a perceiving and recognizing automaton Project Para. Cornell Aeronautical Laboratory.
  20. Krizhevsky, A., Sutskever, I., & Hinton, G. E. (2017). Imagenet classification with deep convolutional neural networks. Communications of the ACM, 60(6), 84-90.
  21. Goodfellow, I., Pouget-Abadie, J., Mirza, M., Xu, B., Warde-Farley, D., Ozair, S., ... & Bengio, Y. (2020). Generative adversarial networks. Communications of the ACM, 63(11), 139-144.
  22. Özşahin, M. S. (2017). Türk minyatür tekniği ile çizgi roman tasarımı (Master's thesis). Kütahya Dumlupınar Üniversitesi, Sosyal Bilimler Enstitüsü.
  23. Devlin, J., Chang, M. W., Lee, K., & Toutanova, K. (2018). Bert: Pre-training of deep bidirectional transformers for language understanding. arXiv preprint arXiv:1810.04805.
  24. Radford, A., Wu, J., Child, R., Luan, D., Amodei, D., & Sutskever, I. (2019). Language models are unsupervised multitask learners. OpenAI blog, 1(8), 9.
  25. Ramesh, A., Pavlov, M., Goh, G., Gray, S., Voss, C., Radford, A., ... & Sutskever, I. (2021). Zero-shot text-to-image generation. In International Conference on Machine Learning (pp. 8821-8831). PMLR.
  26. Topdemir, H. G. (2022). Takiyüddin İbn Ma'ruf. Bilgeler ve Bilginler: Cumhuriyetin 100. Yılına Armağan, Türk Kültürüne Hizmet Vakfı Yayın Evi, 524.
  27. LeCun, Y., Bottou, L., Bengio, Y., & Haffner, P. (1998). Gradient-based learning applied to document recognition. Proceedings of the IEEE, 86(11), 2278-2324.
  28. Vacroux, A. G. (1975). Microcomputers. Scientific American, 232(5), 32-41.
  29. Deng, J., Dong, W., Socher, R., Li, L. J., Li, K., & Fei-Fei, L. (2009). Imagenet: A large-scale hierarchical image database. In 2009 IEEE conference on computer vision and pattern recognition (pp. 248-255). Ieee.
  30. Çırak, B., & Yörük, A. (2016). Mekatronik biliminin öncüsü İsmail El-Cezeri. Siirt Üniversitesi Sosyal Bilimler Enstitüsü Dergisi, (4), 175-194.
  31. Kato, I., Ohteru, S., Shirai, K., Matsushima, T., Narita, S., Sugano, S., ... & Fujisawa, E. (1987). The robot musician ‘wabot-2’(waseda robot-2). Robotics, 3(2), 143-155.
  32. Spenko, M., Buerger, S., & Iagnemma, K. (Eds.). (2018). The DARPA robotics challenge finals: humanoid robots to the rescue (Vol. 121). Springer.
  33. Lin, R., Ma, L., & Zhang, W. (2018). An interview study exploring Tesla drivers' behavioural adaptation. Applied ergonomics, 72, 37-47.
  34. Google, (2017). Teachable machine v1. https://teachablemachine.withgoogle.com/v1/ Son Erişim Tarihi: 19.12.2022
  35. Yang, Z., Gan, Z., Wang, J., Hu, X., Lu, Y., Liu, Z., & Wang, L. (2022). An empirical study of gpt-3 for few-shot knowledge-based vqa. In Proceedings of the AAAI Conference on Artificial Intelligence (Vol. 36, No. 3, pp. 3081-3089).

Bu Github paylaşımının IEEE ve APA formatlarınada atıf verilme şekli:

IEEE--> A. Cetinkaya, "Python + Google Colab: Algoritmalar ve Veri Yapıları Eğitimi" GitHub, [Online]. Erişim Linki: https://github.com/acetinkaya/Python-Google-Colab-Algoritmalar-ve-Veri-Yapilari-Egitimi. Son Erişim Tarihi: Gün Ay Yıl.

APA--> Cetinkaya, A. (2024). Python + Google Colab: Algoritmalar ve Veri Yapıları Eğitimi [GitHub Deposu]. GitHub. Erişim Linki: https://github.com/acetinkaya/Python-Google-Colab-Algoritmalar-ve-Veri-Yapilari-Egitimi. Son Erişim Tarihi: Gün Ay Yıl.


Yukarıdaki bilgi, resim ve kod çalışmaları açık kaynak paylaşım olarak GitHub "acetinkaya" alanında paylaşımı yapılmıştır.

Proje Durumu: İlgili paylaşımlar ve Python programlama dilinde yazılmış yazılım kodlarına sürüm güncellemeleri yaptıkça bu paylaşımları güncelleyeceğiz. GitHub bölümünden beğeni bildirimi olarak bir yıldız vererek çalışmalarımı destekleyebilirsiniz. Bilgi paylaşıldıkça büyür ve gelişir.

Katkıda Bulunma: Fork - Çekme istekleri memnuniyetle karşılanır. Büyük değişiklikler için lütfen önce neyi değiştirmek istediğinizi görüşmek üzere ilgili Python kodunu belirttiğiniz bir soru - yanıt bölümü açın. Bilgi paylaşıldıkça çoğalır ve gelişir. İyi çalışmalar dilerim.

Yazar ve Güncelleme Yapan: Öğr. Gör. Ali Çetinkaya (MSc.) - 2025


The above information, images, and code examples are shared as open-source content on GitHub under the "acetinkaya" account.

Project Status: The relevant posts and software codes written in the Python programming language will be updated as new versions are released. You can support my work by giving a star to the repository on GitHub. Knowledge grows and develops as it is shared.

Contributing: Forks and pull requests are warmly welcomed. For major changes, please first open a question-answer thread indicating which Python code you want to modify to discuss your proposal. Knowledge multiplies and improves when shared. Best wishes for your work!

Author and Maintainer: Lect. Ali Cetinkaya (MSc.) - 2025


Releases

No releases published

Packages

No packages published