I'm taking a course on data structures and algorithms and it follows the book Introduction to Algorithms, 3rd Edition (ISBN-10: 9780262033848) by Charles E. Leiserson, Clifford Stein, Ronald Rivest, and Thomas H. Cormen. Judging by the way the first few weeks of class have gone, I will be teaching myself directly from the book with very little lecturing/instruction. Does anyone know of any resources, especially free, online courses that they could recommend to help me get through this class? I am struggling.
-
$\begingroup$ What is it about the course that makes you ask this question. What do you find missing? How is your background for it? $\endgroup$– BuffySep 11, 2019 at 19:54
-
$\begingroup$ Charles E. Leiserson, Clifford Stein, Ronald Rivest, and Thomas H. Cormen $\endgroup$– SelfStudy22Sep 11, 2019 at 19:55
-
$\begingroup$ I'm a third year computer science student. I understand the concepts that are being explained in the book but I find that without a lecture, or some sort of secondary material, I struggle with retaining the information and applying it to my work. I would like to find some sort of online course that follows the book to make up for the lack of instruction I'm receiving. $\endgroup$– SelfStudy22Sep 11, 2019 at 20:02
-
$\begingroup$ Is the "course" you are taking without lectures? If so, what is the course methodology? What happens in a typical face to face session, if any? $\endgroup$– BuffySep 11, 2019 at 20:04
-
$\begingroup$ The course consists of lecture session, homework assignments, and tests. Lectures have consisted of our professor reading off pp slides taken word for word from the book, with no explanation or time for questions/clarification. I've gone into office hours multiple times, but it's a large university and I can only take up so much of the professor's time. $\endgroup$– SelfStudy22Sep 11, 2019 at 20:10
2 Answers
The key to learning this, or much of anything, is reinforcement and feedback. Reinforcement comes from doing exercises and solving problems in a course like this and the book has plenty of mid chapter and end chapter exercises and problems. You can do a lot of these. All of them may be asking too much, but you want to be able to answer any of them. Getting more explanation may help or not, but only if it helps you solve those problems.
Feedback, however, may be the bigger problem. Where you can properly seek it may or may not be a problem. If the rules in your place permit study together then you can work with one or two other students in a study group. Each of you solves some set of problems on your own. Then you meet and discuss your solutions. I'm not suggesting you collaborate on formal assignments as that may be treated as cheating (or not, depending on the prof), but all of the "other" exercises are, to me, fair game for collaboration. Doing them gives the reinforcement. Discussing them gives the feedback. Look for insights from each exercise that go beyond that exercise.
In universities such as yours, you often will have access to a TA. That person should also be able (and willing) to give you feedback on what you do. If they are wise and you seek hints from them, you will only get minimal hints, not solutions. Seek the insights, not just the solutions. Go to them for feedback, not hints, primarily. Likewise in a study group. And if your professor doesn't get angry when you spend too much time in their office, then spend a lot of time in their office.
Others may be able to supply online course resources, but I'll warn you that such things may make it harder if they divert you in any way from the main task: reinforcement and feedback.
Try to space out your study so that cramming for exams isn't necessary. It will be counterproductive for almost everyone and almost every situation.
Other hints: Take notes on index cards. Carry those cards and review them frequently. Carry blank cards so you can make notes as you get insight or have questions that need to be answered later.
Sleep and get enough exercise. i.e. rest your mind and energize your body. The overworked mind is inefficient. The insufficiently oxygenated body is also inefficient.
For anyone with a similar question who reads this in the future, I found this very helpful series of YouTube videos concerning algorithms.
I liked it because the series covers topics in a similar order to the book. There is no assumption of what you do or don't know, material is covered from the ground up. Each video provides multiple examples of problems.
-
$\begingroup$ Would you mind explaining why you found this series in particular helpful? $\endgroup$– thesecretmaster ♦Sep 13, 2019 at 1:45
-
1$\begingroup$ The series covers topics in a similar order to the book. There is no assumption of what you do or don't know, material is covered from the ground up. Each video provides multiple examples of problems. It's what I was looking for when I initially asked the question. $\endgroup$ Sep 13, 2019 at 1:56
-
1$\begingroup$ @SelfStudy22 please note, I integrated your comment into the answer itself. (It belongs there). $\endgroup$– Ben I. ♦Sep 13, 2019 at 11:08