Java Programming: An Introduction to Software Specialization

This Specialization covers the fundamentals of software development, focusing on a beginner-level introduction to rigorous problem-solving approaches while still embracing and extending traditional methods of computer science and software engineering. You’ll explore foundational concepts such as algorithm development, data representation, and debugging, using common tools such as HTML/CSS, Javascript, and Java. In the final Capstone Project, you’ll apply the skills you learned by creating a working recommender system that can help users find and choose items, such as films, books, or restaurants. Google has contributed real-world projects and the involvement of its engineers as guest lecturers to these courses.

Created By:

4 Courses
Complete 4 courses in the suggested order.
Capstone Project
Tackle the Capstone Project, designed to apply skills you’ve learned.
Earn a Certificate to share your success with the world.
Course 1: Programming and the Web for Beginners
In this course, you will use computers to creatively design web pages using HTML and CSS. You will then use Javascript to develop programs and algorithms–ways to get the computer to solve problems. As you progress, you will master the programming process that will be used through the remainder of the courses in this Specialization.
After completing this course you will be able to:
1. Make a web page with HTML and CSS;
2. Explain the high-level process of developing a program;
3. Think critically about how to solve a problem;
4. Solve programming problems with Javascript, including if/else and looping constructs;
5. Use Javascript to manipulate images and process data; and
6. Recognize debugging as an application of the scientific method.
By the end of this course, you will complete a mini-project where you will use Javascript to create your own images algorithmically and a website you have built with HTML, CSS, and Javascript.
To read more details about this course, Click here!
Course 2: Java Programming: Solving Problems with SoftwareJava Programming: An Introduction to Software Specialization
Building upon Duke’s “Programming and the Web for Beginners” course, you will grow in your ability to be a problem-solver and programmer by writing Java programs. We are excited that you’ve chosen to learn Java with us! You will soon be able to solve problems that you find interesting and useful by practicing a design process you will learn in this course.
Java concepts presented in this course include basic control flow; object-oriented concepts including classes and methods; custom, open-source classes; and a design-implement-debug process that you can continue to leverage as you build your experience and knowledge of programming principles.
The custom, open-source classes will provide a consistent application programming interface (API) so that you can write programs that access and transform images, websites, comma separated value (CSV) files and other data files using simple and accessible coding idioms built on the Java Iterable interface. You will learn to design, test, and debug programs and to find and read Java documentation that can serve as the basis for continued study of Java and programming.
After completing this course you will be able to:
1. Edit, compile, and run a Java program;
2. Use conditionals and for loops appropriately in a Java program;
3. Use Java API documentation in writing programs.
4. Debug a Java program using the scientific method;
5. Develop 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 more than one method.
To read more details about this course, Click here!
Course 3: Java Programming: Arrays, Lists, and Structured Data
Commitment 4 weeks of study, 3-5 hours/week
This course will build on the skills you learn in Java Programming: Solving Problems with Software. You will continue to expand your programming skill set to read and manipulate data with more complex structure. You will also write programs with more complex structure.
By the end of this course, you will be able to:
1. Read and write data from/to files;
2. Solve problems involving data files;
3. Perform quantitative analyses of data (e.g., finding maximums, minimums, averages);
4. Store and manipulate data in an array or ArrayList;
5. Combine multiple classes to solve larger problems;
6. Use iterables and collections (including maps) in Java.
To read more details about this course, Click here!
Course 4: Java Programming: Principles of Software Design
In this course, you will write programs in Java to solve real­ world problems that are large enough to require multiple classes working together. You will see that programming is more than just coding–it involves strategic thinking and design as well. You will learn how to design programs to solve problems that require solutions that scale. You will also learn about the Java Collections classes and how Java interfaces facilitate developing programs that scale.
After completing this course, you will be able to:
1. Use sorting appropriately in solving problems;
2. Develop classes that implement the Comparable interface;
3. Use timing data to analyze empirical performance;
4. Break problems into multiple classes, each with their own methods;
5. Determine if a class from the Java API can be used in solving a particular problem;
6. Implement programming solutions using multiple approaches and recognize tradeoffs;
7. Use object-oriented concepts including interfaces and abstract classes when developing programs;
8. Appropriately hide implementation decisions so they are not visible in public methods; and
9. Recognize the limitations of algorithms and Java programs in solving problems.
10. Recognize standard Java classes and idioms including exception-handling, static methods,, and packages;
To read more details about this course, Click here!
Course 5: Java Programming: A DIY Version of Netflix and Amazon Recommendation Engines
Ever wonder how Netflix decides what movies to recommend for you? Or Amazon with books? We can get a feel for how it works by building a simple version of our own!
In this capstone, you will show off your problem solving and Java programming skills by creating recommender systems. You will work with data on a topic such as books, movies or restaurants and information about them (including rankings). Then you will write a program to answer questions about the data, including which items should be recommended to a user based on their previous choices. Given input files on users and their ratings, you will be able to:
  1. Read in and parse data into lists and maps;
  2. Calculate average ratings;
  3. Calculate how similar a given rater is to some set of ratings; and
  4. Make a recommendation (for restaurants, movies or books) for a given user.
Believe it or not, you can already start analyzing data to make your own recommendations using the Java knowledge you have gained from this Specialization!
To read more details about this course, Click here!



Related Posts

Leave a Reply

Your email address will not be published.