İşte istediğiniz yapı ve formata uygun olarak hazırlanmış, bilgisayar mühendisliği yüksek lisans bilim sınavı Test 1 için ders notu:
🎓 bilgisayar mühendisliği yüksek lisans bilim sınavı Test 1 - Ders Notu
Bu ders notu, bilgisayar mühendisliği yüksek lisans bilim sınavı Test 1'de karşılaşabileceğiniz temel konuları kapsamaktadır. Özellikle veri yapıları, algoritmalar, ayrık matematik ve olasılık konularına odaklanılmıştır.
📌 Veri Yapıları
Veri yapıları, verilerin bellekte nasıl organize edildiğini ve saklandığını tanımlar. Doğru veri yapısını seçmek, programın verimliliği açısından kritik öneme sahiptir.
- Diziler (Arrays): Aynı türden elemanların sıralı bir koleksiyonudur.
- Bağlı Listeler (Linked Lists): Her elemanın (düğüm) bir sonraki elemanın adresini tuttuğu doğrusal veri yapısıdır.
- Yığınlar (Stacks): Son giren ilk çıkar (LIFO) prensibine göre çalışır.
- Kuyruklar (Queues): İlk giren ilk çıkar (FIFO) prensibine göre çalışır.
- Ağaçlar (Trees): Hiyerarşik veri yapısıdır. Kök (root), düğüm (node) ve yaprak (leaf) gibi terimleri içerir. Özellikle ikili ağaçlar (binary trees) önemlidir.
- Graflar (Graphs): Düğümler (vertices) ve kenarlar (edges) arasındaki ilişkileri temsil eder.
- Hash Tabloları (Hash Tables): Anahtar-değer çiftlerini saklamak için kullanılır. Hızlı erişim sağlar.
⚠️ Dikkat: Her veri yapısının avantajları ve dezavantajları vardır. Hangi veri yapısının hangi problem için uygun olduğunu bilmek önemlidir.
📌 Algoritmalar
Algoritmalar, belirli bir problemi çözmek için izlenen adımlar dizisidir. Algoritma analizi, algoritmanın zaman ve bellek karmaşıklığını değerlendirmeyi içerir.
- Sıralama Algoritmaları (Sorting Algorithms):
- Kabarcık Sıralaması (Bubble Sort): Basit ama verimsiz bir sıralama algoritmasıdır.
- Seçmeli Sıralama (Selection Sort): En küçük elemanı bulup başa taşır.
- Ekleme Sıralaması (Insertion Sort): Elemanları sıralı bir şekilde yerleştirir.
- Birleştirme Sıralaması (Merge Sort): Böl ve yönet yaklaşımını kullanır.
- Hızlı Sıralama (Quick Sort): Ortalama durumda çok hızlıdır.
- Arama Algoritmaları (Searching Algorithms):
- Doğrusal Arama (Linear Search): Diziyi baştan sona tarar.
- İkili Arama (Binary Search): Sıralı dizilerde çok hızlıdır.
- Graf Algoritmaları:
- En Kısa Yol Algoritmaları (Shortest Path Algorithms): Dijkstra ve Bellman-Ford algoritmaları.
- Minimum Yayılım Ağacı Algoritmaları (Minimum Spanning Tree Algorithms): Prim ve Kruskal algoritmaları.
💡 İpucu: Algoritmaların zaman karmaşıklığı (Big O notasyonu) kavramını iyi anlamak önemlidir. Örneğin, $O(n)$, $O(log n)$, $O(n^2)$ gibi.
📌 Ayrık Matematik
Ayrık matematik, sürekli olmayan matematiksel yapıları inceler. Bilgisayar biliminin temelini oluşturur.
- Mantık (Logic): Önermeler, niceleyiciler, çıkarım kuralları.
- Kümeler (Sets): Kümeler, alt kümeler, kümeler arası işlemler (birleşim, kesişim, fark).
- Fonksiyonlar (Functions): Birebir (one-to-one), örten (onto) fonksiyonlar.
- İlişkiler (Relations): Denklik bağıntıları (equivalence relations).
- Sayma (Counting): Permütasyonlar, kombinasyonlar. Örneğin, $C(n, k) = \frac{n!}{k!(n-k)!}$.
- Graf Teorisi (Graph Theory): Graflar, ağaçlar, döngüler.
⚠️ Dikkat: Mantık kurallarını ve küme işlemlerini iyi bilmek, birçok problemi çözmede yardımcı olur.
📌 Olasılık
Olasılık, bir olayın gerçekleşme ihtimalini ölçer. Rastgele değişkenler ve olasılık dağılımları önemlidir.
- Temel Olasılık Kavramları: Olay, örneklem uzayı, olasılık tanımı.
- Koşullu Olasılık (Conditional Probability): $P(A|B) = \frac{P(A \cap B)}{P(B)}$.
- Bağımsız Olaylar (Independent Events): $P(A \cap B) = P(A)P(B)$.
- Rastgele Değişkenler (Random Variables): Kesikli ve sürekli rastgele değişkenler.
- Olasılık Dağılımları (Probability Distributions): Bernoulli, Binom, Poisson, Normal dağılımları.
- Beklenen Değer (Expected Value): $E(X) = \sum xP(x)$.
- Varyans (Variance): $Var(X) = E[(X - E(X))^2]$.
💡 İpucu: Olasılık problemlerini çözerken, olayın tanımını doğru yapmak ve uygun formülü kullanmak önemlidir.