We may earn an affiliate commission when you visit our partners.
Course image
Owen Astrachan, Robert Duvall, Andrew D. Hilton, and Susan H. Rodger

Learn to code in Java and improve your programming and problem-solving skills. You will learn to design algorithms as well as develop and debug programs. Using custom open-source classes, you will write programs that access and transform images, websites, and other types of data. At the end of the course you will build a program that determines the popularity of different baby names in the US over time by analyzing comma separated value (CSV) files.

Read more

Learn to code in Java and improve your programming and problem-solving skills. You will learn to design algorithms as well as develop and debug programs. Using custom open-source classes, you will write programs that access and transform images, websites, and other types of data. At the end of the course you will build a program that determines the popularity of different baby names in the US over time by analyzing comma separated value (CSV) files.

After completing this course you will be able to:

1. Edit, compile, and run a Java program;

2. Use conditionals and loops in a Java program;

3. Use Java API documentation in writing programs.

4. Debug a Java program using the scientific method;

5. Write a Java method to solve a specific problem;

6. Develop a set of test cases as part of developing a program;

7. Create a class with multiple methods that work together to solve a problem; and

8. Use divide-and-conquer design techniques for a program that uses multiple methods.

Enroll now

What's inside

Syllabus

Introduction to the Course
Welcome to “Java Programming: Solving Problems with Software”! We are excited that you are starting our course to learn how to write programs in Java, one of the most popular programming languages in the world. In this introductory module, you will get to meet the instructor team from Duke University and have an overview of the course. Have fun!
Read more
Fundamental Java Syntax and Semantics
In this module, you will learn to write and run your first Java programs, including one program that prints “Hello!” in various countries’ languages and another where you will analyze the perimeters and other information of shapes. To accomplish these tasks, you will learn the basics of Java syntax and how to design stepwise solutions with programs. By the end of this module, you will be able to: (1) Download and run BlueJ, the Java programming environment for this course; (2) Access the documentation for the Java libraries specially designed for this course; (3) Edit, compile, and run a Java program; (4) Construct methods, variables, if else statements, and for each loops in Java; and (5) Use Iterables (like DirectoryResource) to run a program that iterates over multiples lines in a document or webpage or multiple files in a directory.
Strings in Java
This module begins with a short presentation from Raluca Gordân, an assistant professor in Duke University’s Center for Genomic and Computational Biology, about an important problem genomics scientists encounter regularly: how to identify genes in a strand of DNA. To tackle this problem, you will need to understand strings: series of characters such as letters, digits, punctuation, etc. After learning about Java methods that work with strings, you will be able to find genes within a DNA string as well as tackle other string related problems, such as finding all of the links in a web page. By the end of this module, you will be able to: (1) Use important methods for the Java String class; (2) Use conditionals, for loops, and while loops appropriately in a Java program; (3) Find patterns in the data represented by strings to help develop the algorithm for your program; (4) Understand the importance of designing programs that keep different data processing steps separate; (5) Use the StorageResource iterable for this course to store some data for further processing; and (6) Rely on Java documentation to better understand how to use different Java packages and classes.
CSV Files and Basic Statistics in Java
A common format for storing tabular data (any data organized into columns and rows) is in comma separated values (CSV) files. In this module, you will learn how to analyze and manipulate data from multiple CSV data files using a powerful open-source software package: Apache Commons CSV. Using this library will empower you to solve problems that could prove too complex to solve with a spreadsheet. By the end of this module, you will be able to: (1) Use the open-source Apache Commons CSV package in your own Java programs; (2) Access data from one or many CSV files using Java; (3) Convert strings into numbers; (4) Understand how to use “null” in Java programs (when you want to represent “nothing”); (5) Devise an algorithm (and implement in Java) to answer questions about CSV data; and (6) Analyze CSV data across multiple CSV files (for example, find maximums, minimums, averages, and other simple statistical results).
MiniProject: Baby Names
This module wraps up the course with a mini project that ties together the different practices, skills, and libraries you have gained across the course! Using data on the popularity of different baby names in the United States from the past several decades, you will be able to compare different names’ popularity over time. While the data we have collected for this course is from the United States, we welcome you to share data from other countries in the course discussion forums. Good luck with the mini project!

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Explores string manipulation techniques, such as finding genes in a DNA string or identifying links in a web page
Uses hands-on labs and interactive materials to enhance understanding
Emphasizes the importance of organizing code into separate processing steps
Taught by experienced instructors from Duke University
Provides a practical introduction to Java programming, suitable for learners with limited or no programming experience
Course materials may not be up-to-date with the latest software versions

