YoVDO

Recursion in Programming - Full Course

Offered By: freeCodeCamp

Tags

Programming Courses Algorithms Courses Data Structures Courses Divide and Conquer Algorithms Courses Linked Lists Courses Recursion Courses String Manipulation Courses

Course Description

Overview

Dive into a comprehensive course on recursion in programming, exploring its power to solve complex problems with elegant code. Learn what recursion is, when to use it, and examine various examples across different data structures. Through animations, debugging sessions, and call-stack analyses, gain a deep understanding of recursive principles. While the code examples are in Java, the concepts apply to any programming language. Cover topics like string manipulation, number conversions, divide-and-conquer algorithms, linked lists, trees, graphs, and optimization techniques such as memoization and tail-call recursion. By the end, master the art of implementing recursive solutions in your programming projects.

Syllabus

) Introduction.
) What Is Recursion?.
) Explaining Recursion via ATM Analogy.
) Explaining Recursion via Essay Revision Analogy.
) Summarizing What Recursion Is.
) Why & Why Not Recursion.
) Understanding The Call Stack.
) Call Stack Analogy.
) Recursion With Strings Introduction.
) String Reversal Explanation.
) String Reversal Call Stack Animation.
) Palindrome Explanation.
) Palindrome Call Stack Animation.
) Recursion With Numbers.
) Decimal To Binary Explanation.
) Decimal To Binary Code & Debug.
) Sum of Natural Numbers Explanation.
) Sum of Natural Numbers Code & Debug.
) Divide & Conquer Algorithms.
) Binary Search Animation & Explanation.
) Fibonacci Explanation.
) Fibonacci Animation.
) Merge Sort Explanation & Animation.
) Merge Sort Code & Debug.
) Linked Lists.
) Linked List Reversal Animation.
) Linked List Code & Debug.
) Merge Two Sorted Linked Lists Animation.
) Merge Two Sorted Linked Lists Code & Debug.
) Trees.
) Insert Value Into Binary Search Tree Animation.
) Insert Value Into Binary Search Tree Code Walkthrough.
) Insert Value Into Binary Search Tree Call Stack Animation.
) Print All Leaf Nodes Explanation.
) Print All Leaf Nodes Code & Debug.
) Graphs.
) Depth-First Search Animation.
) Depth-First Search Code Walkthrough.
) Recursion Optimizations.
) Memoization & Caching.
) Tail-Call Recursion.
) Conclusion.


Taught by

freeCodeCamp.org

Related Courses

程序设计实习 / Practice on Programming
Peking University via Coursera
程序设计基础
Peking University via edX
算法基础
Peking University via Coursera
Principles of Computing (Part 2)
Rice University via Coursera
算法设计与分析 Design and Analysis of Algorithms
Peking University via Coursera