Türkçe|English  
  KTU Course Catalogue  
Arama Yapmak İstediğiniz Anahtar Kelimeyi Giriniz :       
OF TEKNOLOJİ FAKÜLTESİ / YAZILIM MÜHENDİSLİĞİ / YAZILIM MÜHENDİSLİĞİ
  Genel Bilgiler
  Yönetim
  Amaç ve Öğrenme Çıktıları
  Akademik Personel
  Ders Programı
     1. Yıl
     2. Yıl
     3. Yıl
     4. Yıl
   Öğrenme Çıktıları Matrisi
 
  Doktora Programları
  Yüksek Lisans Programları
  Lisans Programları
  Meslek Yüksek Okulları
 
  Geri
  Ana Sayfa
  KTÜ Ana Sayfa

YZM3009 SİSTEM PROGRAMLAMA 2+1+0 ECTS:4
Yıl / Yarıyıl3. Yıl / Güz Dönemi
Ders DuzeyiLisans
Yazılım ŞekliZorunlu
BolumuYazılım Mühendisliği Bölümü
Ön KoşulYok
Öğretim SistemiYüz yüze , Grup çalışması, Laboratuar Çalışması
Dersin suresi14 hafta - haftada 2 saat teorik ve 1 saat uygulama
Öğretim ÜyesiÖĞR. GÖR. Celal ATALAR
Diğer Öğretim Üyesi / Üyeleri
Öğretim Dili Türkçe
StajYok
 
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.
 

Öğrenme Çıktıları

BPÇK

ÖY

Bu dersi başarı ile tamamlayan öğrenciler :

ÖÇ - 1 :

Komut satırından shell çevrelerini yönetebilir.

ÖÇ - 2 :

Shell ve sistem komutlarını açıklayabilir.

ÖÇ - 3 :

Çeşitli sistem görevleri için shell betikleri yazabilir.

ÖÇ - 4 :

Düzenli ifadeleri kullanarak herhangi bir metin dosyası verisini işleyebilir.

ÖÇ - 5 :

Yüksek seviyeli programlama dillerinde programlar yazmak için yazılım geliştirme araçlarını kullanabilir.

ÖÇ - 6 :

C yada C++ programları içerisinden system çağrısı arayüzünü kullanabilir.

ÖÇ - 7 :

Sistem çağrıları yardımıyla dosya ve süreç alt sistemlerini yönetebilir.

BPÇK : Bölüm program çıktıları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), ÖÇ : Öğrenme Çıktısı

 

Dersin İçeriği

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 İçeriği

 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ı

 

Ders Kitabı / Malzemesi

1Michael, R. K. 2003; Mastering UNIX Shell Scripting, Wiley, 680 p.

2Haviland, K., Gray, D., Salama, B. 1999; UNIX System Programming, 2nd ed., Addison-Wesley, 350 p.

 

İlave Kaynak

1Kochan, S. G., Wood, P. 2003; UNIX Shell Programming, 3rd ed., Sams, 460 p.

2Robbins, K. A., Robbins, S. 1996; Practical UNIX Programming, Prentice Hall, 658 p.

 

Ölçme Yöntemi

Yöntem

Hafta

Tarih

Süre (Saat)

Katkı (%)

Arasınav

9

2

50

Dönem sonu sınavı

16

2

50

 

Öğrenci İş Yükü

İşlem adı

Haftalık süre (saat)

Hafta sayısı

Dönem toplamı

Yüz yüze eğitim

2

14

28

Sınıf dışı çalışma

2

10

20

Arasınav için hazırlık

4

4

16

Arasınav

1

2

2

Uygulama

1

14

14

Dönem sonu sınavı için hazırlık

4

6

24

Dönem sonu sınavı

1

2

2

Toplam iş yükü

106