COURSE OBJECTIVE:
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
TARGET AUDIENCE:
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.
COURSE PREREQUISITES:
Hardware
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
Software
• 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)
COURSE CONTENT:
Lesson 1: Algorithms and Complexities
• Developing our first alThis is a two-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.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.gorithm
• 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
FOLLOW ON COURSES:
Not available. Please contact.