Algorithmic Problems in Java
4.5 (110 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1,797 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Algorithmic Problems in Java to your Wishlist.

Add to Wishlist

Algorithmic Problems in Java

Backtracking, dynamic programming, Sudoku, knapsack problem, binpacking, closest pair of points, recursion, monte carlo
4.5 (110 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
1,797 students enrolled
Created by Holczer Balazs
Last updated 8/2017
English
Current price: $10 Original price: $35 Discount: 71% off
5 hours left at this price!
30-Day Money-Back Guarantee
Includes:
  • 6.5 hours on-demand video
  • 4 Articles
  • 4 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Understand backtracking
  • Understand dynamic programming
  • Understand recursive approaches
  • Solve problems from scratch
View Curriculum
Requirements
  • Basic Java
Description

This course is about the fundamental concepts of algorithmic problems, focusing on backtracking and dynamic programming. As far as I am concerned these techniques are very important nowadays, algorithms can be used (and have several applications) in several fields from software engineering to investment banking or research & development.

The first chapter is about backtracking: we will talk about problems such as N-queens problem or hamiltonian cycles, coloring problem and Sudoku problem. In the second chapter we will talk about dynamic programming, theory then the concrete examples one by one: fibonacci sequence problem and knapsack problem.

In each section we will talk about the theoretical background for all of these algorithms then we are going to implement these problems together from scratch in Java.


Who is the target audience?
  • This course is meant for newbies who are not familiar with algorithmic problems in the main or students looking for some refresher
Students Who Viewed This Course Also Viewed
Curriculum For This Course
61 Lectures
06:39:32
+
Introduction
2 Lectures 01:41

Complexity theory
00:05
+
Recursion
9 Lectures 52:13

Note: we can usually solve a problem either with recursion or with iteration. Several algorithms - especially the divide and conquer ones - rely heavily on recursive method calls.

Preview 05:04

House building problem
04:00

Factorial function
07:13

Euclidean algorithm - greatest common divisor
02:29

Linear and binary search introduction
03:30

Linear and binary search implementation
07:48

Towers of Hanoi problem introduction
06:00

Tower of Hanoi problem implementation
07:26
+
Selection Algorithms
6 Lectures 42:18
Selection algorithms introduction
05:50

Quickselect introduction - Hoare algorithm
07:39

Quickselect simulation
08:04

Quickselect implementation
08:26

Advanced selection - median of medians, introselect
07:21

Online selection - the secretary problem
04:58
+
Backtracking
21 Lectures 02:22:31
Backtracking introduction
06:06

N-queens problem introduction
10:10

N-queens problem implementation I
09:21

N-queens problem implementation II
06:16

Hamiltonian cycle introduction
09:01

Hamiltonian cycle illustration
05:55

Hamiltonian cycle implementation I
10:16

Hamiltonian cycle implementation II
07:01

Coloring problem introduction
09:12

Coloring problem implementation I
07:17

Coloring problem implementation II
05:24

Knight's tour introduction
04:06

Knight's tour implementation I
10:32

Knight's tour implementation II
04:48

Maze problem introduction
03:13

Maze problem implementation I
07:21

Maze problem implementation II
04:09

Sudoku introduction
06:29

Sudoku implementation I
08:36

Sudoku implementation II
03:27

NP-complete problems
03:51
+
Dynamic Programming
16 Lectures 02:09:24
Dynamic programming introduction
03:22

Fibonacci numbers introduction
05:34

Fibonacci numbers implementation
07:57

Knapsack problem introduction
12:49

Knapsack problem example
13:18

Knapsack problem implementation I
08:07

Knapsack problem implementation II
04:26

Coin change problem introduction
09:18

Coin change problem example
06:04

Coin change problem implementation
11:40

Rod cutting problem introduction
05:24

Rod cutting problem example
08:14

Rod cutting problem implementation
08:44

Subset sum problem introduction
06:30

Subset sum problem example
08:53

Subset sum problem implementation
09:04
+
Other Algorithmic Problems
4 Lectures 31:18
Bin packing problem introduction
05:47

Bin packing problem implementation
06:52

Closest pair of points problem introduction
08:50

Closest pair of points problem implementation
09:49
+
Source Code
3 Lectures 00:05
Source code
00:01

Slides
00:01

Coupon codes - get any of my other courses for a discounted price
00:02
About the Instructor
Holczer Balazs
4.4 Average rating
3,923 Reviews
38,489 Students
24 Courses
Software Engineer

Hi!

My name is Balazs Holczer. I am from Budapest, Hungary. I am qualified as a physicist and later on I decided to get a master degree in applied mathematics. At the moment I am working as a simulation engineer at a multinational company. I have been interested in algorithms and data structures and its implementations especially in Java since university. Later on I got acquainted with machine learning techniques, artificial intelligence, numerical methods and recipes such as solving differential equations, linear algebra, interpolation and extrapolation. These things may prove to be very very important in several fields: software engineering, research and development or investment banking. I have a special addiction to quantitative models such as the Black-Scholes model, or the Merton-model. Quantitative analysts use these algorithms and numerical techniques on daily basis so in my opinion these topics are definitely worth learning.

Take a look at my website and join my email list if you are interested in these topics!