Save this course

Save Java Programming: Solving Problems with Software to your list so you can find it easily later:
Save

Reviews summary

Java: solving problems

learners say this is a largely positive introductory course to Java programming with engaging assignments that make sure you've understood concepts. The course focuses on problem-solving and critical thinking, and it teaches you the basics of Java programming. It is not for beginners; however, if you have some prior experience with programming, you will likely be successful.
learners say the assignments in this course are engaging and help you to learn the material. They are challenging but fair, and they provide a good way to practice what you have learned. The discussion forums are also helpful, and the mentors are quick to answer questions.
"Really enjoyed this course. Learned a lot. Only pulled my hair out in a few sections. I feel more confident in my coding and the understanding of how the programs created read the code. "
"This course is typically the kind of fun, beginner-friendly, challenging intro to java course that can familiarize you with basic concepts of Java very quickly."
learners say this course has a good structure and is well-organized. The video lectures are clear and concise, and the instructors do a good job of explaining the concepts. The assignments are challenging but fair, and they help you to learn the material. The discussion forums are also helpful, and the mentors are quick to answer questions.
"The course has a lot of materials, it's very clear and fully explained. It helps beginners as well as advanced users to explore concepts and, possibly, teaching ideas."
"This is a very good course for those students who want to study java from the very beginning. Assignments and quiz system is also very efficient in understanding and applying the learned concepts. "
learners say this course is not for beginners. If you have some prior experience with programming, you will likely be successful; however, if you are a complete beginner, you may find the material to be too challenging.
"This course is not a beginner course and can't understand what was the course motive to teach a student. For me, it was a total waste of time. Full of disappointment!!!"
"I actually enrolled for this course with a intension to learn java programming from the basis.But i dont get the concept of class,interface,oop etc.this course help me to write the simple program."
learners say the use of the BlueJ IDE is a negative aspect of the course. BlueJ is not a widely used IDE, and it can be difficult to use. Additionally, the assignments in the course are often designed to be used with BlueJ, which can make it difficult to complete the assignments if you are using a different IDE.
"Make to solve the problem with their own in-built modules which makes the creativity of learner limited to some fixed logic's rather than just letting them to develop logic's freely through any kind of java compiler."
"Its a great course for intermediate coders! good for practice in java and assignments are really good and requires effort. you can not just sleep on this! for Java or oops the complete specialisation is the best choice."

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 Java Programming: Solving Problems with Software with these activities:
Review Java syntax and fundamentals
Refresher on the foundational aspects of Java syntax and concepts will equip you with a stronger basis for building upon in the course.
Browse courses on Java Syntax
Show steps
  • Go through Java tutorials or documentation
  • Review basic programming concepts such as variables, data types, and control flow
  • Practice writing simple Java programs
  • Complete online quizzes or exercises to test your understanding
  • Discuss or connect with other students to clarify any concepts
Volunteer at a local coding workshop
This activity allows you to give back to the community while sharing your knowledge of Java and inspiring others to learn programming.
Browse courses on Volunteering
Show steps
  • Find a local coding workshop that needs volunteers
  • Sign up to volunteer and assist with the workshop
  • Help participants with their Java coding exercises
  • Share your knowledge of Java and best practices
  • Encourage participants to continue learning and exploring Java
Compile a list of Java resources
This activity encourages you to explore and organize valuable Java resources, enhancing your knowledge base and making it easily accessible for future reference.
Browse courses on Java
Show steps
  • Search for and identify useful Java resources, including tutorials, documentation, and online courses
  • Organize the resources into a structured list or database
  • Categorize the resources based on topic or level of difficulty
  • Add brief descriptions or annotations to each resource
  • Share your resource list with other students or online communities
Four other activities
Expand to see all activities and additional details
Show all seven activities
Read Effective Java
This book provides fundamental and advanced insights into how to write excellent Java code. It covers topics such as object-oriented design, concurrency, security, and performance optimization.
View Effective Java on Amazon
Show steps
  • Read each chapter and make notes on the key concepts
  • Apply the concepts to your own Java programs
  • Discuss the concepts with other students or online forums
Create a presentation on a Java design pattern
This activity combines technical knowledge of Java design patterns with presentation skills, allowing you to enhance your communication and teaching abilities.
Browse courses on Design Patterns
Show steps
  • Choose a Java design pattern to present on
  • Research the pattern and its applications
  • Create a presentation that explains the pattern clearly
  • Rehearse your presentation and practice explaining the pattern
  • Deliver your presentation to a group of peers or online audience
