Beginning Java Data Structures and Algorithms

Choosing the right algorithms and data structures for real-world software development problems helps to keep solutions simple and efficient. In this two-day course we explore various core algorithms and provide detailed implementations.

 

The course introduces different algorithmic techniques in each chapter. It does this by describing example problems and providing Java implementations where appropriate.

The course provides a base understanding of runtime complexity theory and then gradually exposes the reader to various methods and concepts on the subject. Each chapter is designed to build on the learnings of the previous ones.

This is a two-day course packed with the theory and hands-on activities that will help cement the foundation of algorithms and data structures.

Algorithms and data structures are the lifeblood of programming. They enable the programmers to write the code that handles the data efficiently.

035420
2 days

This course begins with the introduction of basic concepts of algorithms and data structures and progresses to implement them using Java. Here is the list of course objectives:

Learn about space and time complexities express them using big O notation

Explore various classic sorting algorithms, such as merge and quick sort

Understand the workings of basic (Lists, queues and stacks) and complex data structures (hash tables and binary trees)

Gain an insight into various algorithm design paradigms (Greedy, Divide and Conquer and Dynamic programming)

Discover string matching techniques

Master graph representations and learn about different graph algorithms, such as cycle detection, traversal and shortest path

The target audience of this course is Java beginners who want to estimate the efficiency of the code and understand different algorithm techniques beneficial for a broad set of tasks. It is expected that the audience has a basic understanding of object-oriented programming techniques.
-

»         Operating system: Windows 8 64–bit or MacOS

»         A text editor:  Notepad++

»         A terminal: Command Prompt or PowerShell on Windows or Terminal on MacOS

»         A run-time environment: Java Runtime Environment(JRE) 1.6 or higher

»         A software development kit: Java SE Development Kit, JDK 8 (or a later version)

This course will require a computer system for the instructor and one for each student. The minimum hardware requirements are as follows:

»         Processor: i3

»         Memory: 2 GB RAM

»         Hard disk: 10 GB

»         Internet connection

-

Lesson 1: Algorithms and Complexities

Developing our first algorithm

Measuring algorithmic complexity with Big O notation

Identifying algorithms with different complexities

Lesson 2: Sorting Algorithms and Fundamental Data Structures

Introducing bubble sort

Understanding quick sort

Using merge sort

Getting started with fundamental data structures

Lesson 3: Hash Tables and Binary Search Trees

Introducing hash tables

Getting started with binary search trees

Lesson 4: Algorithm Design Paradigms

Introducing greedy algorithms

Getting started with divide and conquer algorithms

Understanding dynamic programming

Lesson 5: String Matching Algorithms

Beginning naive search algorithm

Getting started with the Boyer-Moore string searching algorithm

Introducing other string matching algorithms

Lesson 6: Graphs, Prime Numbers, and Complexity Classes

Representing graphs

Traversing a graph

Calculating shortest paths

Prime numbers in algorithms

Other concepts in graphs

Understanding complexity classes of problems

$120.00 USD

Buy Now