|
COM3000 | System Programming | 3+0+0 | AKTS:5 | Yıl / Yarıyıl | Bahar Dönemi | Ders Duzeyi | Lisans | Yazılım Şekli | Zorunlu | Bölümü | BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ | Ön Koşul | COM1002-Programming - II, COM1000-Introduction To Computer Programming veya COM2001-Object Oriented Programming | Eğitim Sistemi | Yüz yüze | Dersin Süresi | 14 hafta - haftada 3 saat teorik | Öğretim Üyesi | Doç. Dr. Hüseyin PEHLİVAN | Diğer Öğretim Üyesi | Yok | Öğretim Dili | İngilizce | Staj | Yok | | Dersin Amacı: | Unix pencere sistemi, düzenli ifadeler, kullanıcı çevre yapılandırması, shell betikleri yazımı, çeşitli system programlama araçları (gcc, gdb, make, sed ve awk gibi) , işletim sistemi yapıları, dosya sistemi işlemleri, system çağrıları ve kütüphaneleri, süreç haberleşmesi, pipe'lar ve sinyaller başta olmak üzere Unix çevrelerinde betik ve system programlama dillerine bir giriş yapmaktır. |
Öğrenim Kazanımları | PÖKK | ÖY | Bu dersi başarı ile tamamlayan öğrenciler : | | | ÖK - 1 : | komut satırından shell çevrelerini yönetebilir. | 2,3,4 | 1 | ÖK - 2 : | shell ve sistem komutları ile nasıl ilgilenildiğini açıklayabilir. | 2,3,4 | 1 | ÖK - 3 : | çeşitli sistem görevleri için shell betikleri yazabilir. | 2,3,4 | 1 | ÖK - 4 : | düzenli ifadeleri kullanarak herhangi bir metin dosyası verisini işleyebilir. | 2,3,4 | 1 | ÖK - 5 : | yüksek seviyeli programlama dillerinde programlar yazmak için yazılım geliştirme araçlarını kullanabilir. | 2,3,4 | 1 | ÖK - 6 : | C yada C++ programları içerisinden system çağrısı arayüzünü kullanabilir. | 2,3,4 | 1 | ÖK - 7 : | sistem çağrıları yardımıyla dosya ve süreç alt sistemlerini yönetebilir. | 2,3,4 | 1 | PÖKK :Program öğrenim kazanımlarına katkı, ÖY : Ölçme ve değerlendirme yöntemi (1: Yazılı Sınav, 2: Sözlü Sınav, 3: Ev Ödevi, 4: Laboratuvar Çalışması/Sınavı, 5: Seminer / Sunum, 6: Dönem Ödevi / Proje),ÖK : Öğrenim Kazanımı | |
Unix sistemleri: Unix sürümleri, katmanlar, sistem girişi, komut çalıştırma. Unix dosya sistemleri: Çalışma dizini, dosya hiyerarşisi, sistem yolları, standart dizinler, dosya tipleri, dosya işleme, dosya izinleri, dosya ismi yerdeğiştirme, dosya sistemleri. Shell işleçleri: Standard dosyalar, dosya tanımlayıcılar, G/Ç yönlendirme, pipe'lar, süreçler, süzgeçler, haberleşme. Düzenli ifadeler (RE) : RE'leri kullanan komutlar, egrep komutu, meta karakterler. Pencere sistemi: X pencereleri, X sunucusu, pencere yöneticileri, masaüstü çevresi. Shell çevreleri: Komut satırı ayrıştırma, metne bağlı tamamlama, takma isimler, komut satırını düzenleme, komut geçmişi. Shell programlama: Shell değişkenleri, tamsayı aritmetiği, değişken yerdeğiştirme, komut satırı argümanları, komut yerdeğiştirme, control yapıları, fonksiyon tanımlama ve çağırma, giriş betikleri, shell betikleri. Program geliştirme araçları: Kaynak dosyaların oluşturulması, ayrık derleme, koşma ve test, gcc ve make komutları. Sistem programlama: Dosyalar, dizinler, süreçler, saklamalı G/Ç, standart G/Ç, standart kanallar, system çağrısı arayüzü. Dosya işlemleri: Temel dosya G/Ç, dosya tanımlayıcıları, dosyaları oluşturma ve açma, dosyaları okuma ve yazma, dosya araştırma, çekirdek işlemler, dosya kontrolü, aygıt dosyaları. Süreç işlemleri: Süreçler oluşturma, programları çalıştırma, çıkış durumu, sahipsiz süreçler, pipe sistem çağrısı, sinyaller. |
|
Haftalık Detaylı Ders Planı | Hafta | Detaylı İçerik | Önerilen Kaynak | Hafta 1 | UNIX Sistemlerine Giriş | | Hafta 2 | Unix Dosya Sistemleri | | Hafta 3 | Metin Düzenleyiciler ve Komut Yorumlayıcı İşleçleri | | Hafta 4 | Düzenli İfadeler ve Unix Pencere Sistemi | | Hafta 5 | Unix Yorumlayıcı Çevreleri ve Script Kavramı | | Hafta 6 | Betik Programlama - I | | Hafta 7 | Betik Programlama - II | | Hafta 8 | Program Geliştirme Araçları (gcc, make, gdb) ve Diğer Araçlar (sed, awk, perl) | | Hafta 9 | Arasınav | | Hafta 10 | Dosya Yönetimi - I (open, creat, read, write, lseek) | | Hafta 11 | Dosya Yönetimi - II (chmod, chdir, link, fcntl, ioctl) | | Hafta 12 | Süreç Yönetimi - I (fork, exec, wait) | | Hafta 13 | Süreç Yönetimi - II (pipe, dup, close) | | Hafta 14 | Soketler | | Hafta 15 | Temel Unix Sistem Yönetimi | | Hafta 16 | Dönem sonu sınavı | | |
1 | Kochan, S. G., Wood, P., 2016, Shell Programming in Unix, Linux and OS X, 4th ed., Addison-Wesley Professional, 416 p. | | 2 | Palakollu, S. M., 2021, Practical System Programming with C - Pragmatic Example Applications in Linux and Unix-Based Operating Systems, Apress, 286 p. | | |
1 | Wang, K. C., 2018, Systems Programming in Unix/Linux, Springer, 468 p. | | 2 | Harwani, B. M., 2013, Unix and Shell Programming, Oxford University Press, 734 p. | | |
Ölçme Yöntemi | Yöntem | Hafta | Tarih | Süre (Saat) | Katkı (%) | Arasınav | 9 | 21/04/2024 | 2 | 50 | Dönem sonu sınavı | 16 | 04/06/2024 | 2 | 50 | |
Öğrenci Çalışma Yükü | İşlem adı | Haftalık süre (saat) | Hafta sayısı | Dönem toplamı | Yüz yüze eğitim | 3 | 14 | 42 | Sınıf dışı çalışma | 5 | 14 | 70 | Arasınav için hazırlık | 15 | 1 | 15 | Arasınav | 2 | 1 | 2 | Dönem sonu sınavı için hazırlık | 20 | 1 | 20 | Dönem sonu sınavı | 2 | 1 | 2 | Toplam Çalışma Yükü | | | 151 |
|