Bu dersin sonunda öğrenciler; 1) Öğrencilerin Linux işletim sistemi kavramlarına hakim olmaları beklenir. 2) Öğrencilerin algoritma geliştirebilmeleri beklenir. 3) C'de temel program yazabilmeleri beklenir.
DERSİN VERİLİŞ BİÇİMİ
Yüz Yüze
DERSİN ÖNKOŞULLARI
Yok
ÖNERİLEN DERSLER
Bu dersle ilişkili önerilen başka dersler bulunmamaktadır
DERS TANIMI
Bu dersin amacı bilgisayarların çalışma mantığını kavrayıp, bilgisayar yardımıyla problem çözmeyi ve aşamalarını anlamak ve programlamaya giriş yapmaktır. Bunun için araç olarak da Linux İşletim Sistemi ve C programlama dili kullanılacaktır. Ders kapsamında işletim sistemlerinin çalışma prensipleri öğretilecek, problem çözme ve algoritma kavramı ele alındıktan sonra C dilinin temel yapısı ve özellikleri incelenecektir. Daha sonra da temel girdi/çıktı işlemleri, operatörler, kontrol deyimleri, diziler ve fonksiyonlar incelenecektir.
DERS İÇERİĞİ
HAFTA
KONULAR
1. Hafta
-İşletim sistemlerine genel bir bakış: İşletim Sistemi nedir? İşletim Sistemi servisleri. Karakter ve Grafik Kullanıcı Arayüzleri.
2. Hafta
-İşletim Sistemi çeşitleri. Linux ailesi. Linux tarihçesi, Linux Dağıtımları, Linux'un kurulumu. Bilgisayar donanımı.
3. Hafta
-Linux yazılım mimarisi. Linux GUI. XFREEE86 ve Linux GUI'leri. Linux uygulama yazılımları, Linux CUI: Konsol. Linux kabukları, Kabuk başlangıç dosyaları. Genel amaçlı birkaç Linux komutu.
4. Hafta
-Metin dosyaları ile çalışma: Pico, Vi, diğer editörler. Dosyalar ve dosya sistem yapısı: dosya çeşitleri.
5. Hafta
-Dosya ve dizinler arasında dolaşma. Linux'ta dosya gösterimleri ve dosyaların saklanması, Dosya güvenliği: Şifreleme tabanlı koruma. Erişim hakları. Özel erişim bit'leri.
6. Hafta
-Temel dosya işlemleri: cat, more, pr, head, tail, cp, mv, rm komutları, Bilgisayar ağları ve bilgisayar haberleşmesi. TCP/IP protokolü. İstemci/Sunucu mimarisi. Ipv4 adresleme.
7. Hafta
-İşlemler (processes): Linux işlem durumları. İşlem öznitelikleri. Foreground (önplan) ve Background (arkaplan) işlemler. Linux Daemon'lar. İşlemleri sonlandırma.
8. Hafta
-ARASINAV I
9. Hafta
-Algoritmaları ifade etme, C programı geliştirmedeki adımlar, C program yapısı, Yorumlar, "Preprocessor" Direktifleri,
10. Hafta
-Main fonksiyon prototipi, Değişken tanımlamaları, Veri ifade şekilleri, Ayrılmış kelimeler, Identifier'lar, Değişkenler
11. Hafta
-Veri türleri, Sabitler, Bildirimler ve Atama işlemleri, Aritmetik operatörler (+, -, *, /, %), Aritmetik ifadeler, Girdi Çıktı işlemleri: printf and scanf, Çıktıyı biçimlendirme, Hazır fonksiyonlar
12. Hafta
-Boolean operatörler: İlişkisel ve Mantıksal, İşlem öncelikleri: Basit, Bileşik, Karmaşık, Seçim yapıları, Basit "if" ifadesi, "if.. else" İç içe geçmiş If ifadeleri, Switch ifadesi , Sayaç temelli döngüler (for)
13. Hafta
-Döngü örnekleri, "Sentinel"-kontrollü döngüler (while), Veri doğrulama ve kontrol, Artırma - Azaltma operatörleri, İç içe geçmiş döngüler, Döngü dönüşümleri, Tekrarlama ifadeleri
14. Hafta
-2. ARA SINAV
ZORUNLU YA DA ÖNERİLEN KAYNAKLAR
"Linux: The Textbook", Sarwar, Koretsky, Sarwar, Addison Wesley "Linux for Programmers and Users", Glass, Ables, Prentice Hall "Problem Solving and Program Design in C", Jeri R. Hanly, Elliot B. Koffman, 5th edition, Addison Wesley, 2006 "C How to Program", Harvey M. Deitel, Paul J. Deitel, 4th edition, Prentice Hall, 2003 "Programlamayı C ile Öğreniyorum", M. Yorulmaz, S. Yorulmaz, Palme Yayıncılık, Yenilenmiş 3. Baskı
ÖĞRETİM YÖNTEM VE TEKNİKLERİ
Anlatım,Soru-Cevap,Örnek Olay İncelemesi,Sorun/Problem Çözme
DEĞERLENDİRME YÖNTEMİ VE GEÇME KRİTERLERİ
Sayısı
Toplam Katkısı(%)
Ara Sınav
2
50
Ödev
5
5
Mini-Sınav
5
5
Toplam(%)
60
Yıl İçinin Başarıya Oranı(%)
60
Finalin Başarıya Oranı(%)
40
Toplam(%)
100
DİL
Türkçe
STAJ / UYGULAMA
Yok
PROGRAM YETERLİLİKLERİ (P) / DERSİN ÖĞRENME KAZANIMLARI (Ö) MATRİSİ