Bilgisayar Mühendisliği Lisans Programı

Algoritma ve İleri Bilgisayar Programlama(INF103)

Ders Kodu Dersin Adı Yarıyıl Teori Uygulama Lab Kredisi AKTS
INF103 Algoritma ve İleri Bilgisayar Programlama 2 2 0 2 3 3
Ön Koşul
Derse Kabul Koşulları
Dersin Dili Fransızca
Türü Zorunlu
Dersin Düzeyi Lisans
Dersi Veren(ler) Özlem DURMAZ İNCEL odurmaz@gmail.com (Email) Merve ÜNLÜ MENEVŞE munlu@gsu.edu.tr (Email)
Dersin Yardımcıları
Dersin Amacı Bu derste birinci sınıftaki Programlamaya Giriş dersinde işlenen temel kavramlar hakkındaki bilgiler pekiştirilir. Derste özellikle, göstericiler, dinamik bellek tahsisi ve yönetimi, dosya işlemleri, algoritma analizine giriş ve veri yapılarına giriş konuları üzerinde durulur. Ders uygulamalarında C programlama dili ve Linux işletim sistemi kullanılır.
İçerik 1. Giriş ve Hatırlatmalar
2. Gelişmiş Değişken Tipleri
3. C Önişlemcisi, Kütüphaneler
4. Göstericilere Giriş
5. Dinamik Bellek Yönetimi
6. Göstericiler, Fonksiyonlar ve Diziler
7. Katar İşlemleri
8. Veri Yapılarına Giriş
9. Gelişmiş Veri Yapıları
10. Algoritma Analizi
Dersin Öğrenme Çıktıları Bu dersi başarıyla tamamlayan öğrenci aşağıdaki konularda yeterliliğe sahip olacaktır:

1. Algoritma tasarlayabilme becerisi,
2. İleri C Programlama yeteneği,
3. Bellek Yönetimi yetisi,
4. Algoritma Analizi Yöntemlerini kullanabilme ve aralarındaki farkları açıklama yetisi,
5. Arama ve Sıralama Algoritmaları hatırlayabilme ve problemlere uygulama becerisi,
6. Temel Veri Yapılarını hatırlayabilme ve problemlere uygulama becerisi
Öğretim Yöntemleri Yüzyüze anlatım ve programlama.
Kaynaklar 1. Ders yansıları ve notları
2. Yardımcı kaynak kitaplar
- 21st Century C, Ben Klemens, O’Reilly Media, 978-1-449-32714-9, 2013
- Understanding and Using C Pointers, Richard Reese, O’Reilly Media, 978-1-449-34418-4, 2013
Ders İçeriğini Yazdır
Teori Konu Başlıkları
Hafta Konu Başlıkları
1 Linux'e Giriş, Statik Dinamik Kütüphaneler
2 Dosya İşlemleri
3 Algoritma Analizine Giriş, Büyük O Gösterimi, En kötü ve en iyi durum analizi
4 Arama Algoritmaları ile Analiz , Böl ve Parçala Metodu, Temel Teorem (Master Teoremi)
5 Dinamik Bellek Yönetimi
6 Temel Veri Yapılarına Giriş - Bağlı Liste
7 Bağlı Liste Uygulamaları
8 Ara Sınav
9 Yığın Veri Yapısı ve Uygulamaları
10 Kuyruk Veri Yapısı ve Uygulamaları
11 Sıralama Algoritmalarına Giriş (Eklemeli Sıralama, Birleştirmeli Sıralama)
12 Sıralama Algorimalarının Analizi (Hızlı Sıralama, Yığın Sıralama)
13 Heap Veri Yapısı ve Sıralama
14 Hash Veri Yapısı
Uygulama Konu Başlıkları
Hafta Konu Başlıkları
1 Linux'e Giriş
2 Statik Dinamik Kütüphaneler
3 Fonksiyonlar Yapılar Kullanarak Uygulama Geliştirme
4 Gösterici Uygulamaları
5 Dinamik Bellek Yönetimi Uygulamaları
6 Gösterici, Fonksiyon ve Dizi Uygulamaları
7 Katar Uygulamaları
8 Vize haftası
9 Dosya İşlemleri Uygulamaları
10 Yığın ve Kuyruk Veri Yapıları Uygulamaları
11 Gelişmiş Veri Yapıları Uygulamaları
12 Örnek Sıralama Algoritmaları Analizi
13 Örnek Sıralama Algoritmaları Analizi
14 Uygulama Sınavı
Başarı Notuna Etki Oranları
  Sayı Katkı Payı
Toplam 0 0
Yarıyıl İçi Çalışmaları
  Sayı Katkı Payı
Ödevler 5 15
Sunum 0 0
Arasınavlar (Hazırlık Süresi Dahil) 1 20
Proje 0 0
Laboratuar 0 0
Diğer Uygulamalar 0 0
Kısa Sınavlar 0 0
Dönem Ödevi / Projesi 1 10
Portfolyo Çalışmaları 0 0
Raporlar 0 0
Öğrenme Günlükleri 0 0
Bitirme Tezi/Projesi 0 0
Seminer 0 0
Diğer 0 0
Toplam 7 45
Numara Program Yeterlilikleri Puan
1 2 3 4 5
1 Matematik, fizik ve mühendislik bilimlerine özgü konularda yeterli bilgi birikimi; bu alanlardaki kuramsal ve uygulamalı bilgileri, mühendislik problemlerinin modellenmesi ve çözümünde kullanabilme becerisi. X
2 Karmaşık bilgisayar mühendisliği 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 Yazılımsal veya donanımsal karmaşık bir sistemi, süreci veya donanımı 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
4 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
5 Analitik düşünce ile bir sistemi, sistem bileşenini ya da süreci analiz etme, modelleme, deney tasarlama ve yapma, veri toplama, çözüm algoritmaları üretebilme, uygulamaya alma ve geliştirme becerileri. X
6 Disiplin içi ve çok disiplinli takımlarda etkin biçimde çalışabilme becerisi; bireysel çalışma becerisi. X
7 Türkçe sözlü ve yazılı etkin iletişim kurma becerisi; en az iki yabancı dil bilgisi; etkin rapor yazma ve yazılı raporları anlama, yazılım ve donanım tasarımını, gerekirse teknik resim metotları kullanarak raporlayabilme, etkin sunum yapabilme becerisi. X
8 Bilgiye erişebilme ve bu amaçla kaynak araştırması yapabilme, veri tabanları ve diğer bilgi kaynaklarını kullanabilme becerisi X
9 Yaşam boyu öğrenmenin gerekliliği bilinci; kendini sürekli yenileme becerisi. X
10 Mesleki etik ilkelerine uygun davranma, mesleki sorumluluk bilinci; mühendislik uygulamalarında kullanılan standartlar hakkında bilgi.
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.
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. X
13 Bilgisayar mühendisliği uygulamalarının hukuki ve etik boyutları konusunda farkındalık.
Etkinlikler Sayı Süre Toplam İş Yükü
Ders Süresi 14 2 28
Sınıf Dışı Çalışma Süresi 7 1 7
Ödevler 5 1 5
Arasınavlar (Hazırlık Süresi Dahil) 1 5 5
Proje 1 9 9
Laboratuar 14 2 28
Yarıyıl Sonu Sınavı (Hazırlık Süresi Dahil) 1 5 5
Portfolyo Çalışmaları 1 16 16
Toplam İş Yükü 103
Toplam İş Yükü / 25 4,12
Dersin AKTS Kredisi 4
Scroll to Top