YAZILIM MÜHENDİSLİĞİ | |||||
Lisans | TYYÇ: 6. Düzey | QF-EHEA: 1. Düzey | EQF-LLL: 6. Düzey |
Ders Kodu | Ders Adı | Yarıyıl | Teorik | Pratik | Kredi | AKTS |
SEN1001 | Programlamaya Giriş (Java) | Güz | 2 | 2 | 3 | 6 |
Öğretim Dili: | İngilizce |
Dersin Türü: | Must Course |
Dersin Seviyesi: | LİSANS |
Dersin Veriliş Şekli: | Yüz yüze |
Dersin Koordinatörü: | Dr. Öğr. Üyesi ÖZGE YÜCEL KASAP |
Dersi Veren(ler): |
Öğ.Gör. DUYGU ÇAKIR YENİDOĞAN Arş.Gör. SEVGİ CANPOLAT Arş.Gör. MERVE ARITÜRK Dr. Öğr. Üyesi BETÜL ERDOĞDU ŞAKAR Arş.Gör. ÇİĞDEM ERİŞ Dr. Öğr. Üyesi TAMER UÇAR |
Opsiyonel Program Bileşenleri: | Yok |
Dersin Amacı: | Programlamada tecrübesi olan ya da olmayan öğrencilere yönelik bu derste nesne tabanlı yapıya sahip Java programlama diline giriş yapılmaktadır. Bu amaç doğrultusunda öğrenciler Java dilini kullanarak temel proglamlama becerilerini edinerek, Sun Microsystems, Inc. Java platformunda Eclipse, Netbeans gibi başka tümleşik geliştirme ortamlarında (IDE) derleyip çalıştırabileceklerdir. |
Bu dersi başarıyla tamamlayabilen öğrenciler; 1. Java programlama dillerinde temel kavramları ve kategorileri tanımlar 2. Belirli bir yazılım sorununu çözmek için, Java programları geliştirir, test eder ve çalıştırır 3. Int, char, double, String gibi temel veri tiplerini tanımlar 4. Aritmetik, ilişkisel ve mantıksal ifadelerin, tip dönüşümlerinin, atama ifadelerinin, seçme ve yineleme ifadelerini ve koşullu dallanmaları tanımlar 5. Metodları kullanma, ihtiyaç durumunda girdi gönderme, çıktı alma özelliklerini kullarak, public/private ve static/static olmayan metodları oluşturma ve çağırma becerisini gösterir. 6. Java programında yineleme yapılarını (for, while, do-while) kullanma becerisini gösterir 7. Java dilinde dizi ve array list yapılarını kullarak çıktılar alır. 8. Math sınıfına ait random metodu ile ya da Random sınıfına ait nextInt metodu ile rastgele sayılar oluşturabilme becerisine sahiptir. 9. Hazırladığı sınıfları kullanarak nesneleri oluşturma ve bu sınıfları metodlar içerisinde girdi ya da çıktı olarak tanımlama, dizi ve arrayList yapıları içinde saklama becerilerine sahiptir |
Dersin içeriği temel programlama için gerekli ilkel ve referans tipler, atamalar, aritmetik ve mantıksal operatörler, kontrol ifadeleri (if/else, switch/case kontrolleri ve döngüler), metod ve nesneler, UML diyagramları, set/get metodları, yapıcılar, tek ve çok boyutlu diziler ve Arraylist'ler başlıklarından oluşmaktadır. Final sınavına girebilmek için en az 4 derse katılım şartı aranmaktadır. |
Hafta | Konu | Ön Hazırlık |
1) | Oryantasyon | Ders işleniş şekli ve karşılıklı beklentiler |
2) | Java uygulamarına ve programcılığa giriş | Kullanılacak ortamın kurulması |
3) | Kontol ifadeleri: Bölüm 1 | Ünite 3 |
4) | Kontrol ifadeleri: Bölüm 2 | Ünite 4 |
5) | Metodlar | Ünite 5 |
6) | Diziler | Ünite 6 |
7) | Diziler 2 | Ünite 6&7 |
8) | Tekrar + Soru/Cevap + Ara Sınav | |
9) | Çok boyutlu Diziler | Ünite 8&9 |
10) | Sınıf ve nesnelere giriş | Ünite 10 |
11) | Sınıf ve nesneler II | Ünite 10 |
12) | Sınıf ve metodlar: Detaylı inceleme | Ünite 11 |
13) | Sınıf ve metodlar: Detaylı inceleme 2 | Ünite 13 |
14) | String Veri Yapısı | Ünite 13 |
Ders Notları / Kitaplar: | Paul Deitel, Harvey Deitel, Java: How to Program, 9th Edition, 2011, Pearson, ISBN-10: 0132575663, Edition: 10th |
Diğer Kaynaklar: | Liang, Introduction to Java Programming, 8e, Pearson Education, Addison Wesley, 2008, ISBN 978-0-321-50968-0 |
Yarıyıl İçi Çalışmaları | Aktivite Sayısı | Katkı Payı |
Devam | 8 | % 0 |
Laboratuar | 2 | % 20 |
Küçük Sınavlar | 9 | % 22 |
Ara Sınavlar | 1 | % 18 |
Final | 1 | % 40 |
Toplam | % 100 | |
YARIYIL İÇİ ÇALIŞMALARININ BAŞARI NOTU KATKISI | % 60 | |
YARIYIL SONU ÇALIŞMALARININ BAŞARI NOTUNA KATKISI | % 40 | |
Toplam | % 100 |
Aktiviteler | Aktivite Sayısı | Süre (Saat) | İş Yükü |
Ders Saati | 14 | 2 | 28 |
Laboratuvar | 14 | 2 | 28 |
Sınıf Dışı Ders Çalışması | 5 | 3 | 15 |
Ödevler | 5 | 10 | 50 |
Ara Sınavlar | 1 | 15 | 15 |
Final | 1 | 18 | 18 |
Toplam İş Yükü | 154 |
Etkisi Yok | 1 En Düşük | 2 Düşük | 3 Orta | 4 Yüksek | 5 En Yüksek |
Dersin Program Kazanımlarına Etkisi | Katkı Payı | |
1) | Karmaşık mühendislik problemlerine yönelik yazılım proje, süreç ve ürünlerine ait fonksiyonel ve fonksiyonel olmayan özellikleri tanımlayabilmek. | 4 |
2) | Karmaşık mühendislik problemlerinde yazılım mimarisi, bileşenleri, ara yüzleri ve sisteme ait diğer alt bileşenleri tasarlayabilmek. | 5 |
3) | Kodlama, doğrulama, sınama ve hata ayıklama konularını da içerecek şekilde karmaşık yazılım sistemleri geliştirebilmek. | 5 |
4) | Karmaşık mühendislik problemlerinde yazılımı, programın davranışlarını beklenen sonuçlara göre sınayarak doğrulayabilmek. | 2 |
5) | Karmaşık yazılım sistemlerinin çalışması sırasında, çalışma ortamının değişmesi, yeni kullanıcı istekleri ve yazılım hatalarının ortaya çıkması ile meydana gelen bakım faaliyetlerine yönelik işlemleri yapabilmek. | 1 |
6) | Karmaşık yazılım sistemlerinde yapılan değişiklikleri izleyebilmek ve kontrol edebilmek, entegrasyonunu sağlayabilmek, yeni sürümlerini sistematik olarak planlayabilmek ve riskleri yönetebilmek. | 1 |
7) | Disiplin içi ve disiplinler arası takımlarda görev alarak karmaşık yazılım sistemleri yaşam süreçlerini tanımlayabilmek, değerlendirebilmek, ölçebilmek, yönetebilmek ve uygulayabilmek. | 1 |
8) | Karmaşık mühendislik problemlerinde gerçekçi kısıtlar ve koşullar altında yazılım gereksinimlerini toplama, yazılımı tasarlama, geliştirme, sınama, bakımını yapma konularındaki çeşitli araçları ve yöntemleri kullanabilmek. | 4 |
9) | Temel kalite metrikler tanımlayabilmek, yazılım yaşam döngüsü süreçlerini uygulayabilmek, yazılım kalitesini ölçebilmek, kalite model karakteristiklerini tanımlayabilmek, standartları uygulayabilmek ve bunları karmaşık yazılım sistemlerini analiz etmekte, tasarlamakta, geliştirmekte, doğrulamakta ve sınamakta kullanabilmek. | 3 |
10) | Yazılım mühendisliği ile ortak sınırlara sahip olan matematik, fen bilimleri, bilgisayar mühendisliği, endüstri mühendisliği, sistem mühendisliği, ekonomi, yönetim ve sürdürülebilir kalkınma gibi diğer disiplinler hakkında teknik bilgi kazanabilmek ve bunlar aracılığıyla yenilikçi fikirleri karmaşık mühendislik problemlerinde ve girişimcilik faaliyetlerinde kullanabilmek. | 3 |
11) | Yazılım mühendisliği kültürü ve etik anlayışını kavrayabilmek ve bunları yazılım mühendisliğinde uygulayabilecek temel bilgilere sahip olmak, meslek hayatı boyunca gerekli teknik becerileri öğrenip başarıyla uygulayabilmek. | 1 |
12) | Yabancı dil ve Türkçe kullanarak etkin rapor yazabilmek ve yazılı raporları anlayabilmek, tasarım ve üretim raporları hazırlayabilmek, etkin sunum yapabilmek, açık ve anlaşılır talimat verebilmek ve alabilmek. | 4 |
13) | 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ı ile mühendislik çözümlerinin hukuksal sonuçları hakkında bilgi sahibi olmak. |