We may earn an affiliate commission when you visit our partners.
Course image
Course image
Coursera logo

Functional Programming with Java and Threads

Dr. Douglas C. Schmidt and Dr. Jules White

This course provides an in-depth journey through modern Java object-oriented and function programming concepts and features, and explores how to apply these concepts and features to implement efficient and scalable concurrent programs using very modern Java features like virtual threads.

Read more

This course provides an in-depth journey through modern Java object-oriented and function programming concepts and features, and explores how to apply these concepts and features to implement efficient and scalable concurrent programs using very modern Java features like virtual threads.

The first week gives an overview of Java object-oriented and functional programming paradigms. The second and third week delve into Java functional programming features, such as lambda expressions, method references, and functional interfaces. The final week explores the intricacies of very modern Java platform threads, virtual threads, as well as Java's asynchronous computation features, such as Future & FutureTask.

After completing this course, you'll gain a deep understanding of both object-oriented and

functional programming concepts and features in Java, along with the ability to apply these concepts and features to develop multi-threaded programs. To illustrate key points, we walk through numerous case

studies, all of which are available in open-source form from my GitHub repository.

Enroll now

What's inside

Syllabus

Overview of Java Object-Oriented and Functional Programming
Introduction to Java Programming Paradigms
Java Functional Programming with Lambda Expressions and Method References
Read more
Java Functional Interfaces
Java Thread Objects and Functional Programming

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Intends to deepen learners' understanding of object-oriented and functional programming concepts and features in Java
Includes case studies to illustrate key points, allowing learners to apply concepts in practice
Covers essential concepts like lambda expressions, method references, and Java functional interfaces
Taught by experienced instructors, Dr. Douglas C. Schmidt and Dr. Jules White
Suitable for learners interested in developing multi-threaded programs using modern Java features like virtual threads
Provides a comprehensive journey through modern Java programming concepts, making it relevant to industry trends

Save this course

Save Functional Programming with Java and Threads to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Functional Programming with Java and Threads with these activities:
Gather resources on Java virtual threads
Enhances your understanding of Java's virtual threads by compiling documentation, articles, and code examples.
Browse courses on Concurrency
Show steps
  • Search for resources on Java virtual threads
  • Curate and organize the resources in a central location
Review OOP fundamentals
Refreshes your understanding of core OOP concepts like classes, objects, inheritance, and polymorphism, ensuring a solid foundation for the course.
Show steps
  • Revisit books or online resources on OOP
  • Complete practice problems or exercises on OOP
Practice Java coding challenges
Strengthens your Java coding skills and problem-solving abilities, preparing you for the practical aspects of the course.
Browse courses on Java Programming
Show steps
  • Solve coding challenges on platforms like LeetCode or HackerRank
  • Participate in online coding competitions
Five other activities
Expand to see all activities and additional details
Show all eight activities
Join a study group for Java multithreading
Facilitates knowledge sharing and collaboration, promoting a deeper understanding of Java multithreading concepts.
Browse courses on Concurrency
Show steps
  • Find or create a study group focused on Java multithreading
  • Participate in discussions, ask questions, and share knowledge
Develop a multi-threaded Java application
Provides hands-on experience in designing and implementing multithreaded Java programs, reinforcing the course concepts.
Browse courses on Concurrency
Show steps
  • Plan and design a multi-threaded Java application
  • Implement the application using Java's concurrency features
  • Test and debug the application
Explore advanced Java functional programming topics
Deepens your understanding of advanced Java functional programming concepts, expanding your knowledge beyond the course content.
Browse courses on Lambda Expressions
Show steps
  • Follow online tutorials on topics like streams, lambdas, and functional interfaces
  • Experiment with Java functional programming in personal projects
Participate in Java programming competitions
Challenges your Java skills, enhances your problem-solving abilities, and provides a platform to showcase your knowledge.
Browse courses on Java Programming
Show steps
  • Identify and register for Java programming competitions
  • Prepare for the competitions by practicing and studying
  • Participate in the competitions and strive for success
Mentor junior Java developers
Solidifies your understanding of Java concepts and strengthens your communication skills while helping others learn.
Browse courses on Java Programming
Show steps
  • Find opportunities to mentor junior Java developers
  • Share your Java knowledge and experience
  • Provide guidance and support

Career center

