DERSİN GENEL BİLGİLERİ

Ders Kodu Ders Adı Yıl Yarıyıl Teorik Pratik Kredi AKTS
60613METOZ-YZM0055 Sistem Programlama 3 Güz 2 2 3 5
Dersin Türü: Zorunlu
Dersin Düzeyi: Lisans      TYYÇ:6. Düzey      QF-EHEA:1. Düzey      EQF-LLL:6. Düzey
Dersin Öğretim Dili: Turkish
Dersin Ön/Yan Koşulu: Yoktur
Dersin Veriliş Şekli: Yüz yüze
Dersin Koordinatörü: Dr. Öğr. Üyesi GİZEM TEMELCAN ERGENECOŞAR
Dersin Öğretim Eleman(lar)ı:





Dersin Kategorisi: Mesleki Alan

BÖLÜM II: DERSİN TANITIMI

Dersin Amacı ve İçeriği

Dersin Amacı: Bu dersin amacı öğrencilere çevirici (assembly) dili programlama, UNIX ve Windows işletim sistemlerinin çalışması ve programlama arayüzü, C dilinde standart I/O kütüphane işlevlerinin kullanımı ve uygulamalarının kuramsal ve uygulamalı düzeylerde anlatımıdır.
Dersin İçeriği: Windows ortamı ve araçları; Unix ortamı ve araçları; C dilinde programlama; çevirici (assembly) dilinde programlama; Unix sistem çağrıları. Bu derste proje odaklı öğrenme yaklaşımı kullanılmaktadır. Bu çerçevede dersin geleneksel yapıdaki içeriği yanında proje odaklı öğrenme bileşeni bulunmaktadır. Proje odaklı öğrenme bileşeni dersin amaçlarına ve öğrenme çıktılarına uygun olarak öğrenciler tarafından bireysel olarak veya proje takımları halinde belirli adımlardan geçilerek ve belirli ara çıktıların ve son çıktıların üretilmesini amaçlayan bir veya daha fazla sayıda projenin öğrenme amaçlı proje
yapılmasını içermektedir. Dersin proje odaklı öğrenme bileşeni ağırlıklı olarak proje çıktılarının ve proje çalışmalarının dersi veren öğretim elemanı ve/veya jüri tarafından değerlendirilmektedir.

Dersin Öğrenme Çıktıları (DÖÇ)

Ders Öğrenme Çıktıları (DÖÇ), dersi başarı ile tamamlayan öğrencilerin kendilerinden sahip olmaları beklenen bilgi, beceri ve yetkinlikleri ifade eder. Bu bağlamda, bu ders için tanımlanmış olan Ders Öğrenme Çıktıları aşağıda verilmektedir.
Bilgi (Kuramsal ve/veya olgusal bilgi olarak tanımlanmıştır.)
  1) Windows sisteminin, Windows ortamının ve Windows araçlarının çalışma prensiplerini bilir.
  2) UNIX siteminin ve komut satırı yorumlayıcılarının işlemesini bilir.
Beceriler (Bilişsel ve/veya uygulama becerileri olarak tanımlanmıştır.)
  1) Sistem çağrılarını kullanarak UNIX sisteminin programlama ara yüzünü kullanır.
  2) Çevirici (assembly) dili kullanarak program yazar.
  3) Basit sistem araçları için program tasarlar ve kodlar.
  4) Sistem programlamada eşzamanlılığın rolünü bilir ve birden fazla süreci oluşturan ve eşzamanlı çalışmalarını sağlayan programlar yazar.
Yetkinlikler ("Bağımsız Çalışabilme", "Sorumluluk Alabilme", "Öğrenme", "İletişim ve Sosyal" ve "Alana Özgü" yetkinlikler olarak tanımlanmıştır.)

Haftalık Ders Planı

