Algorithmic Problems & Numerical Methods in Java

Backtracking, dynamic programming, Sudoku, knapsack problem, binpacking, closest pair of points, recursion, monte carlo
4.6 (35 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.
887 students enrolled
Instructed by Holczer Balazs IT & Software / Other
$19
$80
76% off
Take This Course
  • Lectures 57
  • Length 6 hours
  • Skill Level All Levels
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 11/2015 English

Course 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.


What are the requirements?

  • Basic Java

What am I going to get from this course?

  • Understand backtracking
  • Understand dynamic programming
  • Understand recursive approaches
  • Solve problems from scratch
  • Understand the basic numerical methods and recipes

What 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

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Section 1: Introduction
Introduction
Preview
01:54
Complexity theory
Article
Section 2: Recursion
Recursion introduction
Preview
07:00
03: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.

House building problem
02:56
Factorial function
03:21
Euclidean algorithm - greatest common divisor
02:42
Linear and binary search
06:59
Towers of Hanoi problem introduction
03:46
Tower of Hanoi problem implementation
02:16
Section 3: Selection Algorithms
Selection algorithms introduction
05:21
Quickselect introduction - Hoare algorithm
08:18
Quickselect simulation
08:25
Quickselect implementation
05:45
Advanced selection - median of medians, introselect
07:21
Online selection - the secretary problem
04:58
Section 4: Backtracking
Backtracking introduction
03:11
N-queens problem introduction
07:38
N-queens problem implementation
12:09
Hamiltonian cycle introduction
11:29
Hamiltonian problem - NP-hard problems
04:17
Hamiltonian cycle implementation
13:02
Coloring problem introduction
09:54
Coloring problem implementation
18:03
Knight tour introduction
02:55
Knight tour implementation
05:49
Maze problem introduction
02:52
Maze problem implementation
05:44
Sudoku introduction
04:47
Sudoku implementation
10:06
Section 5: Dynamic Programming
Dynamic programming introduction
02:25
Fibonacci numbers introduction
04:15
Fibonacci numbers implementation
09:24
Knapsack problem introduction
06:40
Knapsack problem example
14:42
Knapsack problem implementation
16:02
Coin change problem introduction
14:54
Coin change problem implementation
08:58
Rod cutting problem introduction
12:41
Rod cutting problem implementation
04:09
Subset sum problem introduction
12:51
Subset sum problem implementation
05:29
Section 6: Other Algorithmic Problems
Bin packing problem introduction
05:31
Bin packing problem implementation
07:29
Closest pair of points problem introduction
09:40
Closest pair of points problem implementation
10:52
Section 7: Numerical Methods
Root of functions introduction
04:42
Finding roots of functions: Newton-Raphson method
03:33
Integration - trapezoidal method introduction
07:07
Integration - trapezoidal method implementation
04:25
Integration - Simpson method introduction
02:50
Integration - Simpson method implementation
05:32
Integeration - Monte Carlo method introduction
05:24
Integration - Monte Carlo method implementation
06:32
Section 8: Source Code
Source code
Article
Slides
Article
Coupon codes - get any of my other courses for a discounted price
Article

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Holczer Balazs, 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.

Ready to start learning?
Take This Course