Learners who complete Functional Programming with Java and Threads will develop knowledge and skills that may be useful to these careers:
Cloud Architect
Cloud Architects plan, design, and manage cloud computing solutions. This course's focus on modern Java features, including virtual threads and asynchronous computation, provides Cloud Architects with the skills to optimize cloud-based systems for performance and scalability.
Web Developer
Web Developers design and develop websites and web applications. This course's focus on Java's functional programming features and its exploration of Java's asynchronous computation features provide Web Developers with the skills to build interactive and responsive web applications.
Full-Stack Developer
Full Stack Developers possess expertise in both front-end and back-end development. This course's emphasis on Java's functional programming features and its exploration of Java's asynchronous computation features equip Full Stack Developers to handle complex multi-threaded tasks in web development.
DevOps Engineer
DevOps Engineers bridge the gap between development and operations teams. This course's in-depth coverage of Java's object-oriented and functional programming paradigms provides DevOps Engineers with the knowledge to develop and manage automated build, test, and deployment pipelines.
Machine Learning Engineer
Machine Learning Engineers design and develop machine learning models. This course provides a foundation in Java's object-oriented and functional programming, enabling Machine Learning Engineers to develop efficient and scalable machine learning solutions.
Java Developer
Java Developers primarily focus on architecting, designing, and writing code using Java. They implement system features and devise solutions for complex business problems. This course provides a solid grounding in the core concepts of Java object-oriented and functional programming, preparing learners to address challenges in concurrent and multithreaded programming.
Data Scientist
Data Scientists analyze and interpret data to extract insights and make predictions. This course's coverage of Java's functional programming features and its exploration of Java's asynchronous computation features provide Data Scientists with tools to handle large-scale data processing and analysis.
Back-End Developer
Back-End Developers concentrate on the server-side of web applications. This course's in-depth coverage of Java's object-oriented and functional programming paradigms provides Back-End Developers with the knowledge to develop efficient and scalable back-end systems.
Software Engineer
Software Engineers design, develop, and maintain software systems. The focus of this course on modern Java programming techniques and principles, including functional programming and concurrency, provides Software Engineers with the foundation to create robust and scalable software solutions.
Database Developer
Database Developers design, implement, and maintain databases. This course's in-depth coverage of Java's object-oriented and functional programming paradigms provides Database Developers with the knowledge to develop efficient and scalable database solutions.
Mobile Developer
Mobile Developers create and maintain mobile applications. This course's emphasis on modern Java programming techniques, including functional programming and concurrency, provides Mobile Developers with the skills to implement complex and responsive mobile applications.
Software Architect
Software Architects are responsible for designing the overall structure of a software application, ensuring its efficiency and scalability. Knowledge of Java's object-oriented and functional programming features, along with the ability to implement efficient concurrent programs, as gained from this course, is crucial for Software Architects.
Security Analyst
Security Analysts identify and address security threats. This course's focus on modern Java's virtual threads and asynchronous computation features provide Security Analysts with the skills to detect and mitigate security vulnerabilities in complex computing environments.
System Administrator
System Administrators maintain and operate computer systems. This course's emphasis on modern Java programming techniques, including virtual threads and asynchronous computation, provides System Administrators with the skills to manage and optimize complex computing environments.
Network Engineer
Network Engineers design, implement, and maintain computer networks. This course's emphasis on Java's asynchronous computation features provides Network Engineers with the skills to optimize network performance and reliability.

Reading list

We've selected ten books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Functional Programming with Java and Threads.
An in-depth look at concurrent programming in Java, with a focus on design principles and patterns.
A comprehensive reference for all things Java. It covers a wide range of topics, including object-oriented programming, functional programming, and concurrency.
The classic reference for design patterns. It presents 23 classic, timeless design patterns for software engineering. Developers will find these patterns useful in their day-to-day work.
An introductory guide to Java programming, covering topics such as object-oriented programming, data structures, and algorithms.
A refernce book for multithreaded applications and libraries in Java. It is commonly used in the industry. It provides a good look at Java Object-Oriented Programming in Java.
A classic reference for Java language and fundamentals. is an excellent background for Java Object-Oriented Programming in this course.
Functional programming topics and concepts in Java. It provides background knowledge for this course. The writer covers fundamentals of functional programming and reinforcement with numerous Java example
Is full of useful advice and best practices for writing idiomatic Java code. It reference book for Java programmers. This book complements Java Virtual Threads in this course.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Functional Programming with Java and Threads.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser