Lecture Notes (Fall)

Kocaeli University Computer Engineering Department – Fall-2016:

 


 

1 Dağıtık Sistemlere Giris (Introduction to Distributed Systems) ( BLM433  ) 

 Ders ile ilgili detayli bilgileri Course_syllabus linkinden bulabilirsiniz.

Announcements:

  1. Final yazılı sınavına (5 puan) + (devam edilen günün 0,5) ‘i eklendi.  Yani 16 gün gelen öğrenciye havadan 8 puan eklenmiş oldu. Bu durumda dahi hala puan isteyen öğrencilerden bu bonuslar geri alınacaktır.
    Son notlarınız öğrenci bilgi sisteminden duyuruldu. BÜTÜNLEME sınavında hatırlatma kağıdına izin verilmeyecektir.
  2. FF ile kalan öğrenci sayısı çok az olduğu için, geçme notunda değişiklik yapılmadı.  A notu 1.öğretimlerde 85′ e 2.öğretimlerde 80 ‘e çekildi. 
  3. FİNAL sınavı için hatırlatma kağıdı hazırlayabilirsiniz. Hatırlatma kağıdı, kendi el yazınızla A4 kağıdının HER2 YÜZÜNE hazırlayabilirsiniz. Hatırlatma kağıdına isim, soyisim ve öğrenci numaranız yazılacak. Hatırlatma kağıdı, sınav sonunda sınav kağıdı ile birlikte katlamadan teslim edilecek. Hatırlatma kağıdı getirmeyenler yoklama kağıdına “hatırlatma kağıdım yok” yazarak imzalayacaklar. Bu kurallara uymayanlar sınavdan 0 alacaklardır.
  4. Proje metaryalleri 20 Aralık 2017 Çarşamba günü ders saatinde toplanacaktır. Lütfen bu tarihe uyun, aksi taktirde dokümantasyon değerlendirme dışı tutulacaktır. Teslim edilecek metaryaller ile ilgili [bilgi].
  5. MAZERET SINAVINDA HATIRLATMA KAĞIDINA İZİN VERİLMEYECEKTİR.
  6. Proje gruplarının son hali ve proje sunum-demo takvimi güncellenmiştir. 1.öğretim  ve 2.öğretim
  7. VİZE sınavı için hatırlatma kağıdı hazırlayabilirsiniz. Hatırlatma kağıdı, kendi el yazınızla A4 kağıdının tekyüzüne hazırlanacak. Hatırlatma kağıdına isim, soyisim ve öğrenci numaranız yazılacak. Hatırlatma kağıdı, sınav sonunda sınav kağıdı ile birlikte katlamadan teslim edilecek. Hatırlatma kağıdı getirmeyenler yoklama kağıdına “hatırlatma kağıdım yok” yazarak imzalayacaklar. Bu kurallara uymayanlar sınavdan 0 alacaklardır.
  8. Proje grupları oluşturulmuş ve konular dağıtılmıştır. Aşağıdaki linklerden kontrol edebilirsiniz.

 

Lectures:

  1. Course Info – Textbook, grading, attendance policy, etc.
  2. Introduction (Distributed Systems) – Review of general topics in distributed systems. This is also a course outline.
  3. Distributed Operating Systems : Network Operating Systems, Distributed Operating Systems, and Middleware Systems.
  4. Distributed Systems architectures : Software oriented and System oriented Designs.
  5. Processes and threads and their roles in distributed systems
  6. Virtualization, Code migration, process migration [Link]: Server design issues, code and process migration, strong mobility vs. weak mobility in process and code migration, virtualization techniques
  7. [Communication] in Distributed Systems: Transient/Persistent communications, Synchronous/Asynchronous communications, Connection-oriented/Connection-less communications. Communication in middleware protocols.
  8. Message Oriented Communications and Multicast Communications.
  9. Midterm Exam (9 Kasım Perşembe 15:00) sınava ilk 8 maddedeki konular dahildir.
  10. Streaming and Real Time Messaging protocols.
  11. Naming – used to share resources, to uniquely identify entities, to refer to locations, and more. Name resolutions and concepts.
  12. Son 4 hafta proje sunumları alınacaktır.
  13. Final Sınavı 28/12/2017 Perşembe günü Saat 15:00 (1. ve 2. öğretim aynı saatlerde sınav olacaktır)

Sunumlar:

  1. Node.js Angular.js Reacy Native ve karşılaştımaları
  2. Sosyal Medyadan veri çekme ve depolama: Facebook   LinkedIn   Twitter
  3. Apache  Spark 1.öğretim   2.öğretim  diğer  diğer
  4. Paralel Hesaplama 
  5. ElasticSearch Full-text arama (tam metin arama) 1.öğretim  2.öğretim  diğer
  6. WebRTC 
  7. HIPI Hadoop ile imge işleme
  8. Cloud Computing – Bulut Hesaplama 1.öğretim 1.öğretim    2.öğretim  diğer
  9. Apache Spark  Uygulamaları 1.öğretim   2.öğretim
  10. Apache Hadoop 1.öğretim   2.öğretim   diğer
  11. Sosyal Medyadan veri çekme  1.öğretim  2.öğretim  diğer
  12. P2P

 

