Answers.Body: <p>Most textbooks have some discussion of solved problems along with the theory. They also have exercises for the students and some provide solutions to (some of) the exercises. But they are designed for classroom use in which student work is given feedback by an instructor. It is that feedback that you are missing and it is both necessary and difficult to get for someone studying on their own. That is why self study can be far less useful and efficient than taking a course with a skilled instructor.</p>
  <p>Note, importantly (importantly), that reading solutions isn't nearly the same thing as creating solutions. Learning (true learning) is an active sport, not a passive one. You can't learn this stuff any better than you can learn to swim by watching the olympics. But also note that those olympic swimmers worked with a coach to improve their form. They got feedback throughout their training.</p>
  <p>Repetition and feedback are key to learning. If you can find a way to get that feedback you will progress much faster. One way that might be open to you if you can't take a course is to find someone else with similar interests. Then do the work and exchange papers, giving feedback to each other. It isn't perfect, but better than nothing.</p>
  <p>And &quot;unsolved&quot; problems are unlikely to help you. A lot of people have probably been trying to solve them for a long time and they have already developed the necessary skills.</p>
  <p>Failing everything else, find a good textbook and carefully read the text. Then attempt the exercises there, which are tailored to the textual development.</p>
  <p>You can also write programs to implement the algorithms and instrument them to determine their behavior, though this, in itself, is a skill that needs to be learned. Count and report the important computations (tests, swaps, ...). Run on many data sets and evaluate the results to see if they match the theory. Much harder, actually, than just taking a course with a good instructor.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2023-11-17T14:23:08.207Z
Answers.LastActivityDate: 2023-11-17T14:23:08.207Z
Answers.UserDisplayName: Buffy
Body: <p>How do I learn it? Watching lectures haven't been helping a lot. I want to solve &quot;solved problems&quot; but I'm not finding anything that has solved problems.</p>
  <p>Please guide me. Complexity analysis of algorithms mean big oh, theta, omega... etc.</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2023-11-16T13:31:28.850Z
Comments.Text: I'm confused -- are you finding *unsolved problems* instead?  It's been my experience that essentially every problem that you will find in any instructional resource is a solved problem.
Comments.UserDisplayName: Ben I.
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2023-11-16T14:23:03.647Z
Comments.Text: What sort of resources are you looking for? There are books with exercise, of course. Or are you just looking for problems with already published solutions?
Comments.UserDisplayName: Buffy
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2023-11-16T15:00:37.533Z
Comments.Text: I'm looking for problems with already published step by step solutions. Btw which one is more helpful?
Comments.UserDisplayName: achhainsan
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2023-11-17T07:44:01.500Z
Comments.Text: I think unsolved exercises could also help.
Comments.UserDisplayName: achhainsan
Tags: <algorithms>
Title: Courses for understanding complexity analysis of algorithms
ThreadText: # Courses for understanding complexity analysis of algorithms
  
  (Asked by: username_0 on 2023-11-16)
  
  How do I learn it? Watching lectures haven't been helping a lot. I want to solve "solved problems" but I'm not finding anything that has solved problems.
  
  Please guide me. Complexity analysis of algorithms mean big oh, theta, omega... etc.
  
  **Tags:** algorithms
  
  > **Comments:**
  > **username_1**: I'm confused -- are you finding *unsolved problems* instead?  It's been my experience that essentially every problem that you will find in any instructional resource is a solved problem.  
  > **username_2**: What sort of resources are you looking for? There are books with exercise, of course. Or are you just looking for problems with already published solutions?  
  > **username_0**: I'm looking for problems with already published step by step solutions. Btw which one is more helpful?  
  > **username_0**: I think unsolved exercises could also help.  
  
  ---
  
  ## 1 answers
  
  ### Answer by username_2 on 2023-11-17. Score: 2 | Accepted answer
  
  Most textbooks have some discussion of solved problems along with the theory. They also have exercises for the students and some provide solutions to (some of) the exercises. But they are designed for classroom use in which student work is given feedback by an instructor. It is that feedback that you are missing and it is both necessary and difficult to get for someone studying on their own. That is why self study can be far less useful and efficient than taking a course with a skilled instructor.
  
  Note, importantly (importantly), that reading solutions isn't nearly the same thing as creating solutions. Learning (true learning) is an active sport, not a passive one. You can't learn this stuff any better than you can learn to swim by watching the olympics. But also note that those olympic swimmers worked with a coach to improve their form. They got feedback throughout their training.
  
  Repetition and feedback are key to learning. If you can find a way to get that feedback you will progress much faster. One way that might be open to you if you can't take a course is to find someone else with similar interests. Then do the work and exchange papers, giving feedback to each other. It isn't perfect, but better than nothing.
  
  And "unsolved" problems are unlikely to help you. A lot of people have probably been trying to solve them for a long time and they have already developed the necessary skills.
  
  Failing everything else, find a good textbook and carefully read the text. Then attempt the exercises there, which are tailored to the textual development.
  
  You can also write programs to implement the algorithms and instrument them to determine their behavior, though this, in itself, is a skill that needs to be learned. Count and report the important computations (tests, swaps, ...). Run on many data sets and evaluate the results to see if they match the theory. Much harder, actually, than just taking a course with a good instructor.
  
  
  ---
  
  