Çevrimiçi kurs – Google ve Rice Üniversitesi tarafından Java’da paralel programlama konusunda sertifikalı profesyonel uzmanlık

Paralellik ile programlama uzmanlığınızı geliştirin. Eşzamanlı, eşzamanlı ve dağıtılmış programlamanın temel ilkelerini öğrenin.

Suggested by: Coursera (What is Coursera?)

Professional Certificate

Orta seviye

No prior knowledge required

Time to complete the course

7-day free trial

No unnecessary risks

Skills you will acquire in the course

  • iletişim becerileri
  • zaman yönetimi
  • eleştirel düşünme
  • ekip çalışması
  • problem çözme
  • liderlik
  • sunum becerileri
  • Bağımsız öğrenme yeteneği
  • proje yönetimi
  • teknolojik beceriler

What you will learn in the course

Courses for which the course is suitable

  • yazılım mühendisi
  • Yazılım geliştiricisi
  • Paralel sistemlerin geliştiricisi
  • Dağıtık sistem geliştiricisi
  • Çok iş parçacıklı programlama uzmanı
  • Bulut uygulama geliştiricisi
  • Biyomed çözüm geliştiricisi
  • Finansal hizmetler geliştiricisi

Staj – 3 üniteden oluşan bir dizi kurs

  • Paralel programlama, eşzamanlı programlama ve dağıtılmış programlama, biyomedikal araştırmalardan finansal hizmetlere kadar çeşitli alanlardaki yazılımın temelini oluşturur.
  • Bu uzmanlık, Java’da seri programlama konusunda temel bilgiye sahip olan ve paralel, eşzamanlı ve dağıtılmış programların nasıl yazılacağını öğrenmekle ilgilenen herkese yöneliktir.
  • Üç dersten oluşan bir koleksiyon aracılığıyla (herhangi bir sırayla veya ayrı ayrı çalışılabilir), paralellik, rekabet gücü ve dağıtım alanındaki temel konuları öğreneceksiniz.
  • Bu kurslar sizi mobil cihazlardan bulut bilişim sunucularına kadar çok çeşitli bilgi işlem platformlarında çok iş parçacıklı programlama ve dağıtılmış programlamaya hazırladı.

Bu stajla ilgili özet videoyu görmek için burayı tıklayın .

Kariyerinin başındaki iki yazılım mühendisiyle paralel hesaplamanın işleriyle ilgisi hakkında bir röportaj için burayı tıklayın .

minnettarlık

  • Eğitmen Prof. Vivek Sarkar, mini projelere ve ders materyallerine yaptığı katkılardan dolayı Dr. Max Grossman’a teşekkür eder.
  • Sınav görevlisi sorularına katkılarından dolayı Dr. Zoran Budimlik’e teşekkür ederiz.
  • Max Grossman ve Dr. Shams Imam’a birçok mini projede kullanılan PCDP pedagojik kütüphanesine yaptıkları katkılardan dolayı teşekkür ederiz.
  • ve kurs içeriğinin geliştirilmesine katkıda bulunan tüm Rice Online ekip üyelerine (Martin Kelby, Anthet Hawai, Seth Tiger ve Chong Zhu dahil).

Pratik bir öğrenme projesi

  • Her kurs, öğrencilerin paralel, eşzamanlı ve dağıtılmış programlamaya yönelik popüler Java API’leri ile uygulamalı deneyim kazanmalarına olanak sağlayacak mini projeler içerir.
  • Mini projeler çeşitli alanlardaki gerçek dünya sorunlarından alınmıştır.

Details of the courses that make up the specialization

Java’da paralel programlama

Kurs 1

  • 19 saat
  • 4,6 (1.205 derecelendirme)

Kurs detayları

ne öğreneceksin

Bu kurs, endüstri profesyonellerine ve öğrencilere Java 8 bağlamında paralel programlamanın temel kavramlarını öğretir. Paralel programlama, geliştiricilerin aynı anda birden fazla işlemci kullanarak uygulama performansını hızlandırmak için çok çekirdekli bilgisayarların avantajlarından yararlanmasına olanak tanır. Kursun sonunda, sunucular, masaüstü bilgisayarlar ve mobil cihazlar da dahil olmak üzere çok çeşitli çok çekirdekli platformlar için paralel programlar yazmak amacıyla Java’daki popüler paralel programlama çerçevelerini (ForkJoin, Stream ve Phaser gibi) nasıl kullanacağınızı öğreneceksiniz. Ayrıca Hesaplamalı grafikler, ideal paralellik, paralel hızlanma, Amadel yasası, bilgi yarışları ve determinizm dahil olmak üzere bunların teorik temellerini de öğreneceksiniz.

