在线课程 – Google Java 和莱斯大学并行编程专业认证

通过并行性提高您的编程专业知识。了解并行、并行和分布式编程的基础知识。

Suggested by: Coursera (What is Coursera?)

Professional Certificate

中档

No prior knowledge required

Time to complete the course

7-day free trial

No unnecessary risks

Skills you will acquire in the course

  • 沟通技巧
  • 时间管理
  • 批判性思维
  • 团队 合作
  • 故障 排除
  • 领导
  • 演讲技巧
  • 独立学习的能力
  • 项目管理
  • 技术技能

What you will learn in the course

Courses for which the course is suitable

  • 软件工程师
  • 程序员
  • 并行系统开发人员
  • 分布式系统开发人员
  • 多线程编程专家 (Multi-Thread Programming Specialist)
  • 云应用开发人员
  • 生物医学解决方案开发商
  • 金融服务开发人员

专业 – 3 单元课程系列

  • 并行编程、协同编程和分布式编程构成了从生物医学研究到金融服务等各个领域的软件基础。
  • 此专业适用于具有 Java 串行编程基础知识,并有兴趣学习如何编写并行、并行和分布式程序的任何人。
  • 通过三门课程的集合(可以按任何顺序或单独学习),您将学习并行性、竞争力和分布领域的基本主题。
  • 这些课程为您在从移动设备到云计算服务器的各种计算平台上进行多线程和分布式编程做好了准备。

要观看有关此专业的摘要视频, 请单击此处

有关两位早期职业软件工程师关于并行计算与他们工作的相关性的采访, 请单击此处

感激

  • 讲师 Wibeck Sarker 教授要感谢 Max Grossman 博士对小型项目和课程材料的贡献。
  • 感谢 Zoran Budimlik 博士对测验问题的贡献。
  • 感谢 Max Grossman 博士和 Shams Imam 博士对 PCDP 教学法图书馆的贡献,该图书馆被用于一些小型项目。
  • 以及为课程内容开发做出贡献的 Rice Online 团队的所有成员(包括 Martin Kelby、Anethet Hawai、Seth Tiger 和 Chung Zhu)。

实践学习项目

  • 每门课程都包含一些小项目,使学习者能够获得用于并行、并行和分布式编程的流行 Java API 的实践经验。
  • 这些小项目取自各个领域的实际问题。

Details of the courses that make up the specialization

Java 中的并行编程

课程 1

  • 19 小时
  • 4.6 (1,205 个评分)

课程详情

学习内容

本课程向行业专业人士和学生讲授 Java 8 上下文中并行编程的基本概念。并行编程允许开发人员利用多核计算机,通过同时使用多个处理器来加速应用程序性能。在课程结束时,您将了解如何使用 Java 中流行的并行编程框架(例如 ForkJoin、Stream 和 Phaser)为各种多核平台(包括服务器、桌面和移动设备)编写并行程序,您还将学习它们的理论基础知识,包括计算图、理想并行性、并行速度增益、阿马德尔定律、信息竞争和确定性。

为什么要参加这门课程?
  • 所有计算机都是多核计算机,因此了解如何将量子编程知识扩展到 Java 非常重要。
  • Java 7 和 Java 8 引入了新的并行编程框架(ForkJoin、Stream),自 Java 诞生前几十年以来,这些框架显著改变了并行编程的范式。
  • 该课程的四个模块中的每一个都有一个微型项目 назначti,它将为您提供有用的实践经验,以应用完成课程后学到的概念。
  • 在课程期间,您需要在线访问讲师和导师,以便在论坛中获得对您问题的个性化答案。
该课程的预期学习成果包括:
  • 平行论:计算图、功、范围、理想平行度、平行速度增加、阿马德尔定律、信息竞赛和确定论
  • Java ForkJoin 框架的任务并行性
  • Java Future 和 Stream 框架的函数并行性
  • 循环级并行性,带有屏障和迭代分组的扩展 (Chunking)
  • 使用 Phaser 框架和数据驱动任务的数据流中的并行性