Projects:

Proje Grupları 1.öğretim  ve 2.öğretim

 


 

3. Dağıtık Sistemler (Distributed Systems) (Graduate Level Course) (BLM107)

Announcements:

  1. FİNAL sınavı için hatırlatma kağıdı hazırlayabilirsiniz. Hatırlatma kağıdı, kendi el yazınızla A4 kağıdının HER2 YÜZÜNE hazırlayabilirsiniz. Hatırlatma kağıdına isim, soyisim ve öğrenci numaranız yazılacak. Hatırlatma kağıdı, sınav sonunda sınav kağıdı ile birlikte katlamadan teslim edilecek. Hatırlatma kağıdı getirmeyenler yoklama kağıdına “hatırlatma kağıdım yok” yazarak imzalayacaklar. Bu kurallara uymayanlar sınavdan 0 alacaklardır.
  2. Proje metaryalleri FİNAL SINAV günü sınavdan hemen önce toplanacaktır. Lütfen bu tarihe uyun, aksi taktirde dokümantasyon değerlendirme dışı tutulacaktır. Teslim edilecek metaryaller ile ilgili [bilgi].
  3. MAZERET SINAVINDA HATIRLATMA KAĞIDINA İZİN VERİLMEYECEKTİR.
  4. Vize notları ********
  5. Proje sunum-demo takvimi belirlenmiştir Link   *******
  6. VİZE sınavı için hatırlatma kağıdı hazırlayabilirsiniz. Hatırlatma kağıdı, kendi el yazınızla A4 kağıdının tekyüzüne hazırlanacak. Hatırlatma kağıdına isim, soyisim ve öğrenci numaranız yazılacak. Hatırlatma kağıdı, sınav sonunda sınav kağıdı ile birlikte katlamadan teslim edilecek. Hatırlatma kağıdı getirmeyenler yoklama kağıdına “hatırlatma kağıdım yok” yazarak imzalayacaklar. Bu kurallara uymayanlar sınavdan 0 alacaklardır.
  7. Dersler Salı günleri Amfi-A da 14-17 arasında yapılamaktadır.
  8. Derslere katılamayanlar lisans programından dersleri takip edebilir. Yoklamayı benden isteyin (Çarşamba 2-5, 5-8) 

Lectures:

  1. Course Info – Textbook, grading, attendance policy, etc.
  2. Introduction (Distributed Systems) – Review of general topics in distributed systems. This is also a course outline.
  3. Distributed Operating Systems: Network Operating Systems, Distributed Operating Systems, and Middleware Systems.
  4. Distributed Systems architectures: Software oriented and System oriented Designs.
  5. Processes and threads and their roles in distributed systems
  6. Virtualization, Code migration, process migration [Link]: Server design issues, coding and process migration, strong mobility vs. weak mobility in process and code migration, virtualization techniques
  7. [Communication] in Distributed Systems: Transient/Persistent communications, Synchronous/Asynchronous communications, Connection-oriented/Connection-less communications. Communication in middleware protocols.
  8. Message Oriented Communications and Multicast Communications.
  9. Streaming and Real Time Messaging protocols.
  10. Naming – used to share resources, to uniquely identify entities, to refer to locations, and more. Name resolutions and concepts.
  11. Midterm Exam (14 Kasım Salı 14:00) Sınava ilk 9 maddedeki konular dahildir.
  12. Son 4 hafta proje sunumları alınacaktır.

 

Projects:

Proje Grupları [Link]

 


 

2. Nesneye Yönelik Programlama (Object Oriented Programming) ( MUH 201)

 Ders JAVA ile işlenecektir. Lablarda uygulamalı olarak JAVA kodları yazılacaktır.

Announcements:

  1. Final sınav notunuza devam edilen günün 0,5 ‘i eklendi.  Yani 13 gün gelen öğrenciye havadan 7 puan eklenmiş oldu. Harf notu için puanlarda oynama yapılmadı, yapılması da düşünülmüyor. Bu durumda dahi hala puan isteyen öğrencilerden bu bonuslar geri alınacaktır.
  2. MAZERET sınavı 18 Aralık Pazartesi saat:11:00 da yapılacaktır.
  3. Bu Perşembe günü (12/10/2017) elimde olmayan sebeplerden il dışında olacağım için dersi Süleyman Eken ve Seda Kul işleyecektir. Lablar aynı şeklde asistan hocalarınız eşliğinde gerçeklenecektir.
  4. Lablarda hiçbir mazeret rapor vs kabul edilmemektedir. Lablarda kullanabileceğiniz 2 gelmeme hakkınız vardır. Yani toplamda 12 labdan 10 laba girseniz dahi 100 alabilirsiniz.

