开始时间: 06/21/2022 持续时间: Approximately 3 months to complete Suggested pace of 5 hours/week
Parallel, concurrent, and distributed programming underlies software in multiple domains, ranging from biomedical research to financial services. This specialization is intended for anyone with a basic knowledge of sequential programming in Java, who is motivated to learn how to write parallel, concurrent and distributed programs. Through a collection of three courses (which may be taken in any order or separately), you will learn foundational topics in Parallelism, Concurrency, and Distribution. These courses will prepare you for multithreaded and distributed programming for a wide range of computer platforms, from mobile devices to cloud computing servers. To see an overview video for this Specialization, click here! For an interview with two early-career software engineers on the relevance of parallel computing to their jobs, click here. Acknowledgments The instructor, Prof. Vivek Sarkar, would like to thank Dr. Max Grossman for his contributions to the mini-projects and other course material, Dr. Zoran Budimlic for his contributions to the quizzes, Dr. Max Grossman and Dr. Shams Imam for their contributions to the pedagogic PCDP library used in some of the mini-projects, and all members of the Rice Online team who contributed to the development of the course content (including Martin Calvi, Annette Howe, Seth Tyger, and Chong Zhou).Java专业化中的并行，并行和分布式编程：并行，并行和分布式编程是从生物医学研究到金融服务的多个领域的软件的基础。本专业专供具有Java顺序编程基础知识的人士使用，他们有动机学习如何编写并行，并发和分布式程序。通过三门课程的集合（可以以任意顺序或分别进行），您将学习并行，并发和分发的基础主题。这些课程将为您准备从移动设备到云计算服务器的各种计算机平台的多线程和分布式编程。 要观看此专业化的概述视频，请单击此处！要接受两位早期软件工程师的采访，了解并行计算与其工作的相关性，请单击此处。 致谢 指导老师Vivek Sarkar教授，要感谢Max Grossman博士对微型项目和其他课程材料的贡献，感谢Zoran Budimlic博士对测验的贡献，感谢Max Grossman博士和Shams Imam博士所做的贡献。他们对一些小型项目中使用的教学PCDP库的贡献，以及为课程内容的开发做出了贡献的Rice Online团队的所有成员（包括Martin Calvi，Annette Howe，Seth Tyger和Chong Zhou）。
Title:Parallel Programming in Java
Description:This course teaches learners (industry professionals and students) the fundamental concepts of parallel programming in the context of Java 8. Parallel programming enables developers to use multicore computers to make their applications run faster by using multiple processors at the same time. By the end of this course, you will learn how to use popular parallel Java frameworks (such as ForkJoin, Stream, and Phaser) to write parallel programs for a wide range of multicore platforms including servers, desktops, or mobile devices, while also learning about their theoretical foundations including computation graphs, ideal parallelism, parallel speedup, Amdahl's Law, data races, and determinism.
Title:Concurrent Programming in Java
Description:This course teaches learners (industry professionals and students) the fundamental concepts of concurrent programming in the context of Java 8. Concurrent programming enables developers to efficiently and correctly mediate the use of shared resources in parallel programs. By the end of this course, you will learn how to use basic concurrency constructs in Java such as threads, locks, critical sections, atomic variables, isolation, actors, optimistic concurrency and concurrent collections, as well as their theoretical foundations (e.g., progress guarantees, deadlock, livelock, starvation, linearizability).
Title:Distributed Programming in Java
Description:This course teaches learners (industry professionals and students) the fundamental concepts of Distributed Programming in the context of Java 8. Distributed programming enables developers to use multiple nodes in a data center to increase throughput and/or reduce latency of selected applications. By the end of this course, you will learn how to use popular distributed programming frameworks for Java programs, including Hadoop, Spark, Sockets, Remote Method Invocation (RMI), Multicast Sockets, Kafka, Message Passing Interface (MPI), as well as different approaches to combine distribution with multithreading.
Java并行，并发和分布式编程专项课程系列（Parallel, Concurrent, and Distributed Programming in Java Specialization），这个系列包含3个子课程，分别是Java并行编程，Java并发编程和Java分布式编程，感兴趣的同学可以关注：Boost Your Programming Expertise with Parallelism-Learn the fundamentals of parallel, concurrent, and distributed programming.