About this 전문분야
6,992

100% 온라인 강좌

지금 바로 시작해 나만의 일정에 따라 학습을 진행하세요.

탄력적인 일정

유연한 마감을 설정하고 유지 관리합니다.

중급 단계

완료하는 데 약 2개월 필요

매주 10시간 권장

영어

자막: 영어

귀하가 습득할 기술

Distributed ComputingOptimistic Concurrency ControlParallel ComputingJava Concurrency

100% 온라인 강좌

지금 바로 시작해 나만의 일정에 따라 학습을 진행하세요.

탄력적인 일정

유연한 마감을 설정하고 유지 관리합니다.

중급 단계

완료하는 데 약 2개월 필요

매주 10시간 권장

영어

자막: 영어

How the 전문분야 Works

강좌 수강

Coursera 전문 분야는 기술을 완벽하게 습득하는 데 도움이 되는 일련의 강좌입니다. 시작하려면 전문 분야에 직접 등록하거나 강좌를 둘러보고 원하는 강좌를 선택하세요. 하나의 전문 분야에 속하는 강좌에 등록하면 해당 전문 분야 전체에 자동으로 등록됩니다. 단 하나의 강좌만 수료해도 됩니다. — 학습을 일시 중지하거나 언제든 구독을 종료할 수 있습니다. 학습자 대시보드를 방문하여 강좌 등록 상태와 진도를 추적해 보세요.

실습 프로젝트

모든 전문 분야에는 실습 프로젝트가 포함되어 있습니다. 전문 분야를 완료하고 수료증을 받으려면 프로젝트를 성공적으로 마쳐야 합니다. 전문 분야에 별도의 실습 프로젝트 강좌가 포함되어 있는 경우 각 강좌를 완료해야 프로젝트를 시작할 수 있습니다.

수료증 취득

모든 강좌를 마치고 실습 프로젝트를 완료하면 취업할 때나 전문가 네트워크에 진입할 때 제시할 수 있는 수료증을 취득할 수 있습니다.

how it works

이 전문분야에는 3개의 강좌가 있습니다.

강좌1

Parallel Programming in Java

4.6
596개의 평가
125개의 리뷰
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. Why take this course? • All computers are multicore computers, so it is important for you to learn how to extend your knowledge of sequential Java programming to multicore parallelism. • Java 7 and Java 8 have introduced new frameworks for parallelism (ForkJoin, Stream) that have significantly changed the paradigms for parallel programming since the early days of Java. • Each of the four modules in the course includes an assigned mini-project that will provide you with the necessary hands-on experience to use the concepts learned in the course on your own, after the course ends. • During the course, you will have online access to the instructor and the mentors to get individualized answers to your questions posted on forums. The desired learning outcomes of this course are as follows: • Theory of parallelism: computation graphs, work, span, ideal parallelism, parallel speedup, Amdahl's Law, data races, and determinism • Task parallelism using Java’s ForkJoin framework • Functional parallelism using Java’s Future and Stream frameworks • Loop-level parallelism with extensions for barriers and iteration grouping (chunking) • Dataflow parallelism using the Phaser framework and data-driven tasks Mastery of these concepts will enable you to immediately apply them in the context of multicore Java programs, and will also provide the foundation for mastering other parallel programming systems that you may encounter in the future (e.g., C++11, OpenMP, .Net Task Parallel Library)....
강좌2

Concurrent Programming in Java

4.5
344개의 평가
49개의 리뷰
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). Why take this course? • It is important for you to be aware of the theoretical foundations of concurrency to avoid common but subtle programming errors. • Java 8 has modernized many of the concurrency constructs since the early days of threads and locks. • During the course, you will have online access to the instructor and mentors to get individualized answers to your questions posted on the forums. • Each of the four modules in the course includes an assigned mini-project that will provide you with the necessary hands-on experience to use the concepts learned in the course on your own, after the course ends. The desired learning outcomes of this course are as follows: • Concurrency theory: progress guarantees, deadlock, livelock, starvation, linearizability • Use of threads and structured/unstructured locks in Java • Atomic variables and isolation • Optimistic concurrency and concurrent collections in Java (e.g., concurrent queues, concurrent hashmaps) • Actor model in Java Mastery of these concepts will enable you to immediately apply them in the context of concurrent Java programs, and will also help you master other concurrent programming system that you may encounter in the future (e.g., POSIX threads, .NET threads)....
강좌3

Distributed Programming in Java

4.5
210개의 평가
29개의 리뷰
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. Why take this course? • All data center servers are organized as collections of distributed servers, and it is important for you to also learn how to use multiple servers for increased bandwidth and reduced latency. • In addition to learning specific frameworks for distributed programming, this course will teach you how to integrate multicore and distributed parallelism in a unified approach. • Each of the four modules in the course includes an assigned mini-project that will provide you with the necessary hands-on experience to use the concepts learned in the course on your own, after the course ends. • During the course, you will have online access to the instructor and the mentors to get individualized answers to your questions posted on forums. The desired learning outcomes of this course are as follows: • Distributed map-reduce programming in Java using the Hadoop and Spark frameworks • Client-server programming using Java's Socket and Remote Method Invocation (RMI) interfaces • Message-passing programming in Java using the Message Passing Interface (MPI) • Approaches to combine distribution with multithreading, including processes and threads, distributed actors, and reactive programming Mastery of these concepts will enable you to immediately apply them in the context of distributed Java programs, and will also provide the foundation for mastering other distributed programming frameworks that you may encounter in the future (e.g., in Scala or C++)....

강사

Avatar

Vivek Sarkar

Professor
Department of Computer Science

라이스 대학교 정보

Rice University is consistently ranked among the top 20 universities in the U.S. and the top 100 in the world. Rice has highly respected schools of Architecture, Business, Continuing Studies, Engineering, Humanities, Music, Natural Sciences and Social Sciences and is home to the Baker Institute for Public Policy....

자주 묻는 질문

  • 네! 시작하려면 관심 있는 강좌 카드를 클릭하여 등록합니다. 강좌를 등록하고 완료하면 공유할 수 있는 인증서를 얻거나 강좌를 청강하여 강좌 자료를 무료로 볼 수 있습니다. 전문 분야 과정에 있는 강좌에 등록하면, 전체 전문 분야에 등록하게 됩니다. 학습자 대시보드에서 진행 사항을 추적할 수 있습니다.

  • 이 강좌는 100% 온라인으로 진행되므로 강의실에 직접 참석할 필요가 없습니다. 웹 또는 모바일 장치를 통해 언제 어디서든 강의, 읽기 자료, 과제에 접근할 수 있습니다.

  • There are 3 courses in this Specialization. Based on a weekly commitment of 4-8 hours, you should be able to complete the Specialization in 12 weeks.

  • The Specialization is targeted at an audience that is already familiar with sequential programming in Java, including a basic knowledge of Java 8 lambdas.

  • No, you can take the courses in this Specialization in any order.

  • You will not earn university credit for completing the Specialization.

  • This course teaches 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 and Stream to write parallel programs for a wide range of multicore platforms whether for servers, desktops, or mobile devices, while also learning about their theoretical foundations (e.g., deadlock freedom, data race freedom, determinism).

궁금한 점이 더 있으신가요? 학습자 도움말 센터를 방문해 보세요.