Neden bu kursu almalısınız?
  • Tüm bilgisayarlar çok çekirdekli bilgisayarlardır, bu nedenle sıralı programlama bilginizi Java’ya nasıl genişleteceğinizi öğrenmeniz önemlidir.
  • Java 7 ve Java 8, Java’nın ilk on yıllarından bu yana paralel programlama paradigmalarını önemli ölçüde değiştiren paralel programlama için yeni çerçeveler (ForkJoin, Stream) tanıttı.
  • Kurstaki dört modülün her biri, kurs bittikten sonra öğrenilen kavramları uygulamanız için size yararlı pratik deneyimler sağlayacak minyatür bir naznachti projesine sahiptir.
  • Kurs sırasında forumlardaki sorularınıza kişiselleştirilmiş yanıtlar almak için öğretim görevlisine ve danışmanlara çevrimiçi erişime ihtiyacınız olacak.
Kursun arzu edilen öğrenme çıktıları şunları içerir:
  • Paralellik teorisi: hesaplamalı grafikler, iş, aralık, ideal paralellik, paralel hızlanma, Amadel yasası, bilgi yarışları ve determinizm
  • Java’nın ForkJoin çerçevesiyle görev paralelliği
  • Java’nın Future ve Stream çerçevelerini kullanan işlevsel eşzamanlılık
  • Engeller ve yineleme gruplaması (parçalama) için uzantılarla döngü düzeyinde paralellik
  • Phaser çerçevesini ve veriye dayalı görevleri kullanarak veri akışı paralelliği

Bu kavramlara hakim olmak, bunları çok çekirdekli Java programları bağlamında hemen uygulamanıza olanak tanıyacak ve aynı zamanda gelecekte yararlanacağınız diğer paralel programlama sistemlerine (C++11, OpenMP, .Net Görev Paralel Kitaplığı).

kazanacağınız beceriler
  • Kategori: veri akışı
  • Kategori: paralel programlama
  • Kategori: Java metodolojisi

Java’da senkronize programlama

Kurs 2

  • 18 saat
  • 4,5 (655 puan)

Kurs detayları

ne öğreneceksin

Bu kurs endüstri profesyonellerine ve öğrencilere Java 8 bağlamında senkronize programlamanın temel kavramlarını öğretir. Senkronize programlama, geliştiricilerin paralel programlarda paylaşılan kaynakların kullanımını verimli ve doğru bir şekilde yönetmesine olanak tanır. Kursun sonunda Java’da süreçler (Threads), kilitler, kritik parçalar, atomik değişkenler, izolasyon, aktör modelleri, iyimser senkronizasyon ve senkronize koleksiyonlar gibi temel senkronizasyon yapılarının yanı sıra bunların teorik temellerini nasıl kullanacağınızı öğreneceksiniz. (ilerleme garantileri, Kilitlenme, Livelock, aç kalma ve doğrusallaştırılabilirlik gibi).

Neden bu kursu almalısınız?
  • Yaygın fakat incelikli programlama hatalarından kaçınmak için senkronizasyonun teorik temellerinin farkında olmak önemlidir.
  • Java 8, süreçlerin ve kilitlerin ilk günlerinden bu yana senkronizasyon yapılarının çoğunu güncelledi.
  • Kurs sırasında forumlardaki sorularınıza kişiselleştirilmiş yanıtlar almak için öğretim görevlisine ve danışmanlara çevrimiçi erişime ihtiyacınız olacak.
  • Kurstaki dört modülün her biri, kurs bittikten sonra öğrenilen kavramları uygulamanız için size yararlı pratik deneyimler sağlayacak minyatür bir naznachti projesine sahiptir.
