I just completed Intermediate Programming (C#) this last quarter. During the quarter some of the topics we covered were recursion and search/sorting algorithms. On the final our teacher asked us (written out on paper) to write a few different abstract methods using what we learned in algorithms. Normally, I do just fine on tests, but when asked to take a dynamic approach to this problem, I was highly confused and unable to fully answer it in the time given. The way I studied for the test was by memorizing each algorithm, but this did not seemed to help (which really confused me because I have no issues with math or physics). Would any of you recommend helpful ways to study, as to hopefully overcome this default in my thinking, or is this something I am stuck with? During fall quarter I am taking advanced programming and want to be better prepared so that I am very comfortable with these. I should also state that I will be essentially redoing a lot of the problems in our book, so my intentions are to practice practice practice.