Find online courses made by experts from around the world.
Take your courses with you and learn anywhere, anytime.
Learn and practice real-world skills and achieve your goals.
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.
Not for you? No problem.
30 day money back guarantee.
Learn on the go.
Desktop, iOS and Android.
Certificate of completion.
|Section 1: Introduction|
|Section 2: Recursion|
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
Euclidean algorithm - greatest common divisor
Linear and binary search
Towers of Hanoi problem introduction
Tower of Hanoi problem implementation
|Section 3: Selection Algorithms|
Selection algorithms introduction
Quickselect introduction - Hoare algorithm
Advanced selection - median of medians, introselect
Online selection - the secretary problem
|Section 4: Backtracking|
N-queens problem introduction
N-queens problem implementation
Hamiltonian cycle introduction
Hamiltonian problem - NP-hard problems
Hamiltonian cycle implementation
Coloring problem introduction
Coloring problem implementation
Knight tour introduction
Knight tour implementation
Maze problem introduction
Maze problem implementation
|Section 5: Dynamic Programming|
Dynamic programming introduction
Fibonacci numbers introduction
Fibonacci numbers implementation
Knapsack problem introduction
Knapsack problem example
Knapsack problem implementation
Coin change problem introduction
Coin change problem implementation
Rod cutting problem introduction
Rod cutting problem implementation
Subset sum problem introduction
Subset sum problem implementation
|Section 6: Other Algorithmic Problems|
Bin packing problem introduction
Bin packing problem implementation
Closest pair of points problem introduction
Closest pair of points problem implementation
|Section 7: Numerical Methods|
Root of functions introduction
Finding roots of functions: Newton-Raphson method
Integration - trapezoidal method introduction
Integration - trapezoidal method implementation
Integration - Simpson method introduction
Integration - Simpson method implementation
Integeration - Monte Carlo method introduction
Integration - Monte Carlo method implementation
|Section 8: Source Code|
Coupon codes - get any of my other courses for a discounted price
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.