|
|
| 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. | 1.2 - 1.3 - 2.1 | 1 | | ÖK - 2 : | shell ve sistem komutları ile nasıl ilgilenildiğini açıklayabilir. | 1.2 - 1.3 - 2.1 | 1 | | ÖK - 3 : | çeşitli sistem görevleri için shell betikleri yazabilir. | 1.2 - 1.3 - 2.1 | 1 | | ÖK - 4 : | düzenli ifadeleri kullanarak herhangi bir metin dosyası verisini işleyebilir. | 1.2 - 1.3 - 2.1 | 1 | | ÖK - 5 : | yüksek seviyeli programlama dillerinde programlar yazmak için yazılım geliştirme araçlarını kullanabilir. | 1.2 - 1.3 - 2.1 | 1 | | ÖK - 6 : | C yada C++ programları içerisinden system çağrısı arayüzünü kullanabilir. | 1.2 - 1.3 - 2.1 | 1 | | ÖK - 7 : | sistem çağrıları yardımıyla dosya ve süreç alt sistemlerini yönetebilir. | 1.2 - 1.3 - 2.1 | 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 |
|