Yazılım Mühendisliği
Lisans TYYÇ: 6. Düzey QF-EHEA: 1. Düzey EQF-LLL: 6. Düzey

Ders Genel Tanıtım Bilgileri

Ders Kodu: YAZ106
Ders İsmi: Unix Programlama
Ders Yarıyılı: Bahar
Ders Kredileri:
AKTS
6
Öğretim Dili: Türkçe
Ders Koşulu:
Ders İş Deneyimini Gerektiriyor mu?: Hayır
Dersin Türü: Zorunlu
Dersin Seviyesi:
Lisans TYYÇ:6. Düzey QF-EHEA:1. Düzey EQF-LLL:6. Düzey
Dersin Veriliş Şekli: Yüz yüze
Dersin Koordinatörü: Araş. Gör. ZEHRA TÜFEKÇİ
Dersi Veren(ler): Buse Yılmaz
Dersin Yardımcıları:

Dersin Amaç ve İçeriği

Dersin Amacı: Son yıllarda, UNIX işletim sistemi popülaritesinde, Linux'un da ortaya çıkmasıyla büyük bir artış görüldü. UNIX'in en güçlü yönlerinden biri, geniş bir standart program koleksiyonuyla gelmesidir.
UNIX'te bulunan en güçlü standart programlardan biri de kabuktur.
Kabuğun temel sorumluluğu, yazılan komutları okumak, UNIX çekirdeğinden bu komutları gerçekleştirmesini istemektir. Bu derste daha ziyade Bourne ve Bash kabukları üzerinde yoğunlaşacağız.
Kabuk, komut dosyaları (SCRIPT) oluşturacağız. Bunların nasıl hızlı bir şekilde ve kolayca kurulacağını, uygulanacağını, değiştirileceğini ve hata ayıklanacağını (debugging) öğreneceğiz.
Dersin İçeriği: Yapıyı 3 bölümde inceleyeceğiz:
Bölüm I UNIX'e, kabuğa ve bazı genel araçlara giriş niteliğindedir.
1. "Kabuk Temelleri", kabukla ilgili birkaç önemli kavramı tartışır ve kabuğun farklı sürümlerini açıklar.
2. "Komut Dosyası Temelleri", bir kabuk komut dosyası oluşturma ve çalıştırma işlemini açıklar. Ayrıca oturum açma işlemini ve kabuğun çalıştığı farklı modları da kapsar.
3. "Dosyalarla Çalışma" ve "Dizinlerle Çalışma", dosyalar ve dizinlerle çalışırken kullanılan komutlara genel bir bakış sunar. Bu bölümler, bir dizinin içeriğini nasıl listeleyeceğinizi, bir dosyanın içeriğini nasıl görüntüleyebileceğinizi ve dosyaları ve dizinleri nasıl değiştireceğinizi gösterir.

Öğrenme Kazanımları

Bu dersi başarıyla tamamlayabilen öğrenciler;
1) UNIX tabanlı işletim sistemlerinin bileşenlerine hakim olmaları,
2) Uçbirimde UNIX komutlarını rahatlıkla kullanabilmeleri
3) Kabuk komut dosyası yazarak küçük ve hızlı programlar oluşturabilmeleri
4) Metin üzerinde UNIX metin işleme programlarını efektif bir şekilde kullanabilmeleri
5) Metin tabanlı editörlerde farklı programlama dilleriyle kod yazabilmeleri beklenmektedir

Ders Akış Planı

Hafta Konu Ön Hazırlık
1) Kabuk Temelleri
2) Komut Dosyası temelleri
3) Dosya ve Dizinlerle Çalışma
4) Dosyaları yönetmek
5) Süreçler
6) Değişkenler
7) İkame-Yerine koyma ve Ayrımlama
8) Akış Kontrolü- ve Döngüler
9) Giriş / Çıkış
10) İşlevler
11) Metin Filtreleri
12) Diğer yardımcı araçlar
13) Sinyallerle Başa Çıkma
14) Taşınabilirlik
15) Hata Ayıklama