掌握这些概念将使您能够立即将它们应用于多核 Java 程序的上下文中,并且还将为掌握您将来获得的其他并行编程系统(例如 C++11、OpenMP、.Net Task Parallel Library)奠定基础。

您将获得的技能
  • 类别: 数据流
  • 类别: 并行编程
  • 类别: Java 方法

Java 中的同步编程

课程 2

  • 18 小时
  • 4.5 (655 评价)

课程详情

学习内容

本课程向行业专业人士和学生讲授 Java 8 上下文中同步编程的基本概念。同步编程使开发人员能够高效、正确地管理并行程序中共享资源的使用。在课程结束时,您将了解如何在 Java 中使用基本的同步结构,例如线程、锁、关键部分、原子变量、隔离、玩家模型、乐观同步和同步集合,以及它们的理论基础(例如进度保证、死锁、活锁、饥饿和线性)。

为什么要参加这门课程?
  • 了解同步的理论基础知识以避免常见但细微的编程错误非常重要。
  • Java 8 自第一个进程和锁时代以来已经更新了大多数同步结构。
  • 在课程期间,您需要在线访问讲师和导师,以便在论坛中获得对您问题的个性化答案。
  • 该课程的四个模块中的每一个都有一个微型项目 назначti,它将为您提供有用的实践经验,以应用完成课程后学到的概念。
该课程的预期学习成果包括:
  • 同步理论:进度保证、死锁、活锁、饥饿、线性化
  • 在 Java 中的有序/无序配置中使用进程和锁
  • 原子变量和绝缘
  • Java 中的乐观同步和同步集合(例如同步队列、同步哈希图)
  • Java 中的 Player 模型

掌握这些概念将使您能够立即将它们应用于同步 Java 程序的上下文中,并将帮助您掌握将来将获得的其他同步编程系统(例如 POSIX 线程、.NET 线程)。

您将获得的技能
  • 类别: 同步 (计算机科学)
  • 类别: 玩家模型
  • 类别: 乐观同步控制
  • 类别: 同步编程

Java 中的去中心化编程

课程 3

  • 17 小时
  • 4.5 (489 评价)

课程详情

学习内容

本课程向行业专业人士和学生讲授 Java 8 上下文中分布式编程的基本概念。去中心化编程允许开发人员使用数据中心中的多个节点,以提高处理速率并减少选定应用程序的延迟。在课程结束时,您将了解如何为 Java 程序使用流行的分布式编程框架,包括 Hadoop、Spark、套接字、远程方法调用 (RMI)、多播套接字、Kafka、消息传递接口 (MPI),以及将工作分配和多进程编程相结合的各种方法。

为什么要参加这门课程?
  • 数据中心中的所有服务器都组织为分布式服务器的集合,了解如何使用多个服务器来增加带宽和减少延迟也很重要。
  • 除了学习分布式编程的特定框架外,本课程还将教您如何以统一的方法将多核并行与分布式编程相结合。
  • 该课程的四个模块中的每一个都有一个微型项目 назначti,它将为您提供有用的实践经验,以应用完成课程后学到的概念。
  • 在课程期间,您需要在线访问讲师和导师,以便在论坛中获得对您问题的个性化答案。
该课程的预期学习成果包括:
  • 使用 Hadoop 和 Spark 框架的去中心化 Java Map-Reduce 编程
  • 使用 Java 套接字和远程方法调用 (RMI) 接口进行客户端-服务器编程
  • Java 中的消息传递接口 (MPI) 编程
  • 将劳动力分配与多进程编程相结合的方法,包括进程和进程、分布式参与者和反应式编程

掌握这些概念将使您能够立即将它们应用于分布式 Java 程序的上下文中,并且还将为掌握您将来会遇到的其他分布式编程系统(例如缩放或 C++)奠定基础。

您将获得的技能
  • 类别: 去中心化编程
  • 类别: 玩家模型
  • 类别: 并行编程
  • 类别: 反应式编程