Kursun arzu edilen öğrenme çıktıları şunları içerir:
  • Senkronizasyon teorisi: ilerleme garantileri, kilitlenme, canlı kilit, açlık, doğrusallaştırılabilirlik
  • Java’da işlemleri ve kilitleri sıralı/sırasız bir yapılandırmada kullanma
  • Atomik değişkenler ve izolasyon
  • Java’da iyimser senkronizasyon ve senkronize koleksiyonlar (senkronize kuyruklar, senkronize Hashmap’ler gibi)
  • Java’da oyuncu modeli

Bu kavramlara hakim olmak, bunları senkronize Java programları bağlamında hemen uygulamanıza olanak tanıyacak ve gelecekte faydalanacağınız diğer senkronize programlama sistemlerinde (POSIX iş parçacıkları, .NET iş parçacıkları gibi) uzmanlaşmanıza yardımcı olacaktır.

kazanacağınız beceriler
  • Kategori: Senkronizasyon (Bilgisayar Bilimi)
  • Kategori: Oyuncu Modeli
  • Kategori: İyimser Senkronizasyon Kontrolü
  • Kategori: Senkronize programlama

Java’da dağıtılmış programlama

Kurs 3

  • 17 saat
  • 4,5 (489 değerlendirme)

Kurs detayları

ne öğreneceksin

Bu kurs endüstri profesyonellerine ve öğrencilere Java 8 bağlamında dağıtılmış programlamanın temel kavramlarını öğretir. Dağıtılmış programlama, geliştiricilerin verimi artırmak ve seçilen uygulamaların gecikmesini azaltmak için bir veri merkezinde birden fazla düğüm kullanmasına olanak tanır. Kursun sonunda Java programları için Hadoop, Spark, Sockets, Uzaktan Yöntem Çağırma (RMI), Çok Noktaya Yayın Soketleri, Kafka, Mesaj Aktarma Arayüzü (MPI) ve ayrıca çeşitli popüler dağıtılmış programlama çerçevelerinin nasıl kullanılacağını öğreneceksiniz. iş dağıtımı ve çoklu programlama süreçlerini birleştirmeye yönelik yaklaşımlar.

Neden bu kursu almalısınız?
  • Veri merkezlerindeki tüm sunucular, dağıtılmış sunucu koleksiyonları halinde düzenlenmiştir ve bant genişliğini artırmak ve gecikmeyi azaltmak için birden fazla sunucunun nasıl kullanılacağını öğrenmek de önemlidir.
  • Dağıtılmış programlamaya yönelik belirli çerçeveleri öğrenmenin yanı sıra, kurs size çok çekirdekli paralellik ile dağıtılmış programlamayı birleşik bir yaklaşımla nasıl birleştireceğinizi öğretecektir.
  • Kurstaki dört modülün her biri, kurs bittikten sonra öğrenilen kavramları uygulamanız için size yararlı pratik deneyimler sağlayacak minyatür bir naznachti projesine sahiptir.
  • Kurs sırasında forumlardaki sorularınıza kişiselleştirilmiş yanıtlar almak için öğretim görevlisine ve danışmanlara çevrimiçi erişime ihtiyacınız olacak.
Kursun arzu edilen öğrenme çıktıları şunları içerir:
  • Hadoop ve Spark çerçevelerini kullanarak Java’da Dağıtılmış Harita Azaltma programlaması
  • Java’nın Soket ve Uzaktan Yöntem Çağırma (RMI) arayüzlerini kullanarak istemci-sunucu programlama
  • Java’daki Mesaj Aktarma Arayüzü (MPI) yardımıyla mesaj aktarımı için programlama
  • Süreçler ve süreçler, dağıtılmış aktörler ve reaktif programlama dahil olmak üzere iş dağıtımını çok süreçli programlamayla birleştirmeye yönelik yaklaşımlar

Bu kavramlara hakim olmak, bunları dağıtılmış Java programları bağlamında hemen uygulamanıza olanak tanır ve ayrıca gelecekte karşılaşacağınız diğer dağıtılmış programlama sistemlerinde (Scala veya C++ gibi) uzmanlaşmak için temel sağlar.

kazanacağınız beceriler
  • Kategori: Dağıtılmış programlama
  • Kategori: Oyuncu Modeli
  • Kategori: paralel programlama
  • Kategori: reaktif programlama