Computer science is commonly described as the scientific and practical approach to computation and its applications, and it depends on a solid working knowledge of data structures and applications. Many Computer Scientists were drawn to the field because they were introduced to algorithms early in their education or professional development. Too often, however, the texts on algorithms demonstrate the theoretical nature of the algorithms using proofs without showing any actual coding. In fact, often the coding is left as an exercise for the reader to initiate.
In my opinion, the best way to learn an algorithm is to write a program that solves a real-world problem and practice using that algorithm. The O’Reilly School of Technology allows you to do just that in our new Java course that covers algorithms and data structures.
The lessons in the new Data Structures and Algorithms course I’ve written for O’Reilly School of Technology will introduce you to writing Java programs that implement the most commonly used algorithms. You’ll also learn how to use the Java Collections Framework effectively, which data structures to use, and the expected runtime performance of the key implementations. You won’t reinvent the wheel; you’ll use the Java Development Kit (JDK) that comes with powerful data structures already.
Each lesson is self-contained and describes the theory and practice of different algorithms, but also gives you practice using them in a real-world programming environment, so you can see first-hand how your code performs. If you want to follow up on any of the algorithms in the course, turn to the associated Algorithms in a Nutshell book that I wrote. Conveniently, it comes with the course. At the end of every lesson, you will have demonstrated the ability to put an algorithm into practical use. The projects for each lesson seal the deal and give you the opportunity to solve non-trivial problems on your own.
The first lessons introduce algorithm concepts and data structures, but even if you’ve already had some exposure to algorithms, you’ll still learn a lot in these lessons. As you progress through the course, you’ll complete hands-on coding tasks that rely on these concepts and many techniques we present. Here are a few of the projects you’ll tackle:
- Write an AI solitaire problem solver for one of your favorite solitaire games. You will learn these skills by completing the lesson on single player games.
- Write a Min Max agent that can recommend moves to make in a two-player game.
- Use Fast Fourier Transform to process audio signals. From the ground up, you will learn how to create sound data that can be played on your speakers and how to record sounds which you can process to identify the dominant pitches in the data.
- Learn how to process large amounts of data for searching and sorting. Learn how to use efficient Java classes in the JDK to effortlessly process gigabytes of data
The practical knowledge contained in these lessons will directly translate into your own coding projects, enabling you to write efficient code using robust algorithms. If you’re ready to take your Java development skills even further, this is your course.
For more information please contact our Student Services team at firstname.lastname@example.org or (707) 827-7288.