Kaynaklar

Ders Notları / Kitaplar: Piazza.com’da paylaşılan öğrenci notları
Diğer Kaynaklar: http://www.belgeler.org/: linux TR
Komutlar: https://www.computerhope.com/unix/uln.htm
Linux Journal: https://www.linuxjournal.com/article/2156
linux komutlar: https://bash.cyberciti.biz/guide/
bash tutorial: https://bash.cyberciti.biz/guide/Main_Page
scrpting quide: http://tldp.org/LDP/abs/html/index.html

Ders - Program Öğrenme Kazanım İlişkisi

Course Learning Outcomes

1

2

3

4

5

Program Kazanımları
1) Matematik, fen bilimleri ve ilgili mühendislik disiplinine özgü konularda yeterli bilgi birikimine; bu alanlardaki kuramsal ve uygulamalı bilgileri, mühendislik problemlerinde kullanabilme becerisine sahiptir.
2) Bir sistemi, süreci veya ürünü ekonomik, çevre, sosyo-politik, etik, sağlık, güvenlik, üretilebilirlik ve sürdürülebilirlik ile ilişkili gerçekçi koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama becerisine sahiptir.
3) Mühendislik problemlerini tanımlama, formüle etme ve çözme; çözüm için gerekli yöntemi seçme ve uygulama becerisine sahiptir.
4) Mühendislik uygulamalarında karşılaşılan problemlerin analizi ve çözümü için gerekli olan modern teknikleri geliştirme, seçme ve kullanma; bilişim teknolojilerini etkin bir şekilde kullanma becerisine sahiptir.
5) 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 becerisine sahiptir.
6) Çok disiplinli takımlarda etkin biçimde çalışabilme becerisine sahiptir.
7) Sözlü ve yazılı etkin iletişim kurma becerisi ile etkin rapor yazma ve yazılı raporları anlama, etkin sunum yapabilme becerisine sahiptir.
8) Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk bilincine sahiptir; mühendislik uygulamalarında kullanılan standartlar hakkında bilgiye sahiptir.
9) Bir yabancı dili Avrupa Dil Portföyü kriteri açısından en az B1 düzeyinde kullanabilme becerisine sahiptir.
10) Yaşam boyu öğrenmenin gerekliliği bilincine sahiptir; bilgiye erişebilme, bilim ve teknolojideki gelişmeleri izleme ve kendini sürekli yenileme becerisine sahiptir.
11) Bilgisayar yazılımı ile birlikte bilişim ve iletişim teknolojilerini Avrupa Bilgisayar Kullanma Lisansı İleri düzeyinde kullanabilme becerisine sahiptir.
12) Proje yönetimi ve risk yönetimi uygulamaları hakkında bilgi; girişimcilik, yenilikçilik hakkında farkındalık; sürdürülebilir kalkınma hakkında bilgiye sahiptir.
13) Mühendislik uygulamalarının evrensel ölçekte çevre, sağlık ve güvenlik üzerindeki etkileri ve hukuksal sonuçları hakkında bilgi ve farkındalığa sahiptir.
14) Yazılım alternatiflerini irdeleyerek bilgisayar tabanlı sistemlerin modellenmesi ve tasarımında, algoritma prensiplerini, matematiksel temelleri ve bilgisayar bilimleri teorisini uygulama becerisine sahiptir.
15) Türevsel denklemler, integral hesapları, doğrusal cebir, mantık ve ayrık matematik içerecek şekilde ileri matematik eğitimi ile birlikte yazılım mühendisliğinde veri yapıları ve algoritmalar, programlama dilleri, işletim sistemleri, bilgisayar güvenliği, bilgisayar teorisi, ağ programlama ve makine öğrenmesi alanlarını kapsayan mühendislik eğitimine sahiptir.

Ders - Öğrenme Kazanımı İlişkisi

Etkisi Yok 1 En Düşük 2 Orta 3 En Yüksek
       
