Java Programcıları İçin C#


Açıklama : Bu kurs Java Programlama Dilini bilen programcıların C# Programlama Diline geçişlerini sağlamayı amaçlamaktadır. Kurs içerisinde C# Programlama Dili, katılımcıların Java Programlama Dilini bildikleri varsayımıyla ele alınıp anlatılmaktadır.

Önkoşul: Java Programlama Dilini bilmek ya da C ve Sistem Programcıları Derneği’nin açmış olduğu Java İle Nesne Nesne Yönelimli Programlama kurslarını başarıyla bitirmiş olmak.

* Ücreti sorunuz.

Java ile Uygulama Geliştirme (II)


Online Java ile Uygulama Geliştirme (II)

Ön Koşul

Bu programa katılabilmek için daha Java ile uygulama geliştirmiş olmak ya da derneğimizde düzenlenmekte olan , “Java ile Uygulama Geliştirme (I)” kursuna katılmış olmak gerekmektedir

 

Mikroservis Uygulamaları

  • Domain Driven Design (DDD)
  • Microservis test işlemleri
  • Mikroservis uygulamalarında güvenlik
  • Inter Process Communication
    • İleri REST işlemleri
    • gRPC
    • Event haberleşmesi
  • Transaction yönetimi
  • Apache Kafka
  • Güvenlik (Security)
  • Retrofit, Feign Client ile client işlemleri
  • WebFlux kullanarak uygulama geliştirme
  • İleri düzey uygulamalar

Veri Yapıları ve Algoritmalar

  • Algoritma Kavramı
  • Algoritmanın Karmaşıklığı
  • Algoritma Karmaşıklığının Hesaplama Yöntemleri
  • Asimtotik Notasyonlar
  • Big O Notasyonu
  • Algoritmaların Sınıflandırılması
  • Sayılar Teorisine Yönelik Algoritmalar
  • Algoritmik Bulmacalar
  • Veri Yapısı Kavramı ve Temel Veri Yapıları
  • Dinamik Diziler, Kullanım Alanları ve Gerçekleştirimleri
  • Bağlı Listeler, Kullanım Alanları ve Gerçekleştirimleri
  • Kuyruk Veri Yapısı, Kullanım Alanları ve Gerçekleştirimleri
  • Stack Veri Yapısı, Kullanım Alanları ve Gerçekleştirimleri
  • Çift Yönlü Dinamik Diziler (Deque), Kullanım Alanları ve Gerçekleştirimleri
  • Sıralama Algoritmaları
  • Arama (Searching) İşlemleri, İçsel ve Dışsal Arama Kavramları
  • İkili Aramalar
  • Üstel Aramalar
  • Hash Tabloları, Kullanım Alanları, Varyasyonları ve Gerçekleştirimleri
  • Tahsisat Algoritmaları Kullanım Alanları ve Gerçekleştirimleri
  • Çöp Toplayıcı (Garbage Collector) Kavramı, Kullanım Alanları ve Gerçekleştirimleri
  • Ağaç Kavramı, Özellikleri
  • İkili Ağaçlar
  • Ağaçlarda Dolaşım İşlemleri
  • Arama Ağaçları
  • İkili Arama Ağaçları, Kullanım Alanları ve Gerçekleştirimleri
  • İkili Arama Ağaçlarında Dengeleme
  • Heap Ağaçları, Heap Veri Yapısı ve Gerçekleştirimleri
  • Heap Veri Yapısıyla Öncelik Kuyrukları
  • Heap Sort Yöntemi
  • Dışsal (External) Aramalar
  • B-Tree ve B+Tree Ağaçları ve Gerçekleştirimleri
  • Veri Yapılarının Genelleştirilmeleri (Türden Bağımsız Veri Yapılarının Oluşturulması)
  • Graf Veri Yapısı
  • Graf Veri Yapısının Gerçekleştirimleri
  • Graf Veri Yapısında Dolaşım İşlemleri
  • Bazı Tipik Graf Problemlerinin Çözümüne İlişkin Algoritmalar
  • Java ile temel düzeyde interpreter tasarımı ve gerçekleştirilmesi
  • Örnek uygulamalar

Reaktif programlama ve RxJava

  • Reaktif programlama
  • RxJava hakkında temel bilgiler
  • RxJava’nın detaylı incelenmesi
  • Örnek uygulamalar

