For
this entry, I decided to read my slog entry from week 5, which was my
impression of tracing recursion. The first thing I noticed from reading it was
how I did not necessarily understand why we even did recursion. My opinion on
it was that it was a neat little trick and an alternative to using loops, which
can get complex and long-winded at times. Of course with two weeks left in the
semester, I now know that recursion is a powerful tool that is crucial for
implementing various methods in trees, binary trees, and possibly for many of the
other data structures out there.
I
appreciate the fact that the instructor first got us comfortable tracing
recursion as a way of easing us into recursion and to allow us to understand
the process of how it works. In my opinion, it got me to be good at tracing
recursion, determining the output, and becoming comfortable enough to start
writing recursive functions. I could tell by reading my writing that I was not
fully engaged in the activities and did not take it seriously, only focusing on
getting the right output instead of being cognizant about how the output was
being generated with recursion. I really paid the price because if I had been more
cognizant, I believe I would have had an easier time in the beginning when we
got down to writing recursive functions ourselves. I did not even notice that every
recursive functions had a base case (i.e. the smallest possible version of the
original problem) and the general case, which breaks down the original problem.
It took some hard work to recover and catch up. I guess in a way I agree with
my past self in that the tracing was actually “the calm before the storm” of
the actual implementation of recursion.
The lesson
learned is to not just do things for the sake of finding the answers but think
about the process as well in future courses. That is what learning is. I really
do believe that I am solid with recursion now. Of course, there will be those
curveball problems that will challenge me, but as long as I stay calm and
remember my training from this course, I do not foresee any problems occurring.
I reacted to my hardships by doing the lab exercises while understanding why
the answers are the answers and reviewing notes from lectures. It all comes
down to practice.
With this entry,
I also decided to look at other people’s recursion-tracing experiences.
Christopher (http://www.mybigfatcsc148slog.blogspot.ca/)
and I shared similar experiences with tracing recursion. He too did not face
many difficulties tracing and rather, found it to be simple, and appreciated
the instructor getting us to practice tracing first. I liked how he thought
recursion was not going to be “that bad” because that’s how I felt too. It
looks like later on in his summary of recursion that he rather enjoys
recursion, whereas I’m “cool” with it. I guess people differ in strengths and
weaknesses.