Solve LeetCode problems
LeetCode provides a collection of coding challenges that test your problem-solving and coding skills. Solving these problems can help you improve your Java programming abilities.
Browse courses on Problem Solving
Show steps
  • Choose a problem that matches your skill level
  • Read the problem description carefully and understand the requirements
  • Design an algorithm to solve the problem
  • Implement your algorithm in Java
  • Test your solution and debug if necessary
Build a simple Java application
Building an application from scratch allows you to apply the concepts you've learned in the course and gain practical experience in software development.
Browse courses on Application Development
Show steps
  • Identify a problem or need that you want to address with your application
  • Design the architecture and user interface of your application
  • Implement the core functionality of your application
  • Test your application thoroughly
  • Deploy your application and share it with others

Career center

Learners who complete Java Programming: Solving Problems with Software will develop knowledge and skills that may be useful to these careers:
Software Architect
Software Architects play a crucial role in the design and development of software systems. They use their expertise in programming languages, software design patterns, and software development methodologies to create robust and scalable software solutions. The Java Programming: Solving Problems with Software course provides a solid foundation in Java programming, which is essential for Software Architects. The course covers topics such as object-oriented programming, data structures, algorithms, and design patterns. By taking this course, learners can gain the skills and knowledge necessary to become successful Software Architects.
Web Developer
Web Developers are responsible for designing, developing, and maintaining websites and web applications. They use their programming skills to create user-friendly and interactive web experiences. The Java Programming: Solving Problems with Software course provides a solid foundation in Java programming, which is a popular language for web development. The course covers topics such as object-oriented programming, data structures, algorithms, and design patterns. By taking this course, learners can gain the skills and knowledge necessary to become successful Web Developers.
Software Developer
Software Developers are responsible for designing, developing, and maintaining software applications. They use their programming skills to translate user requirements into functional software solutions. The Java Programming: Solving Problems with Software course provides a comprehensive introduction to Java programming, covering topics such as object-oriented programming, data structures, algorithms, and design patterns. By taking this course, learners can gain the skills and knowledge necessary to become successful Software Developers.
Data Analyst
Data Analysts use their programming skills to analyze data and identify trends and patterns. They use statistical techniques and machine learning algorithms to build predictive models and make data-driven decisions. The Java Programming: Solving Problems with Software course provides a solid foundation in Java programming, which is a popular language for data analysis. The course covers topics such as object-oriented programming, data structures, algorithms, and design patterns. By taking this course, learners can gain the skills and knowledge necessary to become successful Data Analysts.
Data Scientist
Data Scientists use their programming skills to analyze large datasets and extract meaningful insights. They use statistical techniques and machine learning algorithms to build predictive models and make data-driven decisions. The Java Programming: Solving Problems with Software course provides a solid foundation in Java programming, which is a popular language for data science. The course covers topics such as object-oriented programming, data structures, algorithms, and design patterns. By taking this course, learners can gain the skills and knowledge necessary to become successful Data Scientists.
Business Analyst
Business Analysts use their programming skills to analyze business processes and identify opportunities for improvement. They work with stakeholders to define business requirements and develop solutions. The Java Programming: Solving Problems with Software course provides a solid foundation in Java programming, which is a popular language for business analysis. The course covers topics such as object-oriented programming, data structures, algorithms, and design patterns. By taking this course, learners can gain the skills and knowledge necessary to become successful Business Analysts.
Project Manager
Project Managers are responsible for planning, executing, and delivering projects. They work with stakeholders to define project goals, timelines, and budgets. The Java Programming: Solving Problems with Software course provides a solid foundation in Java programming, which is a popular language for developing software projects. The course covers topics such as object-oriented programming, data structures, algorithms, and design patterns. By taking this course, learners can gain the skills and knowledge necessary to become successful Project Managers.
Product Manager
Product Managers are responsible for defining, developing, and launching new products and features. They work with engineers, designers, and marketers to bring products to market that meet customer needs. The Java Programming: Solving Problems with Software course provides a solid foundation in Java programming, which is a popular language for developing software products. The course covers topics such as object-oriented programming, data structures, algorithms, and design patterns. By taking this course, learners can gain the skills and knowledge necessary to become successful Product Managers.
Software Quality Assurance Engineer
Software Quality Assurance Engineers use their programming skills to test software products and services for defects. They work with developers to identify and fix bugs. The Java Programming: Solving Problems with Software course provides a solid foundation in Java programming, which is a popular language for developing software testing tools and frameworks. The course covers topics such as object-oriented programming, data structures, algorithms, and design patterns. By taking this course, learners can gain the skills and knowledge necessary to become successful Software Quality Assurance Engineers.
Database Administrator
Database Administrators use their programming skills to manage and maintain databases. They work with businesses and organizations to ensure that their data is safe, secure, and accessible. The Java Programming: Solving Problems with Software course provides a solid foundation in Java programming, which is a popular language for developing database management systems. The course covers topics such as object-oriented programming, data structures, algorithms, and design patterns. By taking this course, learners can gain the skills and knowledge necessary to become successful Database Administrators.
Network Administrator
Network Administrators use their programming skills to manage and maintain computer networks. They work with businesses and organizations to ensure that their networks are reliable, secure, and efficient. The Java Programming: Solving Problems with Software course provides a solid foundation in Java programming, which is a popular language for developing network management tools and frameworks. The course covers topics such as object-oriented programming, data structures, algorithms, and design patterns. By taking this course, learners can gain the skills and knowledge necessary to become successful Network Administrators.
Information Security Analyst
Information Security Analysts use their programming skills to protect computer systems and networks from security threats. They work with businesses and organizations to identify and address security vulnerabilities. The Java Programming: Solving Problems with Software course provides a solid foundation in Java programming, which is a popular language for developing security software. The course covers topics such as object-oriented programming, data structures, algorithms, and design patterns. By taking this course, learners can gain the skills and knowledge necessary to become successful Information Security Analysts.
Technical Writer
Technical Writers use their programming skills to create documentation for software products and services. They work with engineers and developers to explain how software works and how to use it. The Java Programming: Solving Problems with Software course provides a solid foundation in Java programming, which is a popular language for developing software documentation. The course covers topics such as object-oriented programming, data structures, algorithms, and design patterns. By taking this course, learners can gain the skills and knowledge necessary to become successful Technical Writers.
Computer Science Teacher
Computer Science Teachers use their programming skills to teach students about computer science concepts and programming languages. They work with students of all ages and levels, from elementary school to college. The Java Programming: Solving Problems with Software course provides a solid foundation in Java programming, which is a popular language for teaching computer science. The course covers topics such as object-oriented programming, data structures, algorithms, and design patterns. By taking this course, learners can gain the skills and knowledge necessary to become successful Computer Science Teachers.
Computer Systems Analyst
Computer Systems Analysts use their programming skills to analyze, design, and implement computer systems. They work with businesses and organizations to identify their IT needs and develop solutions. The Java Programming: Solving Problems with Software course provides a solid foundation in Java programming, which is a popular language for developing computer systems. The course covers topics such as object-oriented programming, data structures, algorithms, and design patterns. By taking this course, learners can gain the skills and knowledge necessary to become successful Computer Systems Analysts.

