Latest Courses
ISTQB Artificial Intelligence Tester Sample ExamsCheck course
JAVA Programming Online Practice ExamCheck course
Programming for Kids and Beginners: Learn to Code in PythonCheck course
Practice Exams | Codeigniter 4 developer certificationCheck course
WordPress Practice Tests & Interview Questions (Basic/Adv)Check course
Git &Github Practice Tests & Interview Questions (Basic/Adv)Check course
Machine Learning and Deep Learning for Interviews & ResearchCheck course
Laravel | Build Pizza E-commerce WebsiteCheck course
101 - F5 CERTIFICATION EXAMCheck course
Master Python by Practicing 100 QuestionCheck course
ISTQB Artificial Intelligence Tester Sample ExamsCheck course
JAVA Programming Online Practice ExamCheck course
Programming for Kids and Beginners: Learn to Code in PythonCheck course
Practice Exams | Codeigniter 4 developer certificationCheck course
WordPress Practice Tests & Interview Questions (Basic/Adv)Check course
- 70% Recursion For Programmers

Recursion For Programmers

$14.99Track price

Add your review
Add to wishlistAdded to wishlistRemoved from wishlist 0
Add to compare
8.6/10 (Our Score)
Product is rated as #51 in category Programming

Recursion is a powerful programming technique. A function that calls itself recursively not only saves programming effort and avoids repetition but it can also be used to navigate complex structures such as Trees and Class Hierarchies.

This is an intermediate–to–advanced level course. It is aimed at programmers who can already program confidently in one or more programming languages. It is not appropriate for beginners.

The courses includes numerous short sample programs to show how recursion works. There are samples written in C, Ruby and C#. However, you don’t need to program in those languages to follow this course. Recursion works the same way in all mainstream programming languages. This course explains the theory and the practice of recursion. You can use the techniques that are taught to write recursive functions in whichever language you prefer: C, C#, Java, JavaScript, Python, Basic, Pascal and others. The course is not about any specific language.

This is what you will learn&

What is recursion?

How variables are scoped in recursive functions

How recursive functions return values

The Stack and Stack Frames

Debugging recursive functions

Recursion v Iteration

Stack Corruption, and how to avoid it

Infinite Recursion, and how to avoid it

Recursing Fibonacci Numbers

Instructor Details