Hafta Konu
Materyal Paylaşımı *
Ön Hazırlık Pekiştirme
1) Teknolojilerin programlara etkileri, Programlar, süreçler, iplikler
2) Projelerin belirlenmesi
3) UNIX de süreçler
4) UNIX I/O
5) Dosyalar ve dizinler
6) UNIX özel dosyaları
7) Projenin ilk tesliminin yapılması
8) Ara sınav
9) Sinyaller
10) Zamanlar ve Saatler
11) POSIX iplikleri
12) Kritik alanlar ve semaforlar
12) Projenin ikinci tesliminin yapılması
13) Bağlantılı iletişim
13) İp senkronize etme
14) Bağlantısız iletişim ve Multicast
15) Projenin son tesliminin ve sunumunun yapılması 
*Bu alan öğrencilerin ders öncesi hazırlık ve sonrası dersi pekiştirme için paylaşılan ders materyallerini içerir.

Ders İçin Zorunlu/Önerilen Kaynaklar

Ders Notları / Kitaplar: UNIX Systems Programming: Communication, Concurrency and Threads
Kay A. Robbins and Steve Robbins (Jun 27, 2003)
Diğer Kaynaklar: Advanced Programming in the UNIX Environment, Second Edition (Addison-Wesley Professional Computing Series) by W. Richard Stevens and Stephen A. Rago (Jun 27, 2005)

Dersin Program Öğrenme Çıktılarına Katkı Düzeyi

Etkisi Yok 1 En Düşük 2 Düşük 3 Orta 4 Yüksek 5 En Yüksek
           
Program Öğrenme Çıktıları Katkı Oranı (1-5)
1) Matematik, fen bilimleri, bilgisayar bilimleri ve yazılım mühendisliği ile ilgili mühendislik konularında yeterli bilgi birikimine sahiptir; bu alanlardaki kuramsal ve uygulamalı bilgileri yazılım mühendisliği problemlerinin çözümü için birlikte kullanır ve uygular. 4
2) Alanı ile ilgili temel bilim konularındaki kuramsal ve uygulamalı bilgileri yazılım mühendisliği problemlerinin çözümü için birlikte kullanır ve uygular.
3) Yazılım mühendisliği uygulamalarını analiz eder, modeller, gerçekçi kısıtlar ve koşullar altında belirli gereksinimleri karşılayacak şekilde tasarlar ve geliştirir; bu amaçla uygun yöntemleri, araçları ve teknolojileri seçer ve kullanır.
4) Karmaşık yazılım mühendisliği problemlerini saptar, tanımlar, formüle eder ve çözer; bu amaçla uygun analitik yöntemler ile modelleme yöntemlerini seçer ve uygular. 4
5) Bilgisayar bilimleri ve yazılım mühendisliği uygulamaları için gerekli olan modern teknik ve araçları ve bilişim teknolojilerini seçer ve etkin bir şekilde kullanır. 4
6) Bilgisayar ve yazılım tabanlı karmaşık bir sistemi, süreci, cihazı veya ürünü ekonomi, çevre sorunları, sürdürülebilirlik, üretilebilirlik, etik, sağlık, güvenlik, sosyal ve politik sorunlar gibi öğeler dahil gerçekçi kısıtlar ve koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlar; bu amaçla modern tasarım yöntemlerini uygular. 4
7) Sorumluluk aldığı çalışmalarda var olan normları ve standartları eleştirel bakış açısıyla değerlendir.
8) Sürekli gelişen yazılım mühendisliği alanının ve küresel rekabet ortamının gerektirdiği yetkinliklere sahiptir.
9) Türkçe sözlü ve yazılı olarak etkili iletişim kurar ve B2 düzeyinde Yabancı Dilde (İngilizce) iletişim kurma yetkinliğine sahiptir.

BÖLÜM IV: DERSİN ÖĞRENME VE ÖĞRETME YÖNTEMLERİ İLE ÖLÇME VE DEĞERLENDİRME YÖNTEMLERİ

Dersin Öğrenme ve Öğretme Yöntemleri

