Ders Kodu Teorik Uygulama Lab. Mesleki Oryantasyon ve Yazılım Mühendisliğine Giriş Ön Koşullar : Yok Önerilen Dersler : Ulusal Kredi Öğretim planındaki AKTS 520000000001193 2 0 0 2 4 Dersin Türü : Programın Temel Dersleri Dersin Dili : İngilizce Dersin Seviyesi : Dersin Veriliş Biçimi (Mode of delivery) : Yüz yüze Ders Koordinatörü : Yrd.Doç.Dr.Zeynep Altan Dersi verenler Dersin Yardımcıları : : Yrd.Doç.Dr.Zeynep Altan Dersin Yürütülmesi Hakkında (Örgün / Yüz Yüze Eğitim için) (Harmanlanmış Eğitim için) (Uzaktan Eğitim için) Bu dersten en iyi şekilde faydalanmak ve başarılı olmak için; derse devam edilmelidir. Mühendislik mesleği etik bakış açısına göre değerlendirilir. Yazılım Mühendisliğinin temel ilkeleri anlatılır; öğrencilerin derslerden sonra İnternet te araştırma yaparak öğrendiklerini pekiştirmelidir. Ders sonrası bu araştırmalar bazı haftalar ödev olarak hazırlanır. Ödevler ders başlamadan önce teslim edilmelidir. Geç teslim edilen ödevler kabul edilmez. Dersin işleyişinde temel kural öğrenme esnasında öğrencinin de aktif olarak öğrenme içerisinde çekilmesidir..
Dersin Amacı Yazılım mühendisliği eğitimi ile kazanılacak bilgi ve beceriler konusunda bilgi edinilmesi. Bilgisayar Bilimleri ve Yazılım Mühendisliği disiplinlerinin temel yapı taşlarının öğrenilmesi; Yazılım Mühendisliği meslek etiği ile ilgili bilgilendirmeler, Bilgisayar yazılımının tarihsel gelişimi ve buna bağlı olarak bilgisayar donanımındaki gelişmelerin öğrenilmesi. Yazılımların ve donanımların gelişmesine neden olan teknolojik altyapının öğrenilmesi Yazılım projesinin hazırlanışı ile ilgili bilgilenmek, Yazılım geliştirme yöntemlerini ve aralarındaki farkları öğrenmek, Yazılım projesinin yönetimi hakkında bilgi edinmek. Ders İçeriği Hesaplama niçin gereklidir?, Yazılım mühendisliğinin bilgisayar biliminin diğer disiplinleri ile ilişkisi, yazılım ürünlerinin başarısızlık nedenleri, meslek etiği, 1. kuşak bilgisayarlar ve programlama dilleri, 2. kuşak bilgisayarlar ve programlama dilleri, 3. kuşak bilgisayarlar ve programlama dilleri, 4. kuşak bilgisayarlar ve programlama dilleri, 5. kuşak bilgisayarlar ve programlama dilleri, derleyici, yorumlayıcılar, işletim sistemleri, programlama dillerinin sınıflandırması, yazılım geliştirme problemi, endüstriyel yazılım mühendisliği, yazılım geliştirme yöntemleri ve aralarındaki farklılıklar. Öğretim Yöntemleri (kısaltmalar): 1:Anlatım, 2:Soru-Cevap, 3:Tartışma, 4:Alıştırma ve Uygulama, 5:Gösteri, 6:Gösterip Yaptırma, 7:Rol Oynama, 8:Grup Çalışması, 9:Benzetim, 10:Beyin Fırtınası, 11:Altı Şapka,12:Örnek Olay, 13:Deney / Laboratuvar/Atölye/Alan Uygulaması/Staj,14:Bireysel Çalışma, 15:Problem Çözme, 16:Proje Temelli Öğrenme). Ölçme Yöntemleri (kısaltmalar): A:Sınav (kâğıt ile yapılan ara sınav ve dönem sonu sınavları), B:Kısa Sınav, C:Juri/Kurul Sınavı, D:Ödev, E:Rapor, F:Araştırma Makalesi, G:Sunum, H:Portfolyo, I:Uygulamalı Beceri Gösterimi, J:Proje İzleme, K:Grup Projesi İzleme, L: Tez İzleme, M:Devam (En fazla %10) Öğrenme Hedefleri Sub-Outcomes / Behaviours 1.1. Bilgisayar yazılımın günlük yaşantıdaki yeri ve önemi bilinir. 1.2. Bilgisayar bilimlerinin diğer alanları ile ilişki kurar. 2.1. Bilgisayar bilimlerinin tarihçesini karşılaştırabilme 2.2. Yazılım ve donanımın Öğrenme Kazanımları / Öğrenme Hedefleri / Öğretim Ölçme Yöntemleri Öğrenme Yüz Yüze Eğitimde Kazanımı (Örgün) Harmanlanmış Eğitimde (Sistemde ilgili haftalar ile Öğretim Ölçme Öğretim Ölçme Öğretim ilişkilendirilecektir) Yöntemleri Yöntemleri Yöntemleri Yöntemleri Yöntemleri Learning Outcomes 1. Yazılım mühendisliğinin temel ilkelerinin öğrenilmesi 2. Bilgisayar yazılımı ve buna bağlı olarak bilgisayar donanımının gelişimini 1, 2,14 D 1,2,3,14 A,B,D,M Uzaktan Eğitimde Ölçme Yöntemleri
gelişmesine paralel olarak bilgisayar bilimlerinin temel kavramları pekişir 3.1. Derlenebilen ye yorumlanan programlama dillerini ayırt eder. 3.2. Yapısal programlama ile nesneye yönelik programlama dillerini ve özelliklerini bilir 3.3. Düşük düzeyli diller ile yüksek düzeyli dilleri karşılaştırır 3.4.Genel amaçlı ve özel amaçlı dilleri örnekler. 4.1Ürün geliştirmedeki güçlükleri ve kısıtları bilir 4.2. Hangi ürünün hangi yöntem ile geliştirileceğine karar verir. 4.3. Ürün geliştirme yöntemleri arasındaki farkı bilir. 5.1.Ürün geliştirme aşamalarında üstlendiği rolün gereklerini yerine getirir. 5.2. Çözülen probleme göre karar verilen yazılım geliştirme yönteminde tüm kullanıcılarının üstlenecekleri rollerin farkındadır. karşılaştırır 3. Programlama dillerini işlevlerine göre sınıflandırır 4. Yazılım ürünün geliştirilmesi 5. Yazılım ürününü geliştirmede üstlenilen roller 1,2,3 4, 14 1, 2, 3,4, 10, 14 2, 3, 10, 14 A, D,M A,D,F D,
Haftalık Konular Hafta 1 2 3 4 5 6 7 8 9 10 Konular 1.Yazılım Mühendisliği Mesleği Niçin Gereklidir? 1.1. Yazılım Mühendisliğinin Bilgisayar Bilimleri, Bilgisayar Mühendisliği ve Sistem Mühendisliğinden farkı. 2. Mesleki Etiğin Gerekliliği 2.1 Mühendislik Etiği, Mühendislikte Dürüstlük, Mühendislik Sorumluluğu 2.2 Mühendislik Etiği İlkeleri 3 Bilgisayar Bilimlerinin Tarihçesi 3.1 1. Kuşak Makineler ve Programlama Dilleri 3.1.1 Bu dönemdeki Teknolojik Yenilikler 3.1.1.1 Vakum Tüpler 4. Bilgisayar Bilimlerinin Tarihçesi 4.1. 2. kuşak Makineler ve Programlama Dilleri 4.1.1 Bu Dönemdeki Teknolojik Yenilikler 4.1.1.1 Transistörler 5.. Bilgisayar Bilimlerinin Tarihçesi 5.1. 3. kuşak Makineler ve Programlama Dilleri 5.1.1 Bu Dönemdeki Teknolojik Yenilikler 5.1.1.1 Entegre Devreler 6. Bilgisayar Bilimlerinin Tarihçesi 6.1. 4. kuşak makineler ve programlama dilleri 6.1.1 Bu dönemdeki Teknolojik Yenilikler 6.1.1.1 Mikroişlemciler 7. Bilgisayar Bilimlerinin Tarihçesi 7.1. 5. kuşak Makineler ve Programlama Dilleri 7.1.1 Bu Dönemdeki Teknolojik Yenilikler 8 Programlama Dillerinin Sınıflandırması 8.1 Üst Düzey Programlama Dilleri 8.2 Makine dili 8.3 Derleyici ve Yorumlayıcı 8.3.1 Derlenebilen ve Yorumlanabilen Dil Örnekleri 9 Programlama Dillerinin Sınıflandırması 9.1 İşletim Sistemi 9.1.1 Uygulama Programları ve İşletim Sistemi Programları 9.2 Özel Amaçlı Programlama Dilleri ve Genel Amaçlı Programlama Dilleri 10. Yazılım Geliştirme Problemi 10.1 Proje ve Proses 10.2 Yazılım Geliştirme Prosesleri
11 12 13 14 11 Yazılım Geliştirme Yöntemleri 11.1 Şelale yöntemi 11.1.1Olumlu ve olumsuz özellikleri. 11.2 Prototip yöntemi 11.2.1 Olumlu ve olumsuz özellikleri 11.3 Şelale Yöntemi ile Prototip Yöntemin Karşılaştırması 12 Yazılım Geliştirme Yöntemleri 12.1 İteratif Yazılı Geliştirme Yöntemi 12.2 Spiral Yazılım Geliştirme Yöntemi 13 Yazılım Geliştirme Yöntemleri 13.1 Birleştirilmiş Modelleme Dili UML ile Yazılım Geliştirme 13.2 XP Modelleme ve Programlama 13.3 Açık Sistemlerin Olumlu ve Olumsuz Tarafları 14 Yazılım Geliştirme Yöntemleri 14.1 Çevik Yazılım Geliştirme 14.2 Yazılım Projesinin Yönetimi KAYNAKLAR Ders Notu [1] http://zeynepaltan.info adresinden yayınlanan indirilebilir ders malzemeleri Diğer Kaynaklar [2] Concise Introduction to Software Engineering, Pankaj Jalote, 2008, Springer.
Değerlendirme Yüz Yüze Eğitimde (Örgün) Dönem içi değerlendirme araçları (%40-70) Sayısı Katkı Payı (%) (Toplam A: Sınav (arasınav) %100) 1 25 Harmanlanmış Eğitimde Sayısı Katkı Payı (%) (Toplam %100) Uzaktan Eğitimde Sayısı Katkı Payı (%) (Toplam %100) Ara değerlendirme (Sadece 1 ara değerlendirme aracı seçiniz) Ara sınav salon gerektiriyor F:Araştırma Makalesi H:Portfolyo I:Uygulamalı Beceri Gösterimi J:Proje İzleme K:Grup Projesi İzleme L:Tez İzleme B:Kısa Sınav Evet D:Ödev 3 25 E:Rapor Diğer dönem içi değerlendirme faaliyetleri (En az 2 diğer araç seçiniz) (Dönem sonu sadece 1 araç ile yapılıyor, katkı oranını ilgili satıra yazınız) F:Araştırma Makalesi G:Sunum H:Portfolyo I:Uygulamalı Beceri Gösterimi J:Proje İzleme (Project) K:Grup Projesi İzleme (Project) L:Tez İzleme (Project) M:Devam (En fazla %10) Dönem sonu değerlendirme araçları (%30-60) Gözetimsiz yapılan değerlendirmelerin toplamı (özellikle uzaktan eğitimde %20 yi aşamaz! A:Sınav 40 (Dönemsonu Sınavı) Dönem sonu sınavı salon gerektiriyor C:Juri/Kurul Sınavı Evet 10
Etkinlikler Devam (Bu kısmı sabit giriniz) Sınıf Dışı Ders Çalışma Sayısı 14 hafta Yüz Yüze Eğitimde (Örgün) Süresi 2 (ders saati) AKTS / İŞ YÜKÜ TABLOSU Toplam İş Yükü 28 (Bireysel 14 2 28 Çalışma=Ön çalışma, pekiştirme) A: Sınav (arasınav) 1 15 15 Harmanlanmış Eğitimde Sayısı Süresi Toplam İş Yükü Sayısı Uzaktan Eğitimde Süresi Toplam İş Yükü D:Ödev 3 6 18 E:Rapor F:Araştırma Makalesi G:Sunum H:Portfolyo I:Uygulamalı Beceri Gösterimi J:Proje İzleme K:Grup Projesi L:Tez İzleme (A+C) Dönem sonu 1 20 20 Değerlendirmesi (Sınav için hazırlık ve sınav süresi dahil) Toplam İş Yükü 109 Toplam İş Yükü / 25 4.36 Dersin AKTS 4 Kredisi
Diğer Bileşenler Bu ders tasarım/özgün üretimler içeriyor (Evet / Hayır) (Sosyal bilimlerde özgün fikirler ile raporlar üretiyorlarsa Evet yazınız) Bu ders disiplinlerarası çalışmalar içeriyor (Evet / Hayır) Bu ders farklı program öğrencilerinin birlikte ürün üretmesini içeriyorsa Evet yazınız. Bu ders staj/işyeri uygulamaları içeriyor (Evet / Hayır) Bu ders staj / işyeri uygulaması içeriyorsa Evet i işaretleyiniz. E / H Hayır E / H Evet E / H Hayır ISCED GENEL ALAN KODU GENEL ALANLAR Dersin Öğretim Alanlarına Dağılımı ISCED TEMEL ALAN KODU EĞİTİM VE ÖĞRETİM TEMEL ALANLARI http://tyyc.yok.gov.tr/?pid=37 http://www.tyyc.sakarya.edu.tr/?pid=37 1 Eğitim 14 Öğretmen Yetiştirme ve Eğitim Bilimleri 0 2 Beşeri Bilimler ve Sanat 21 Sanat 0 22 Beşeri Bilimler 0 Toplam %100 3 Sosyal Bilimler, İşletme ve Hukuk 31 Sosyal ve Davranış Bilimleri 0 32 Gazetecilik ve Enformasyon 0 34 İşletme ve Yönetim Bilimleri 38 Hukuk 0 4 Bilim 42 Yaşam Bilimleri 0 44 Doğa Bilimleri 0 46 Matematik ve İstatistik 0 48 Bilgisayar 50 5 Mühendislik, Üretim ve İnşaat 52 Mühendislik 50 54 Üretim ve İşleme 0 58 Mimarlık ve Yapı 0 6 Tarım 62 Tarım, Ormancılık, Hayvancılık ve Su Ürünleri 0 64 Veterinerlik 0
7 Sağlık ve Refah 72 Sağlık 0 76 Sosyal Hizmetler 0 8 Hizmet 81 Kişisel Hizmetler 0 84 Ulaştırma Hizmetleri 0 85 Çevre Koruma 0 86 Güvenlik Hizmetleri 0