Data Structures and Algorithms Specialization Course Syllabus
Full curriculum breakdown — modules, lessons, estimated time, and outcomes.
Bu uzmanlık alanı, algoritmik teknikler ve veri yapıları konularında kapsamlı ve pratik bir öğrenme deneyimi sunar. Toplamda yaklaşık 206 saatlik içerikle, öğrenenler hem teorik bilgi hem de uygulamalı problem çözme becerileri kazanır. Her modül, programlama ödevleri ve algoritmik bulmacalarla desteklenerek öğrenmenin pekiştirilmesi hedeflenir. Esnek hızlandırma sayesinde çalışan profesyoneller ve öğrenciler kendi tempolarında ilerleyebilir.
Module 1: Algorithmic Toolbox
Estimated time: 20 hours
- Algoritmik tekniklere giriş ve problem çözme stratejileri
- Sıralama ve arama algoritmaları
- Böl ve yönet yaklaşımı
- Dinamik programlama
- Greedy (açgözlü) algoritmalar
Module 2: Data Structures
Estimated time: 22 hours
- Diziler ve bağlı listeler
- Yığınlar ve kuyruklar
- Ağaç yapıları ve uygulamaları
- Hash tabloları ve karma işlevler
Module 3: Algorithms on Graphs
Estimated time: 54 hours
- Graf temelleri ve gösterim yöntemleri
- En kısa yol algoritmaları
- Kapsayan ağaçlar
- Akış şebekeleri ve uygulamaları
Module 4: Algorithms on Strings
Estimated time: 30 hours
- String işleme algoritmaları
- Desen eşleştirme teknikleri
- Son ek dizileri (suffix arrays)
- Trie yapıları ve biyoinformatik uygulamaları
Module 5: Advanced Algorithms and Complexity
Estimated time: 30 hours
- NP-tamlık ve hesaplama karmaşıklığı
- Yaklaşım algoritmaları
- Doğrusal programlama ve optimizasyon
Module 6: Final Project
Estimated time: 20 hours
- Genom sekans verilerinden genom montajı
- Algoritmik çözümlerin uygulanması
- Performans analizi ve raporlama
Prerequisites
- Programlamaya giriş bilgisi (özellikle Python veya C++)
- Temel matematiksel muhakeme becerisi
- Daha önce programlama deneyimi olması tavsiye edilir
What You'll Be Able to Do After
- Karmaşık problemlere algoritmik çözümler geliştirme
- Veri yapılarını gerçek dünya senaryolarında etkin kullanma
- Genom analizi gibi biyoinformatik problemlerine algoritma uygulama
- Algoritmaları hata ayıklama ve performans için iyileştirme
- Teknik mülakatlarda başarılı olmak için gerekli becerileri kazanma