Önlisans Düzeyi · Temel→Orta

C# ile Programlama & OOP · Programlama II

Temel yapılardan nesne yönelimli kavramlara, koleksiyonlardan hata yönetimine uzanan, uygulamalı bir yolculuk. Modern müfredat, örnek odaklı anlatım ve temiz kod kültürü.

Neden bu eğitim?
  • C# ve OOP temelleri ile modüler, sürdürülebilir yazılım geliştirme becerisi kazanma.
  • Gerçek dünya problemlerine algoritmik çözümler geliştirme.
  • Koleksiyonlar, arayüzler, kalıtım ve hata yönetimi gibi pratik başlıklar.
  • Kod stili: İngilizce isimler + Türkçe açıklamalar.

Eğitim Hakkında

Genel Bakış

Bu ders, C# programlama dili ile temel ve orta seviye programlama konularını; nesne yönelimli programlama (OOP) kavramlarını teori ve uygulama ile bütüncül bir yaklaşımla öğretmeyi hedefler. Öğrenciler; veri tipleri, akış kontrolü, koleksiyonlar, arayüzler, kalıtım, hata yönetimi ve UML diyagramlarını kapsayan bir müfredatla ilerler.

Her bölümde kazanılan bilgi, sonraki bölümlerde tekrarlı ve bütünleşik biçimde kullanılır. Kodlama sırasında değişken/üye/işlev adları İngilizce, açıklama satırları Türkçe yazılır.

İçerik

Müfredat
2. C# Giriş
  • 2.1 Giriş
  • 2.2 C# Genel Bakış
  • 2.3 C# Tarihçesi
  • 2.4 Uygulama Modelleri
  • 2.5 C#’ın Avantajları
  • 2.6 İlk Program
  • 2.7 Proje Ekleme
  • 2.8 Tip Güvenliği
  • 2.9 Null ve Nullable
3. Programcılığa Giriş
  • 3.1 Giriş
  • 3.2 Algoritmalar ve Akış Şemaları
  • 3.3 Değişkenler
  • 3.4 Aritmetik Operatörler
  • 3.5 Karşılaştırma Operatörleri
  • 3.6 Mantıksal Operatörler
  • 3.7 Atama Operatörleri
4. Veri Tipleri
  • 4.1 Giriş
  • 4.2 Yerleşik Veri Türleri
  • 4.3 Yerleşik Veri Türü Uygulaması
  • 4.4 İşaretli ve İşaretsiz Veri Türleri
  • 4.5 İşaretli ve İşaretsiz Veri Türleri Uygulaması
  • 4.6 Değer ve Referans Tipler
  • 4.7 Değer ve Referans Tipler Uygulaması
  • 4.8 Kutulama ve Kutudan Çıkarma
5. Dizi Kavramları ve Döngüler
  • 5.1 Giriş
  • 5.2 Dizi
  • 5.3 for Döngüsü
  • 5.4 foreach
  • 5.5 while Döngüsü
  • 5.6 do-while Döngüsü
  • 5.7 Proje Oluşturma
  • 5.8 Ortalama Hesabı
  • 5.9 Minimum ve Maksimum Notlar
  • 5.10 Ortalamanın Üstündeki Not Sayısı
6. String Veri Yapısı
  • 6.1 Giriş
  • 6.2 String Veri Türü
  • 6.3 String–Char İlişkisi
  • 6.4 String Birleştirme
  • 6.5 Kaçış İfadeleri ve Verbatim
  • 6.6 String Karşılaştırma
  • 6.7 String Sıralama
  • 6.8 String Formatlama
  • 6.9 StringBuilder
7. Nesne Yapısı 1
  • 7.1 Giriş
  • 7.2 Programlama Paradigmaları
  • 7.3 Prosedürel Programlama Paradigması
  • 7.4 Nesne Yönelimli Programlamanın Temelleri
  • 7.5 Sınıf Kavramı
  • 7.6 Kapsülleme
  • 7.7 Sınıf Diyagramı
  • 7.8 Soyutlama
  • 7.9 Yapıcı Metodun Aşırı Yüklenmesi
  • 7.10 UML Diyagramları
8. Nesne Yapısı 2
  • 8.1 Giriş
  • 8.2 Bilgi Gizleme
  • 8.3 Basit Kalıtım
  • 8.4 virtual ve override
  • 8.5 namespace
  • 8.6 Hiyerarşik Kalıtım
  • 8.7 Hiyerarşik Kalıtım