Asenkron işlemler ve Çoklu thread (Multithreading) uygulamaları

  • Process kavramı
  • Asenkron programlama hakkında temel bilgiler
  • Çizelgeleme algoritmaları (scheduling algorithms)
  • Thread kavramı
    • Thread sınıfı ve Runnable arayüzü
    • Executor’lar
      • Thread havuzları
      • Callable arayüzü
      • Schedulers
      • ThreadFactory
  • RxJava ile asenkron işlemler
    • Schedulers sınıfı (Schedulers factory class)
      • computation
      • io metodu
      • newThread
      • single
      • trampoline
  • Thread’lerarası senkronizasyon
    • synchronized
    • Semaphore
    • Read Write Lock
  • CountDownLatch
  • Örnek uygulamalar

Paralel Programlama

  • Paralel Programlamanın Anlamı ve Önemi
  • Paralel Programlamanın Sorunları
  • Paralel Programlamada Kullanılan Kütüphaneler ve Ortamlar
  • Fork/Join
  • Örnek uygulamalar

TCP/IP Protokol Ailesi İle Proseslerarası Haberleşme

  • Protokol Kavramı
  • OSI Katmanlarının Anlamı
  • IP Protokol Ailesine Genel Bakış
  • IP Protokolü
  • TCP ve UDP Protokolleri
  • Soket Kavramı BSD Soket Sistemi
  • Windows Soket API’leri
  • Client, server programlama modeli
  • Client ile Server Arasında Haberleşme Teknikleri
  • TCP Protokolü ile Client/Server Haberleşme
  • TCP protokolü ile uygulama geliştirme
    • Server programın organizasyonu
    • Client programın organizasyonu
    • Binary haberleşme
    • Text haberleşme
    • Farklı platformlarda geliştirilmiş uygulamalar ile haberleşen uygulmalar
  • Çok Client’lı Server Uygulamaları
  • Network byte order (little andian, big endian kavramları)
  • UDP Haberleşmesi
  • UDP protokolü ve uygulama geliştirmne
    • Datagram kavramı
    • UDP programlarının organizasyonu
    • UDP kullanılan örnekler
  • IP Ailesinin Uygulama Katmanına İlişkin Protokoller (POP3, TELNET, HTTP, SSH Protokolleri)
  • Örnek uygulamalar

Temel JNA ve JNI uygulamaları

  • JNI kavramı
  • JNA kavramı
  • Temel Android NDK uygullamaları
  • Örnek uygulamalar

Java uygulamalarının performans analizi

NoSql veritabanı yönetim sistemleri

  • MongoDB
  • Elastic Search
  • Redis
  • Örnek Uygulamalar

İleri Reflection İşlemleri

  • CLASS ve SOURCE annotation’lar
  • Annotation proecssor
  • Örnek Uygulamalar

Temel Görüntü İşleme (Image Processing)

  • Görüntü işleme
  • Görüntü işlemede kullanılan çeşitli filtreler ve algoritmalar
  • JavaSE görüntü sınıfları (BufferedImage, ImageIO vb)
  • Java ile OpenCV kütüphanesinin kullanımı
  • Örnek uygulamalar

Byte kod programlama

  • Decompile işlemleri
  • Örnek uygulamalar

Java’da düzenli ifadeler (regular expressions)

  • Regular Expression (regex) kavramı
  • JavaSE Regex kütüphanesi
  • Örnek Uygulamalar

Temel Düzeyde JavaFX ile masaüstü uygulamaları

  • Pencere sistemi
  • JavaFX temel kontroller
  • Örnek uygulamalar

Docker

  • Docker ile işlemler
  • Docker container’ler
  • Docker compose
  • Örnek uygulamalar

Çöp toplayıcı’nın ayrıntılı incelenmesi

  • Çöp toplayıcının (garbage collector) aşağı seviyeli incelenmesi
  • Çeşitli çöp toplayıcı algoritmaları
  • Çöp toplayıcı konfigürasyonu
  • Örnek bir çöp toplayıcı kodlanması
  • Örnek uygulamalar

Yazılım geliştirmede kullanılan temel araçlar

  • Jenkins
  • Gradle
  • İleri Maven kullanımı
  • CI/CD süreçleri
  • Github actions
  • Örnek uygulamalar

Şifreleme işlemleri (Cryptography)

  • Şifreleme kavramı
  • Çeşitli şifreleme algoritmaları
  • JavaSE şifreleme sınıfları
  • Örnek uygulamalar

IOT (Internet Of Things)

  • RaspberryPI sistemleri
  • RaspberryPI GPIO kullanımı
  • Çeşitli sensörlerle işlemler
  • IOT uygulamalarında kullanılan çeşitli protokoller
  • Örnek uygulamalar

* Kursumuz gerçek zamanlıdır. Derslerimiz interaktif olarak yapılmaktadır.

Kurs ücreti duyuru sayfasında belirtilmektedir.

Bu kurs C ve Sistem Programcıları Derneği ve Sistem Bilgisayar iş birliği ile düzenlenmektedir.