Coding Interview Jumpstart: Algorithms and Problem Solving
Learn the principles behind fundamental computer science algorithms asked in interviews for top tech companies.
What you’ll learn
Coding Interview Jumpstart: Algorithms and Problem Solving
- Have higher chances to get a job in a place where algorithmic problem solving is a part of the interview.
- Have one more tool during coding interviews.
- A better understanding of principles behind fundamental computer science algorithms.
- Becoming a better problem solver.
Requirements
-
Basic knowledge of any programming language.
-
Elementary math knowledge.
Description
WHATÂ ISÂ THISÂ COURSEÂ ABOUT?
In this course, we will together make the first steps in the exciting world of algorithms. If you have never learned anything about algorithms, don’t be afraid or intimidated. Algorithms aren’t as hard as people often consider them to be. I’m convinced that any programmer can master the art of problem solving and algorithms if he or she has the motivation to succeed. I believe that most algorithms can be very easy to understand if they are explained clearly and simply.
Considering that I know how hard can the beginning be, because I have been in the same situation once, I have invested my knowledge and experience into this course, to help you guys make the first steps towards mastering algorithms and bringing you one step closer to your dream job.
HOWÂ ISÂ THISÂ COURSEÂ STRUCTURED?
Section 1: Introduction
In this section, I will introduce you to the material and the structure of the course.
Section 2: Algorithm Analysis
In section 2, we are going to talk about algorithm analysis. For some of you, this will be your first step into the world of algorithms and you will understand why is this such an important topic.
We are going to learn several things:
- First, we will learn about the importance of analysis, and why do we have to analyze our solutions.
- Then we are going to focus on Asymptotic notation, which is a language that allows us to analyze program running time by identifying its behavior as the input size for the algorithm increases.
- After that, we will focus on a specific type of notation, called Big-O notation, and we will use the Big-O notation to compare algorithms.
- Finally, we are going to practice these concepts by calculating the time and space complexity of some given algorithms.
Section 3: Sorting
Sorting is one of the most common algorithms in the world, if you look all around you can find a lot of applications that are using a sorting algorithm to put elements of some list in a certain order. The elements don’t have to be numbered, they can be strings or maybe some events which are sorted by date.
In this section we will learn several sorting algorithms:
- Bubble Sort
- Selection Sort
- Insertion Sort
- Merge Sort
- Quick Sort
- Counting Sort
For each algorithm, we will determine the time and space complexity and compare trade-offs.
At the end of this section, you will learn the most important sorting algorithms and you will be able to determine what is the best algorithm to use depending on the type and range of the data which needs to be sorted.
Section 4: Binary Search
This section is dedicated to a fundamental searching algorithm in computer science:Â binary search.
We start with an explanation of the basic idea of the algorithm and its implementation.
Then we are going to explore some variations of binary search and how we can implement them:
- Finding the first occurrence of a target value in the input array
- Finding the last occurrence of a target value in the input array
- Finding the number of occurrences of a target value in the input array
Section 5: BONUS:Â Interview Problems
This section is a special bonus section, here I will post detailed interview problems solutions. I encourage you to post some interesting problems in the discussions, and each one-two week I will choose new problems and post a new video in this section where we solve those new problems.
I also encourage you to post questions about problems that you don’t know how to solve or if you have some bugs in your code and you’re not sure why your program isn’t working
Who this course is for:
- Software developers preparing for coding interviews.
- Software developers who want to learn more about fundamental algorithms and problem-solving.
- Undergraduate and graduate computer science students.
- Anybody who wants to kickstart knowledge in algorithms.
Add Comment