| Ders Adı | Kodu | Yerel Kredi | AKTS | Ders (saat/hafta) | Uygulama (saat/hafta) | Laboratuar (saat/hafta) |
|---|---|---|---|---|---|---|
| Sistem Programlama | MTM3632 | 3 | 5 | 3 | 0 | 0 |
| Önkoşullar | Yok |
|---|
| Yarıyıl | Güz, Bahar |
|---|
| Dersin Dili | İngilizce, Türkçe |
|---|---|
| Dersin Seviyesi | Lisans |
| Dersin Türü | Seçmeli @ Matematik Mühendisliği Lisans Programı (%30 İngilizce) |
| Ders Kategorisi | Uzmanlık/Alan Dersleri |
| Dersin Veriliş Şekli | Yüz yüze |
| Dersi Sunan Akademik Birim | Matematik 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ği | C 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 |
|
| Opsiyonel Program Bileşenleri | Yok |
Ders Öğrenim Çıktıları
- Öğ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.
- İş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.
- 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.
- İş parçacığı (thread) kavramını ve senkronizasyon tekniklerini kullanarak, paralel programlama ve çoklu görevli sistemlerde performansı optimize edebilme becerisine sahip olacaktır.
- 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ÖÇ-1 | DÖÇ-2 | DÖÇ-3 | DÖÇ-4 | DÖÇ-5 |
Haftalık Konular ve İlgili Ön Hazırlık Çalışmaları
| Hafta | Konular | Ön Hazırlık |
|---|---|---|
| 1 | Ders tanıtımı, amaç, içerik, değerlendirme sistemi ve C programlama temelleri | Kaynak 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 |
| 3 | Süreç yönetimi, İnterprocess Communication (IPC) ve işlemci planlama algoritmaları | Kaynak Kitaplar ve Çevirimiçi Materyaller |
| 4 | Dosya sistemi, dosya yönetimi, dosya işlemleri ve ortak/statik kütüphaneler | Kaynak Kitaplar ve Çevirimiçi Materyaller |
| 5 | Sistem çağrıları, hata yönetimi, hata kontrol mekanizmaları ve kernel/user mode geçişleri | Kaynak Kitaplar ve Çevirimiçi Materyaller |
| 6 | Sinyaller, sinyal yakalama, işleme ve bellek yönetimi | Kaynak Kitaplar ve Çevirimiçi Materyaller |
| 7 | İş parçacığı (thread) kavramı, kullanımı, yönetimi ve sanal bellek kavramları | Kaynak Kitaplar ve Çevirimiçi Materyaller |
| 8 | Ara Sınav 1 | |
| 9 | İş parçacığı senkronizasyonu, mutex, semaforlar ve işletim sistemi/donanım etkileşimi | Kaynak Kitaplar ve Çevirimiçi Materyaller |
| 10 | Ağ programlamaya giriş, soket programlama ve temel kavramlar | Kaynak Kitaplar ve Çevirimiçi Materyaller |
| 11 | TCP ve UDP protokolleri ile soket programlama uygulamaları ve erişim kontrolü/güvenlik politikaları | Kaynak Kitaplar ve Çevirimiçi Materyaller |
| 12 | Dinamik bellek yönetimi, bellek sızıntıları ve önleme yöntemleri | Kaynak Kitaplar ve Çevirimiçi Materyaller |
| 13 | Çoklu platform desteği, POSIX API, uygulamaları ve optimizasyon teknikleri | Kaynak Kitaplar ve Çevirimiçi Materyaller |
| 14 | Kabuk (shell) programlama, betikleri yazma, çalıştırma ve gelişmiş C dilinde programlama teknikleri | Kaynak Kitaplar ve Çevirimiçi Materyaller |
| 15 | Konu Tekrarı ve Uygulamaları | |
| 16 | Final |
Değerlendirme Sistemi
| Etkinlikler | Sayı | Katkı Payı |
|---|---|---|
| Devam/Katılım | 1 | 10 |
| Laboratuar | ||
| Uygulama | ||
| Arazi Çalışması | ||
| Derse Özgü Staj | ||
| Küçük Sınavlar/Stüdyo Kritiği | ||
| Ödev | ||
| Sunum/Jüri | ||
| Projeler | 1 | 20 |
| Seminer/Workshop | ||
| Ara Sınavlar | 1 | 30 |
| Final | 1 | 40 |
| Dönem İçi Çalışmaların Başarı Notuna Katkısı | ||
| Final Sınavının Başarı Notuna Katkısı | ||
| TOPLAM | 100 | |
AKTS İşyükü Tablosu
| Etkinlikler | Sayı | Süresi (Saat) | Toplam İşyükü |
|---|---|---|---|
| Ders Saati | 13 | 3 | |
| Laboratuar | |||
| Uygulama | |||
| Arazi Çalışması | |||
| Sınıf Dışı Ders Çalışması | 13 | 6 | |
| Derse Özgü Staj | |||
| Ödev | |||
| Küçük Sınavlar/Stüdyo Kritiği | |||
| Projeler | 1 | 20 | |
| Sunum / Seminer | |||
| Ara Sınavlar (Sınav Süresi + Sınav Hazırlık Süresi) | 1 | 15 | |
| Final (Sınav Süresi + Sınav Hazırlık Süresi) | 1 | 20 | |
| Toplam İşyükü : | |||
| Toplam İşyükü / 30(s) : | |||
| AKTS Kredisi : | |||
| Diğer Notlar | Yok |
|---|