What you will learn
- Learn and apply essential algorithmic techniques to various computational problems.
- Learn to test and debug your code. Your solutions will be checked by our automated grading system against dozens of carefully selected test cases.
- Solve popular algorithmic problems from technical interviews. Even though there are thousands of different interview problems, nearly all of them can be solved using relatively few algorithmic ideas that are illustrated by our thirty basic problems. By learning these ideas, you will be able to solve the entire spectrum of interview problems.
About this course
Prepare for your next technical interview by solving algorithmic interactive puzzles and programming challenges!
Features of this course:
Practice writing efficient and reliable code by implementing many algorithmic challenges in a programming language of your choice. To help you conquer these challenges, we provide a series of hints, a detailed solution, and a Python code for each problem so that you can compare it with your implementation to see if you followed the best programming practices.
Practice solving algorithmic problems you will likely encounter at your next coding interview by following a series of carefully selected hints. These hints often mimic the hints many applicants get during their interviews.
Re-invent the key algorithmic ideas by solving our interactive puzzles that you can solve on your smartphone. Each such puzzle illustrates an algorithmic idea that we want you to re-invent using seemingly simple yet non-trivial problems.
To get a regular certificate from Cogniterra, earn at least 250 points. To get a certificate with distinction, earn at least 280 points. To get a personal recommendation letter from the authors, earn at least 320 points (to do this, it suffices to solve all non-interview programming challenges) and pass the final exam administered by the authors.
Please check our website to learn more about the various features of this book and our "active teaching" approach.
Compare with other interview preparation resources
Whom this course is for
This course is for you if you need to prepare for a coding interview or just want to get better at algorithms.
Basic knowledge of at least one out of eleven programming languages that we support. For all programming challenges, we provide solutions in Python.
Meet the Instructors
How you will learn
Memorization: solving coding problems… without learning how to solve them
Contrary to a popular belief, passing the standard 'Algorithms 101' course offered by most universities will not prepare you for a coding interview! Indeed, since many 'Algorithms 101' courses do not require real coding, even graduates of top computer science programs need to independently prepare for coding interviews.
This process is facilitated by companies that offer you many coding problems. This time-consuming path often amounts to the memorization of solutions to hundreds of problems rather than the ability to solve a new problem that you might find at your next coding interview.
Active learning versus memorization
This book offers a different approach by teaching ideas that help you solve any interview problem from scratch. As professors who have taught thousands of students at our universities (and over a million students at Coursera and edX), we understand the algorithmic ideas that will best prepare you to solve a spectrum of problems you may encounter in your next interview.
We thus carefully selected just 30 basic problems that illustrate these ideas. We don't show you the solutions to these problems right away — instead, we developed interactive puzzles (that you can solve on your smartphone!) and a series of hints to help you to come up with these ideas on your own. This active learning approach is far superior because the best way to solve a spectrum of problems (based on the same idea) is to "re-discover" this idea rather than "memorizing" the solutions to all these problems.
A fast "30+30" approach for preparing for a coding interview
Even though there are thousands of different interview problems, nearly all of them can be solved using relatively few algorithmic ideas that are illustrated by our thirty basic problems. By learning each of these ideas, you will be able to solve the entire spectrum of problems based on a specific idea.
After solving our basic problems, we offer you thirty common interview questions so that you can check whether you can apply the ideas that you've learned for solving them on your own. Once you've solved all of them yourself, you're ready for your next interview! And you can continue practicing other problems but this time really SOLVING them rather than MEMORIZING their solutions. That is why we believe that our "30+30" approach is superior and more time-efficient than a popular "solving problems without learning how to solve them" approach.
What you will get
- 30 programming challenges with detailed solutions (including Python code). You can solve them in a programming language of your choice.
- 30 algorithmic interview problems. Each problem comes with a series of hints leading to a solution.
- 24/7 support from the authors and teaching assistants. We answer each question posted in the forum within 24 hours.
- Access to the solution forum. Through this forum, together with other learners of this course, you will learn from solutions (in various programming languages) of each other.
- A certificate and personalized recommendation letter from the authors.