Reading list

We've selected 11 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 Java Programming: Solving Problems with Software.
Comprehensive guide to Java concurrency. It covers all the basics of concurrency, including threads, locks, and synchronization.
Collection of 78 best practices for writing Java code. It covers a wide range of topics, including coding conventions, object-oriented design, and performance optimization.
Comprehensive guide to Java persistence with Hibernate. It covers all the basics of persistence, including entities, relationships, and transactions.
Comprehensive guide to Java servlet programming. It covers all the basics of servlet programming, including servlets, JSP, and filters.
Comprehensive guide to Java web services. It covers all the basics of web services, including SOAP, WSDL, and REST.
Comprehensive guide to Hibernate. It covers all the basics of Hibernate, including entities, relationships, and transactions.
Comprehensive introduction to Java programming. It covers all the basics of Java, including data types, variables, operators, control flow, and methods. It also includes several case studies that show how Java can be used to solve real-world problems.
Comprehensive guide to Git. It covers all the basics of Git, including branching, merging, and rebasing.
Comprehensive guide to Java programming. It covers all the basics of Java, including data types, variables, operators, control flow, and methods. It also includes several case studies that show how Java can be used to solve real-world problems.

Share

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

Similar courses

Here are nine courses similar to Java Programming: Solving Problems with Software.
Clojure 1 Fundamentals
Java Programming: Principles of Software Design
Introduction to Java Programming: Starting to code in Java
Introduction to Object-Oriented Programming with Java II:...
Developing Java Apps with Docker
Test and Debug Your Build with Visual Studio Code
Introduction to Java Programming – Part 2
Introduction to Java Programming – Part 1
TensorFlow Developer Certificate - TensorFlow Developer...
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