Dersin Program Kazanımlarına Etkisi Katkı Payı
1) Matematik, fen bilimleri ve ilgili mühendislik disiplinine özgü konularda yeterli bilgi birikimine; bu alanlardaki kuramsal ve uygulamalı bilgileri, mühendislik problemlerinde kullanabilme becerisine sahiptir. 2
2) Bir sistemi, süreci veya ürünü ekonomik, çevre, sosyo-politik, etik, sağlık, güvenlik, üretilebilirlik ve sürdürülebilirlik ile ilişkili gerçekçi koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama becerisine sahiptir.
3) Mühendislik problemlerini tanımlama, formüle etme ve çözme; çözüm için gerekli yöntemi seçme ve uygulama becerisine sahiptir. 2
4) Mühendislik uygulamalarında karşılaşılan problemlerin analizi ve çözümü için gerekli olan modern teknikleri geliştirme, seçme ve kullanma; bilişim teknolojilerini etkin bir şekilde kullanma becerisine sahiptir. 3
5) 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 becerisine sahiptir. 2
6) Çok disiplinli takımlarda etkin biçimde çalışabilme becerisine sahiptir. 2
7) Sözlü ve yazılı etkin iletişim kurma becerisi ile etkin rapor yazma ve yazılı raporları anlama, etkin sunum yapabilme becerisine sahiptir.
8) Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk bilincine sahiptir; mühendislik uygulamalarında kullanılan standartlar hakkında bilgiye sahiptir.
9) Bir yabancı dili Avrupa Dil Portföyü kriteri açısından en az B1 düzeyinde kullanabilme becerisine sahiptir.
10) Yaşam boyu öğrenmenin gerekliliği bilincine sahiptir; bilgiye erişebilme, bilim ve teknolojideki gelişmeleri izleme ve kendini sürekli yenileme becerisine sahiptir.
11) Bilgisayar yazılımı ile birlikte bilişim ve iletişim teknolojilerini Avrupa Bilgisayar Kullanma Lisansı İleri düzeyinde kullanabilme becerisine sahiptir. 3
12) Proje yönetimi ve risk yönetimi uygulamaları hakkında bilgi; girişimcilik, yenilikçilik hakkında farkındalık; sürdürülebilir kalkınma hakkında bilgiye sahiptir. 1
13) Mühendislik uygulamalarının evrensel ölçekte çevre, sağlık ve güvenlik üzerindeki etkileri ve hukuksal sonuçları hakkında bilgi ve farkındalığa sahiptir. 2
14) Yazılım alternatiflerini irdeleyerek bilgisayar tabanlı sistemlerin modellenmesi ve tasarımında, algoritma prensiplerini, matematiksel temelleri ve bilgisayar bilimleri teorisini uygulama becerisine sahiptir. 2
15) Türevsel denklemler, integral hesapları, doğrusal cebir, mantık ve ayrık matematik içerecek şekilde ileri matematik eğitimi ile birlikte yazılım mühendisliğinde veri yapıları ve algoritmalar, programlama dilleri, işletim sistemleri, bilgisayar güvenliği, bilgisayar teorisi, ağ programlama ve makine öğrenmesi alanlarını kapsayan mühendislik eğitimine sahiptir. 2

Ölçme ve Değerlendirme

Yarıyıl İçi Çalışmaları Aktivite Sayısı Katkı Payı
Ödev 5 % 20
Ara Sınavlar 1 % 40
Final 1 % 40
Toplam % 100
YARIYIL İÇİ ÇALIŞMALARININ BAŞARI NOTU KATKISI % 60
YARIYIL SONU ÇALIŞMALARININ BAŞARI NOTUNA KATKISI % 40
Toplam % 100

İş Yükü ve AKTS Kredisi Hesaplaması

Aktiviteler Aktivite Sayısı İş Yükü
Ders Saati 16 48
Laboratuvar 16 16
Sınıf Dışı Ders Çalışması 16 73
Ödevler 3 6
Ara Sınavlar 1 2
Final 2 4
Toplam İş Yükü 149