Yazılım Mühendisliği | |||||
Lisans | TYYÇ: 6. Düzey | QF-EHEA: 1. Düzey | EQF-LLL: 6. Düzey |
Ders Kodu: | YAZ201 | ||||
Ders İsmi: | Algoritmalar 1 | ||||
Ders Yarıyılı: | Güz | ||||
Ders Kredileri: |
|
||||
Öğretim Dili: | Türkçe | ||||
Ders Koşulu: | |||||
Ders İş Deneyimini Gerektiriyor mu?: | Hayır | ||||
Dersin Türü: | Zorunlu | ||||
Dersin Seviyesi: |
|
||||
Dersin Veriliş Şekli: | Yüz yüze | ||||
Dersin Koordinatörü: | Dr. Öğr. Üy. MUHAMMED DAVUD | ||||
Dersi Veren(ler): |
|
||||
Dersin Yardımcıları: |
Dersin Amacı: | Bu ders, temel programlama tekniklerini görmüş ve kavramış olan öğrencilere, algoritma geliştirme ve temel algoritmik tekniklerin problem çözmede nasıl uygulanabileceğini göstermeyi amaçlamaktadır. |
Dersin İçeriği: | Bu derste bilgisayar problemlerinin matematiksel olarak modellenmesine giriş yapılır. Derste bilgisayar bilimlerinin, arama, sıralama, özyineleme, çizge teorisi başta olmak üzere, temel algoritmaları işlenir. Ders algoritma geliştirmeyle programlama arasındaki ilişkiyi vurgular. |
Bu dersi başarıyla tamamlayabilen öğrenciler;
1) Problem çözme amaçlı olarak çeşitli algoritmaları tanımlayabilme, açıklayabilme ve kullanabilme. 2) Mevcut algoritmaları değiştirebilme, yeni ve etkin algoritmalar tasarlayabilme. 3) Verilen yeni bir problemi çözmek üzere uygun bir algoritma kurgulayabilme. 4) Algoritmalar ve temel veri yapıları (yığıtlar, kuyruklar, diziler, vs.) arasındaki ilişkileri açıklayabilme. |
Hafta | Konu | Ön Hazırlık |
1) | Minimum kapsayan ağaçlar. | Bölüm 4.3 |
2) | Programlama modeli ve veri soyutlama | Bölüm 1.1 |
3) | Sıralama: selection sırlama, insertion sıralama, and shell sıralama. | Bölüm 2.1 |
4) | Sıralama (devam): merge sıralama, quick sıralama. | Bölüm 2.2, 2.3 |
5) | Öncelik tabanlı kuyruklar ve heap sıralama. | Bölüm 2.4 |
6) | Arama: Elementer sembol tabloları ve iki arama. | Bölüm 3.1, 3.2 |
7) | Hash algoritmaları: ayrık zincirleme ve linear sondalama. | Bölüm 3.4 |
8) | Ara sınav | |
9) | Yönlendirilmemiş çizgeler. | Bölüm 4.1 |
10) | Yönlendirilmiş çizgeler. | Bölüm 4.2 |
11) | En kısa yollar. | Bölüm 4.4 |
12) | Sicim sıralama | Bölüm 5.1 |
13) | Altsicim arama ve kalıp uydurma | Bölüm 5.2 |
14) | Düzenli ifadeler. | Bölüm 5.4 |
15) | Veri sıkıştırma algoritmaları | Bölüm 5.5 |
Ders Notları / Kitaplar: | Algorithms, 4th Edition by Robert Sedgewick and Kevin Wayne, 2011. |
Diğer Kaynaklar: |
Ders Öğrenme Kazanımları | 1 |
2 |
3 |
4 |
|||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
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. |
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. | 1 |
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. | 1 |
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. | 2 |
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. | 1 |
6) | Çok disiplinli takımlarda etkin biçimde çalışabilme becerisine sahiptir. | 1 |
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. | 1 |
8) | Etik ilkelerine uygun davranma, mesleki ve etik sorumluluk bilincine sahiptir; mühendislik uygulamalarında kullanılan standartlar hakkında bilgiye sahiptir. | 1 |
9) | Bir yabancı dili Avrupa Dil Portföyü kriteri açısından en az B1 düzeyinde kullanabilme becerisine sahiptir. | 1 |
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. | 2 |
11) | Bilgisayar yazılımı ile birlikte bilişim ve iletişim teknolojilerini Avrupa Bilgisayar Kullanma Lisansı İleri düzeyinde kullanabilme becerisine sahiptir. | 1 |
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. | 1 |
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. | 3 |
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 |
Yarıyıl İçi Çalışmaları | Aktivite Sayısı | Katkı Payı |
Devam | 1 | % 5 |
Küçük Sınavlar | 4 | % 20 |
Ödev | 4 | % 20 |
Ara Sınavlar | 1 | % 20 |
Final | 1 | % 35 |
Toplam | % 100 | |
YARIYIL İÇİ ÇALIŞMALARININ BAŞARI NOTU KATKISI | % 65 | |
YARIYIL SONU ÇALIŞMALARININ BAŞARI NOTUNA KATKISI | % 35 | |
Toplam | % 100 |
Aktiviteler | Aktivite Sayısı | Aktiviteye Hazırlık | Aktivitede Harçanan Süre | Aktivite Gereksinimi İçin Süre | İş Yükü | ||
Ders Saati | 14 | 0 | 3 | 42 | |||
Uygulama | 14 | 0 | 1 | 14 | |||
Sınıf Dışı Ders Çalışması | 14 | 3 | 42 | ||||
Ödevler | 4 | 10 | 40 | ||||
Küçük Sınavlar | 4 | 1 | 4 | ||||
Ara Sınavlar | 1 | 0 | 0 | ||||
Final | 1 | 0 | 0 | ||||
Toplam İş Yükü | 142 |