Lectures:

 Lecture-1– Course information

 Lecture-2  – Java as an object oriented programming language

– Lecture-3 – sample classes, inputs from command lines, inputs from keyboards.

– Lecture-4 – Types, variables, operators, operators’ precedence and type casting.

 Lecture-5  – Strings and String API

– Lecture-6 – Arrays, making copy of arrays, sorting, multi-dim arrays

– Lecture-7 – Control flow, while, do-while, for loops, if-else and switch statements, break and continue.

– Lecture-8 – Java classes, objects, and methods. Constructors, variables in blocks such as for and if. Encapsulation, accessors and mutators, scopes.

– Lecture-9 – Inheritance, overriding, final classes, final methods, and final variables. Sınf içi çalışması – dizilerle stack (yığın) uygulaması.

– Lecture-10 – Sınıf içi çalışmalar. Sınava hazırlık.

– Lecture-11– Midterm Exam (6 Kasım Pazartesi (11:00 1.öğr) – (18:00 2.öğr))

– Lecture-12 – Soyut (Abstract) ve Arayüz (Interface) Sınıfları.

– Lecture-13 – Polymorphism (Cok biçimlilik)

– Lecture-14 – Java’da İstisna Yönetimi (Exception Handling)

– Lecture-15 – Threads    —  Threadler ile ilgili evde çalışabileceğiniz bazı örnek kodlar.

– Lecture-16 – Sinava hazırlık, sınavda sorulabilecek konular ve örnek sorular

– Lecture-17 –Final Exam (25 Aralık 2017 Pazartesi (11:00 1.öğr) – (18:00 2.öğr))

 

Labs:

 Lab1– (bağımsız çalışma – lab kontrolloeri yapılmadı) IDE kullanmadan java sinifi olusturma ve calistirma. Komut konsolundan ve text dosyalari ile java yazma ve calistirma.

 Lab2 (I ve II öğretimler ortak) Ekrandan deger okuma-alma ve temel hesaplama

 Lab3 (I ve II öğretimler ortak) String API ile ilgili kodlar yazma.

 Lab4 (I)    Lab4 (II)  Temel programlama, döngüler, method çağırımı.

 Lab5 (I ve II öğretimler ortak)    Temel programlama, method ve class lara giriş.

 Lab6 (I ve II öğretimler ortak)    Java’da paketleme (JAR) ve dokümantasyon (javadoc) – oluşturma ve kullanma.

 Lab7 (I ve II öğretimler ortak)    Java’da sınıf ve metodlar ile ilgili kümeler üzerinde bir uygulama çalışması.

 Lab8 (I ve II öğretimler ortak)    Java’da kalıtım (inheritance) ve şekil sınıfları üzerinde uygulaması.

 Lab9 (I ve II öğretimler ortak)    sınıf içi kalıtım uygulaması. Polymorphism ders slidelarından Örnek-1 uygulaması yapıldı (slide 5-6-7). Yoklama üzerinden lablar onaylandı. Tüm sınıfın yaptığı kabul edildi.

 Lab10 (I ve II öğretimler ortak)    dosyadan okuyup dosyaya yazma çalışmaları ve Java’da kalıtım (inheritance) çalışmaları.

 Lab11 (I ve II öğretimler ortak)    Java’da çokbiçimlilik (polymorphism ) ve bir uygulama.

 Lab12 (I ve II öğretimler ortak)    Ekteki Threading.java classının threadler ile ne yaptığını tam olarak anlamaya çalışın. İstenen değişiklik: a.txt içindeki her satır üzerinde verilen anahtar kelimeyi paralel bir şekilde threadler ile aramaya çalışın. Bulunan sonucu ekrana yazdırın.

 Lab13 (I.öğretim ve II.öğretim)    Java’ en yüksek skorları da tutabilen basit tahmin oyunları programlama.

 

 

 

Text Book : Walter Savitch, Java: An Introduction to Problem Solving & Programming, 4th. Ed., Pearson Education, International Edition, 2005

Text Book’s Slides (.ppt) and Source codes (.jar)

Slides-1 : SourceCodes-1 Slides-2 : SourceCodes-2

Slides-3 : SourceCodes-3 Slides-4 : SourceCodes-4

Slides-5 : SourceCodes-5 Slides-6 : SourceCodes-6

Slides-7 : SourceCodes-7 Slides-8 : SourceCodes-8

Slides-9 : SourceCodes-9 Slides-10 SourceCodes-10

Slides-11 SourceCodes-11

 

Useful Links:

  • Useful shortcuts and highlights of Netbeans [Link]
  • Youtube’da Turkce Java Dersleri [Link]
  • Oracle Java Tutorial [Link]

 

theme by teslathemes