Ders AdıKodu Yerel KrediAKTS Ders (saat/hafta)Uygulama (saat/hafta)Laboratuar (saat/hafta)
Sistem ProgramlamaMTM363236300
ÖnkoşullarYok
YarıyılGüz, Bahar
Dersin Diliİngilizce, Türkçe
Dersin SeviyesiLisans
Dersin TürüSeçmeli @ Matematik Mühendisliği Lisans Programı
Ders KategorisiUzmanlık/Alan Dersleri
Dersin Veriliş ŞekliYüz yüze
Dersi Sunan Akademik BirimMatematik Mühendisliği Bölümü
Dersin KoordinatörüAydın Seçer
Dersi Veren(ler)
Asistan(lar)ı
Dersin AmacıBu ders, öğrencilere sistem seviyesi programlama kavramlarına kapsamlı bir anlayış kazandırmayı amaçlar, böylece işletim sistemleri ve donanımla etkileşime giren etkin ve sağlam yazılım çözümleri geliştirebilirler.
Dersin İçeriğiC programlama temelleri, İşletim sistemleri, temel kavramlar, süreçler(Prosesler) ve işletim sistemi yapıları, (Proses) Süreç yönetimi, Interprocess Communication (IPC) ve işlemci planlama algoritmaları, Dosya sistemi, dosya yönetimi, dosya işlemleri ve ortak/statik kütüphaneler, Sistem çağrıları, hata yönetimi, hata kontrol mekanizmaları ve kernel/user mode geçişleri, Sinyaller, sinyal yakalama, işleme ve bellek yönetimi, İş parçacığı (thread) kavramı, kullanımı, yönetimi ve sanal bellek kavramları, İş parçacığı senkronizasyonu, mutex, semaforlar ve işletim sistemi/donanım etkileşimi, Ağ programlamaya giriş, soket programlama ve temel kavramlar, TCP ve UDP protokolleri ile soket programlama uygulamaları ve erişim kontrolü/güvenlik politikaları, Dinamik bellek yönetimi, bellek sızıntıları ve önleme yöntemleri, Çoklu platform desteği, POSIX API, uygulamaları ve optimizasyon teknikleri, Kabuk (shell) programlama, betikleri yazma, çalıştırma ve gelişmiş C dilinde programlama teknikleri.
Ders Kitabı / Malzemesi / Önerilen Kaynaklar
  • Kitap: Robert Love, Linux System Programming
  • Kitap: Robert Love, Linux Kernel Development
  • Kitap: Michael KerrisK, The Linux Programming Interface
  • Kitap: Kaiwan N. Billimoria, Hands‑On System Programming with Linux
  • Kitap: Modern Operating Systems (4th Edition) - Andrew S. Tanenbaum, Herbert Bos (ISBN-13: 978-0133591620)
  • Kitap: Programming with POSIX Threads - David R. Butenhof (ISBN-13: 978-0201633924)
  • Kitap: Operating System Concepts - Abraham Silberschatz, Peter B. Galvin, Greg Gagne (ISBN-13: 978-1119456339)
  • Online: Introduction to Operating Systems - Georgia Tech (Coursera): https://www.coursera.org/learn/introduction-operating-systems
  • Online: Linux System Programming Techniques & Concepts - Udemy: https://www.udemy.com/course/linux-system-programming/
Opsiyonel Program BileşenleriYok

Ders Öğrenim Çıktıları

  1. Öğrenciler, C programlama dilinin temellerini kullanarak etkili ve hatalı işlevselliği düşük yazılım çözümleri geliştirebilme yeteneğine sahip olacaktır.
  2. İşletim sistemleri, süreç yönetimi ve Interprocess Communication (IPC) gibi temel kavramları anlayarak, işlemci planlama algoritmalarının uygulanmasını ve performansını değerlendirebilecektir.
  3. Dosya sistemleri, dosya yönetimi ve sistem çağrıları gibi konularda bilgi sahibi olarak, işletim sistemleriyle etkileşime giren yazılımların etkinliğini ve güvenilirliğini sağlayabilecektir.
  4. İş parçacığı (thread) kavramını ve senkronizasyon tekniklerini kullanarak, paralel programlama ve çoklu görevli sistemlerde performansı optimize edebilme becerisine sahip olacaktır.
  5. Ağ programlama ve soket programlama temellerini kullanarak, güvenli ve etkili ağ iletişimi sağlayan uygulamalar geliştirebilme yeteneğine sahip olacaktır.