(Üniversitemiz genelinde kullanılan tüm öğrenme ve öğretme yöntemleri sistematik olarak yönetilmektedir. Akademik birimlerden gelen talepler doğrultusunda bölüm/programların öğrenme ve öğretme yöntemleri ilgili kurullarımız tarafından değerlendirilmekte ve uygun bulunursa, üniversite havuzunda toplanmaktadır. Bölüm ve programlar, kendileri için program tasarımlarına uygun olan yöntemleri bu havuzdan seçebilmektedirler. Benzer şekilde, dersler için kullanılması uygun görülen yöntemler de programlar düzeyinde belirlenmiş olan yöntemler arasından seçilebilmektedir.)
Programa Genelinde Kullanılan Öğrenme ve Öğretme Yöntemleri
Ders İçin Kullanılan Öğrenme ve Öğretme Yöntemleri
Anlatım
Laboratuvar
Proje Hazırlama

Dersin Ölçme ve Değerlendirme Yöntemleri

(Üniversitemiz genelinde kullanılan tüm ölçme ve değerlendirme yöntemleri sistematik olarak yönetilmektedir. Akademik birimlerden gelen talepler doğrultusunda bölüm/programların ölçme ve değerlendirme yöntemleri ilgili kurullarımız tarafından değerlendirilmekte ve uygun bulunursa, üniversite havuzunda toplanmaktadır. Bölüm ve programlar, kendileri için program tasarımlarına uygun olan yöntemleri bu havuzdan seçebilmektedirler. Benzer şekilde, dersler için kullanılması uygun görülen yöntemler de programlar düzeyinde belirlenmiş olan yöntemler arasından seçilebilmektedir.)
Programa Genelinde Kullanılan Ölçme ve Değerlendirme Yöntemleri
Ders İçin Kullanılan Ölçme ve Değerlendirme Yöntemleri
Ara Sınav
Sunum
Yarıyıl Sonu Sınavı
Kısa Sınav
Jüri Değerlendirmesi

Dersin Ölçme ve Değerlendirme Yöntemlerinin Başarı Notuna Katkısı

Ölçme ve Değerlendirme Yöntemleri Uygulama Sayısı / Yarıyıl Katkı Oranı
Ödev 5 % 10.00
Projeler 1 % 30.00
Ara Sınavlar 1 % 10.00
Yarıyıl Sonu Sınavı 1 % 50.00
Toplam % 100
YARIYIL İÇİ ÖLÇME VE DEĞERLENDİRME YÖNTEMLERİNİN BAŞARI NOTUNA KATKI ORANI % 50
YARIYIL SONU SINAVININ BAŞARI NOTUNA KATKI ORANI % 50
Toplam % 100

BÖLÜM V: DERSİN İŞ YÜKÜ VE AKTS KREDİSİ

ÖĞRENME VE ÖĞRETME ETKİNLİKLERİ İŞ YÜKÜ
Öğrenme ve Öğretme Etkinlikleri Etkinlik Sayısı/Yarıyıl Süresi (saat) Toplam İş Yükü
Ders 14 2 28
Laboratuvar 0 0 0
Uygulama 14 2 28
Derse Özgü Staj 0 0 0
Arazi Çalışması 0 0 0
Sınıf Dışı Ders Çalışması 14 2 28
Sunum / Seminer 4 1 4
Proje 4 10 40
Ödevler 0 0 0
Öğrenme ve Öğretme Etkinlikleri Toplam İş Yükü - - 128
ÖLÇME VE DEĞERLENDİRME ETKİNLİKLERİ İŞ YÜKÜ
Ölçme ve Değerlendirme Etkinlikleri Etkinlik Sayısı/Yarıyıl Süresi (saat) Toplam İş Yükü
Kısa Sınav 3 2 6
Ara Sınavlar 1 6 6
Yarıyıl Sonu Sınavı 1 12 12
Ölçme ve Değerlendirme Etkinlikleri Toplam İş Yükü - - 24
TOPLAM İŞ YÜKÜ (Öğrenme ve Öğretme + Ölçme ve Değerlendirme Etkinlikleri) 152
DERSİN AKTS KREDİSİ (Toplam İş Yükü/25.5 Saat) 5