Huw Collingbourne is the technology director at SapphireSteel Software, developers of programming tools for Microsoft Visual Studio. He is author of The Little Book Of C, The Little Book Of Pointers and The Little Book Of Recursion from Bitwise Books and of The Book Of Ruby from No Starch Press. He runs Bitwise Courses and teaches courses on a range of programming topics. Huw has been a programmer for more than 30 years. He is a well-known technology writer in the UK. For over ten years he wrote the Delphi and Java programming column for PC Plus Magazine. He has also written numerous opinion and programming columns (including tutorials on C#, C++, Smalltalk and Ruby) for a number of computer magazines, such as Computer Shopper, PC Pro, and PC Plus. In the 1980s he was a pop music journalist and interviewed most of the New Romantic stars, such as Duran Duran, Spandau Ballet, Adam Ant, Boy George, and Depeche Mode. He is now writing a series of 1980s murder mysteries. At various times Huw has been a magazine publisher, editor, and TV broadcaster. He has an MA in English from the University of Cambridge and holds a 2nd dan black belt in aikido, a martial art which he teaches in North Devon, UK. The aikido comes in useful when trying (usually unsuccessfully) to keep his Pyrenean Mountain Dogs under some semblance of control.

Specification: Recursion For Programmers


2 hours









14 reviews for Recursion For Programmers

3.9 out of 5
Write a review
Show all Most Helpful Highest Rating Lowest Rating
  1. Jason Penman

    Huw’s courses are great. He explains everything clearly and it’s easy to remember what you’ve learned. Even if you have experience you always learn something useful.

    Helpful(0) Unhelpful(0)You have already voted this
  2. Mike Walker

    I recommend this course for all levels, these explanations are great !

    Helpful(0) Unhelpful(0)You have already voted this

    I feel that this course was just the right length. It was helpful, and I am sure I will be returning to it from time–to–time for reference.

    Helpful(0) Unhelpful(0)You have already voted this
  4. Player 01 D’Angelo

    This was a great explainer of Recursion. There is no question that I understand and can visualize recursion much better. The instructor’s explanations are thorough and clear. His supporting visuals (with zooms and call outs) are super–helpful…especially for this topic. There are a lot of moving parts. I would love additional practice lessons where the instructor walks us through a few simple applications step by step. Also, I think it would be helpful to see an animated visual of the stack frames as they get added and discarded with the initiation and execution of each recursive call. The instructor explains this really well, but a supporting animation would knock it out of the park.

    Helpful(0) Unhelpful(0)You have already voted this
  5. Deepak Maithani

    Well , first of all kudos to instructor to think about having a course on recursion.If anyone wants to get a good overview of this topic , this is nice course to start with. If the subject of tree data structure is also covered in depth, which is a natural case of recursion and bit more advanced application of recursion , that would be wonderful.

    Helpful(0) Unhelpful(0)You have already voted this
  6. Lerena Holloway

    It didn’t reach my expectations. I wanted to see more details regarding nested structures and returning values from these nested functions taking in callbacks. There was a lot of mention of the simpler recursive cases, not much beyond that.

    Helpful(0) Unhelpful(0)You have already voted this
  7. Opal Bai

    Misses some stuff.. still wont be able to figure out how merge sort and such stuff works.. :/

    Helpful(0) Unhelpful(0)You have already voted this
  8. Matthias K.

    Really good explanation how recursion works and good portion of what happens behind the scenes.

    Helpful(0) Unhelpful(0)You have already voted this
  9. Stefan Fritz

    Good explanations, concise and clear.

    Helpful(0) Unhelpful(0)You have already voted this
  10. Farhad Ba–ali

    I needed it to be in java

    Helpful(0) Unhelpful(0)You have already voted this
  11. Malorie Casimir

    I wish there was a deeper explanation of the directory navigation program! Otherwise – I wouldn’t say recursion clicked immediately for me but it cleared up some confusion around the concept with respect to scoping.

    Helpful(0) Unhelpful(0)You have already voted this
  12. AbdulSamad Mohammad Zahir

    Good course on recursion. It’s a tad less intuitive with fewer examples than I’d hoped.

    Helpful(0) Unhelpful(0)You have already voted this
  13. Joost van der Linden

    I miss the visualizations of the scopes, like you can see in Python Tutor. Hopefully this will come. Also I don’t understand when all courses do fibronacially, it has to be done here. I would suggest to do a fibernaccio with letters or whatever. Also I would have expected examples of problems to see HOW you could rewrite them with pseudocode to recursive program. To be honest, the courses about recursive programming in MIT edx introduction to scientific programming give a better view in Recursive programming. But that maybe has to do with the fact that this course is already dated (old) (?). Also I was suprised that the term base case never was mentioned. So, I was hoping to be able to learn how to solve this problem beneath. And that’s was not really part of this course. Problem Set 4 Handed out : October 5, 2016 Due: October 12, 2016 @ 11:59 PM This problem set has two parts. The first part allows you to practice thinking about problems in a recursive fashion, taking advantage of the idea that one can reduce the problem to a simpler version of the same problem. In , you will write a recursive function that takes as input a string and figures out all the possible reorderings of the characters in the string. The second part will give you experience in thinking about problems in terms of classes, each instance of which contains specific attributes as well as methods for manipulating them. In , you will use object–oriented programming to write a Caesar/shift cipher. In , you will use object–oriented programming to write a very simple substitution cipher. As always, please do not rename the files we provide you with, change any of the provided helper functions, change function/method names, or delete provided docstrings. You will need to keep words.txt and story.txt in the same folder in which you store, and . Finally, please consult the Style Guide on as we will be taking point deductions for violations (e.g. non–descriptive variable names and uncommented code). For this pset style guide numbers 6, 7 and 8 will be highly relevant so make sure you go over those before starting the pset, and again before you hand it in! Part A: Permutations of a string A permutation is simply a name for a reordering. So the permutations of the string abc are abc , acb , bac , bca , cab , and cba . Note that a sequence is a permutation of itself (the trivial permutation). For this part of the pset you ll need to write a recursive function get permutations that takes a string and returns a list of all its permutations. You will find this function helpful later in the pset for part C. A couple of notes on the requirements: Recursion MUST be used , global variables may NOT be used. Additionally, it is okay to use loops to code the solution. The order of the returned permutations does not matter. Please also avoid returning duplicates in your final list. 1 Suggested Approach In order to solve any recursive problem, we must have at least one base case and a recursive case (or cases). We can think of our base case as the simplest input we could have to this problem (for which determining the solution is trivial and requires no recursion) –– for this approach, our base case is if sequence is a single character (there s only one way to order a single character). If sequence is longer than one character, we need to identify a simpler version of the problem that, if solved, will help us easily find all permutations for sequence . The pseudocode below gives one approach to recursively solving this problem. Given an input string sequence : Base case: if sequence is a single character, there s only one way to order it return a singleton list containing sequence Recursive case: suppose we have a method that can give us a list of all permutations of all but the first character in sequence (Hint: think recursion) then the permutations of all characters in sequence would be all the different ways we can insert the first character into each permutation of the remaining characters example: if our word was bust , we hold out the character b and get the list [ ust , sut , stu , uts , tus , tsu ] then ust gives us: b ust , u b st , us b t , ust b sut gives us: b sut , s b ut , su b t , sut b and so on …

    Helpful(0) Unhelpful(0)You have already voted this
  14. Jordan Johnson

    Thank you for this course! Everything very well explained. Great visuals to help understand these concepts.

    Helpful(0) Unhelpful(0)You have already voted this

    Add a review

    Your email address will not be published. Required fields are marked *

    This site uses Akismet to reduce spam. Learn how your comment data is processed.

    Price tracking

    Java Code Geeks
    Register New Account
    Compare items
    • Total (0)