Ders Öğrenim Çıktısı & Program Çıktısı Matrisi

DÖÇ-1DÖÇ-2DÖÇ-3DÖÇ-4DÖÇ-5

Haftalık Konular ve İlgili Ön Hazırlık Çalışmaları

HaftaKonularÖn Hazırlık
1Ders tanıtımı, amaç, içerik, değerlendirme sistemi ve C programlama temelleriKaynak Kitaplar ve Çevirimiçi Materyaller
2İşletim sistemleri, temel kavramlar, süreçler ve işletim sistemi yapılarıKaynak Kitaplar ve Çevirimiçi Materyaller
3Süreç yönetimi, İnterprocess Communication (IPC) ve işlemci planlama algoritmalarıKaynak Kitaplar ve Çevirimiçi Materyaller
4Dosya sistemi, dosya yönetimi, dosya işlemleri ve ortak/statik kütüphanelerKaynak Kitaplar ve Çevirimiçi Materyaller
5Sistem çağrıları, hata yönetimi, hata kontrol mekanizmaları ve kernel/user mode geçişleriKaynak Kitaplar ve Çevirimiçi Materyaller
6Sinyaller, sinyal yakalama, işleme ve bellek yönetimiKaynak Kitaplar ve Çevirimiçi Materyaller
7İş parçacığı (thread) kavramı, kullanımı, yönetimi ve sanal bellek kavramlarıKaynak Kitaplar ve Çevirimiçi Materyaller
8Ara Sınav 1 / Uygulama veya Konu Tekrarı
9İş parçacığı senkronizasyonu, mutex, semaforlar ve işletim sistemi/donanım etkileşimiKaynak Kitaplar ve Çevirimiçi Materyaller
10Ağ programlamaya giriş, soket programlama ve temel kavramlarKaynak Kitaplar ve Çevirimiçi Materyaller
11TCP ve UDP protokolleri ile soket programlama uygulamaları ve erişim kontrolü/güvenlik politikalarıKaynak Kitaplar ve Çevirimiçi Materyaller
12Dinamik bellek yönetimi, bellek sızıntıları ve önleme yöntemleriKaynak Kitaplar ve Çevirimiçi Materyaller
13Çoklu platform desteği, POSIX API, uygulamaları ve optimizasyon teknikleriKaynak Kitaplar ve Çevirimiçi Materyaller
14Kabuk (shell) programlama, betikleri yazma, çalıştırma ve gelişmiş C dilinde programlama teknikleriKaynak Kitaplar ve Çevirimiçi Materyaller
15Final

Değerlendirme Sistemi

EtkinliklerSayıKatkı Payı
Devam/Katılım110
Laboratuar
Uygulama
Arazi Çalışması
Derse Özgü Staj
Küçük Sınavlar/Stüdyo Kritiği
Ödev
Sunum/Jüri
Projeler120
Seminer/Workshop
Ara Sınavlar130
Final140
Dönem İçi Çalışmaların Başarı Notuna Katkısı
Final Sınavının Başarı Notuna Katkısı
TOPLAM100

AKTS İşyükü Tablosu

EtkinliklerSayıSüresi (Saat)Toplam İşyükü
Ders Saati133
Laboratuar
Uygulama
Arazi Çalışması
Sınıf Dışı Ders Çalışması136
Derse Özgü Staj
Ödev
Küçük Sınavlar/Stüdyo Kritiği
Projeler120
Sunum / Seminer
Ara Sınavlar (Sınav Süresi + Sınav Hazırlık Süresi)115
Final (Sınav Süresi + Sınav Hazırlık Süresi)120
Toplam İşyükü :
Toplam İşyükü / 30(s) :
AKTS Kredisi :
Diğer NotlarYok