Ders Adı Kodu Yarıyıl T+U Saat Kredi AKTS
Sistem Programlama SWE 301 5 3 + 0 3 5
Ön Koşul Dersleri
Önerilen Seçmeli Dersler
Dersin Dili İngilizce
Dersin Seviyesi Lisans
Dersin Türü Zorunlu
Dersin Koordinatörü Prof.Dr. ÜNAL ÇAVUŞOĞLU
Dersi Verenler
Dersin Yardımcıları
Dersin Kategorisi Diğer
Dersin Amacı

- Introduction of system software development methods and system software development tools.

- Compatibility of computer architecture with software components and examining the factors affecting software performance.

- Teaching system software development processes with sample applications.

Dersin İçeriği

- Advanced C language basics.

- Examining the factors affecting software performance.

- Program development processes: Analysis of compile and link processes.

- Programming in symbolic language (assembler).

- Parallel programming: Multi-thread applications, distributed parallel applications.

- Performance issues in parallel programs.

# Ders Öğrenme Çıktıları Öğretim Yöntemleri Ölçme Yöntemleri
1 C dilinde sistem yazılımı geliştirir. Tartışma, Gezi / Gözlem, Mikro Öğretim,
2 Hazır kütüphaneleri karmaşık uygulamalarda kullanır. Tartışma,
3 Bilgisayar mimarisi ile programlama dilleri arasında ilişkiyi açıklar. Anlatım,
4 İşletim sistemi kabuk komutlarını bilir. Anlatım,
5 Simgesel dilde programlama yapar. Anlatım,
6 Paralel programlama bilir. Tartışma,
Hafta Ders Konuları Ön Hazırlık
1 Sistem yazılımlarında C dili kullanımı, yaygın olarak kullanılan yöntemler (conventions).
2 Program derleme ve bağlama (link) işlemleri. Makefile oluşturma. Hazır kütüphanelerin kullanımı.
3 Sistem çağrıları ve C kütüphaneleri ile performans karşılaştırmaları.
4 Dosya sistemleri, kısayol (link) ve dizin dosyaları.
5 Yaygın kullanılan sistem çağrıları ile uygulama geliştirme (stat, opendir, readdir/closedir kullanımı).
6 Diğer sistem çağrılarının analizi ve uygulamalarda kullanımı.
7 Kabuk programlama (shell programming) ve yeniden yönlendirme (redirection).
8 Sinyaller (signals), fork ve exec çağrılarının kullanımı
9 Simgesel dilde programlama - 1 (assembler): Giriş ve lokal değişkenler
10 Simgesel dilde programlama - 2 (assembler): Alt programlar (procedures) ve saklayıcı kopyalama (register spilling)
11 Simgesel dilde programlama - 3 (assembler): Adres değişkenleri (pointers)
12 Simgesel dilde programlama - 4 (assembler): Dallanma ve koşullu dallanma
13 Paralel programlama (Threads)
14 Paralel programlama: Sunucu istemci modelinde programlama
Kaynaklar
Ders Notu
Ders Kaynakları
Sıra Program Çıktıları Katkı Düzeyi
1 2 3 4 5
1 Matematik, fen bilimleri ve ilgili mühendislik disiplinine özgü konularda yeterli bilgi birikimi; bu alanlardaki kuramsal ve uygulamalı bilgileri, karmaşık mühendislik problemlerinde kullanabilme becerisi. X
2 Karmaşık mühendislik problemlerini saptama, tanımlama, formüle etme ve çözme becerisi; bu amaçla uygun analiz ve modelleme yöntemlerini seçme ve uygulama becerisi. X
3 Mühendislik uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern teknik ve araçları geliştirme, seçme ve kullanma becerisi; bilişim teknolojilerini etkin bir şekilde kullanma becerisi. X
4 Karmaşık bir sistemi, süreci, cihazı veya ürünü gerçekçi kısıtlar ve koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama becerisi; bu amaçla modern tasarım yöntemlerini uygulama becerisi. X
5 Karmaşık mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi için deney tasarlama, deney yapma, veri toplama, sonuçları analiz etme ve yorumlama becerisi. X
6 Bilişim Teknolojilerinin yönetim, denetim, gelişim ve güvenliği/güvenilirliği hakkında bilgi sahibi olma ve farkındalık. X
7 Disiplin içi ve çok disiplinli takımlarda etkin biçimde çalışabilme becerisi; bireysel çalışma becerisi. X
8 Türkçe sözlü ve yazılı etkin iletişim kurma becerisi; en az bir yabancı dil bilgisi; etkin rapor yazma ve yazılı raporları anlama, tasarım ve üretim raporları hazırlayabilme, etkin sunum yapabilme, açık ve anlaşılır talimat verme ve alma becerisi. X
9 Yaşam boyu öğrenmenin gerekliliği bilinci; bilgiye erişebilme, bilim ve teknolojideki gelişmeleri izleme ve kendini sürekli yenileme becerisi. X
10 Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk bilinci; mühendislik uygulamalarında kullanılan standartlar hakkında bilgi. X
11 Proje yönetimi, risk yönetimi ve değişiklik yönetimi gibi, iş hayatındaki uygulamalar hakkında bilgi; girişimcilik, yenilikçilik hakkında farkındalık; sürdürülebilir kalkınma hakkında bilgi. X
12 Mühendislik uygulamalarının evrensel ve toplumsal boyutlarda sağlık, çevre ve güvenlik üzerindeki etkileri ve çağın mühendislik alanına yansıyan sorunları hakkında bilgi; mühendislik çözümlerinin hukuksal sonuçları konusunda farkındalık. X
# Ders Öğrenme Çıktılarının Program Çıktılarına Katkısı PÇ 1 PÇ 2 PÇ 3 PÇ 4 PÇ 5 PÇ 6 PÇ 7 PÇ 8 PÇ 9 PÇ 10 PÇ 11 PÇ 12
1 C dilinde sistem yazılımı geliştirir. 5 5 5 5
2 Hazır kütüphaneleri karmaşık uygulamalarda kullanır. 5 5 5
3 Bilgisayar mimarisi ile programlama dilleri arasında ilişkiyi açıklar. 5 5 5
4 İşletim sistemi kabuk komutlarını bilir. 5 5 5
5 Simgesel dilde programlama yapar. 5 5
6 Paralel programlama bilir. 5 5 5
Değerlendirme Sistemi
Yarıyıl Çalışmaları Katkı Oranı
1. Ara Sınav 40
1. Kısa Sınav 25
1. Proje / Tasarım 25
2. Ara Sınav 10
Toplam 100
1. Yıl İçinin Başarıya 60
1. Final 40
Toplam 100
AKTS - İş Yükü Etkinlik Sayı Süre (Saat) Toplam İş Yükü (Saat)
Ders Süresi (Sınav haftası dahildir: 16x toplam ders saati) 14 3 42
Sınıf Dışı Ders Çalışma Süresi(Ön çalışma, pekiştirme) 14 3 42
Ara Sınav 1 10 10
Kısa Sınav 1 2 2
Proje / Tasarım 2 20 40
Toplam İş Yükü 136
Toplam İş Yükü / 25 (Saat) 5,44
dersAKTSKredisi 5