9. Arayüz (interface) Yapısı
  • 9.1 Giriş
  • 9.2 Arayüz Kavramı
  • 9.3 Arayüz Tanımlama ve Uygulama
  • 9.4 Arayüz Uygulaması
  • 9.5 Arayüz ve Davranış İlişkisi
  • 9.6 Yerleşik Arayüz Uygulaması
  • 9.7 Arayüzlerin Referans Tutması
  • 9.8 Çoklu Arayüz Kalıtımı
  • 9.9 Interface Karşılaştırma
10. Kalıtım ve Abstract Yapı
  • 10.1 Giriş
  • 10.2 Soyut Sınıflar
  • 10.3 Soyut Sınıf Tanımı
  • 10.4 Soyut Sınıfı Kalıtma
  • 10.5 Soyut Sınıfı Kalıtma
  • 10.6 Soyut Sınıfın Kullanılması
  • 10.7 Soyut Sınıfların Karşılaştırılması
11. Erişim Bildirgeç Sistemi ve Koleksiyon Temel Yapısı
  • 11.1 Giriş
  • 11.2 Erişim Belirteçleri
  • 11.3 Sınıf Kütüphanesi
  • 11.4 Projeler Arası Erişim Belirteçlerinin Kullanımı
  • 11.5 Nesnelere Erişim
  • 11.6 Koleksiyonlar
  • 11.7 Koleksiyonlarda Temel İşlemler
  • 11.8 Koleksiyonların Sınıf İçi Kullanımı
12. Yapıcı Bloklar, Değer ve Referans Tipler
  • 12.1 Giriş
  • 12.2 Yapıcı Metotlar
  • 12.3 Yapıcı Metot Uygulaması
  • 12.4 struct ve class
  • 12.5 struct ve class Uygulaması
  • 12.6 static
  • 12.7 static Sınıf Uygulaması
13. Koleksiyonlar
  • 13.1 Giriş
  • 13.2 List Koleksiyonu
  • 13.3 ArrayList
  • 13.4 Basit List Örneği
  • 13.5 List ve Nesne Yaklaşımı
  • 13.6 Generic
  • 13.7 Generic Uygulama
  • 13.8 LinkedList Koleksiyonu
  • 13.9 Stack Koleksiyonu
  • 13.10 Queue Koleksiyonu
14. Koleksiyonlar (2)
  • 14.1 Giriş
  • 14.2 Dictionary Koleksiyonu
  • 14.3 Dictionary Uygulaması
  • 14.4 SortedList Koleksiyonu
  • 14.5 SortedList Uygulaması
  • 14.6 SortedList ve Soyutlama
  • 14.7 ObservableCollection
  • 14.8 ObservableCollection Uygulaması
  • 14.9 HashSet
  • 14.10 HashSet Genel Bakış
  • 14.11 HashSet Uygulaması
15. Hata Yönetimi
  • 15.1 Giriş
  • 15.2 Hata Yönetimi
  • 15.3 try-catch-finally
  • 15.4 Hata Mesajları
  • 15.5 Hata Sınıfları Hazırlama
  • 15.6 Özel Hata Sınıflarını Kullanma
  • 15.7 Sınıf İçi Hata Yönetimi

Eğitmen

Mentor
\"Doç.

Doç. Dr. Zafer CÖMERT

Samsun Üniversitesi, Mühendislik ve Doğa Bilimleri Fakültesi, Yazılım Mühendisliği Bölümü öğretim üyesi. Çalışma alanları arasında bilgisayar görüsü, işaret işleme, yapay zekâ, makine öğrenmesi ve derin öğrenme bulunmaktadır. Kariyerinde uluslararası indeksli yayınlar üretmiş; programlama, algoritmalar, yapay zekâ ve web teknolojileri dersleri vermiş; kamu kurumları ve Ar‑Ge şirketlerinde danışmanlık/yöneticilik deneyimleri edinmiştir.

Gereksinimler

Kurulum
  • Bilgisayar: Windows 10/11 veya macOS
  • Yazılım: .NET 8+ SDK, Visual Studio 2022 veya Visual Studio Code
  • İsteğe bağlı: Git ve bir sürüm kontrol hesabı
  • Zaman: Haftalık 5–7 saat (ders + pratik)

Kurulum Testi (C#):

// Türkçe Açıklama: Ortam doğrulama için basit C# kodu
using System;

class App
{
    static void Main()
    {
        // Türkçe Açıklama: Konsola bir mesaj yazdırılır
        Console.WriteLine("Merhaba, Programlama II!");
    }
}