What will you learn from the course?By the end of the course, you will have a better idea of the type of problems asked in coding interviews and how to approach them to implement a viable solution. You will also learn the most common algorithms used in coding interviews, and more importantly, when to use them. You will improve your problem-solving skills and interviewing skills. About the InstructorDavid has more than 10 years of experience teaching the Algorithms Design and Analysis course at Universidad Panamericana. He has been involved in the ACM-ICPC programming team of the university as a contestant, coach, and advisor. David is a Principal Software Engineer with more than 10 years of experience in the industry, having worked at Amazon and Oracle. He also has worked at Karat as a contractor to interview engineers for companies such as Roblox, Indeed, Walmart, Palantir, and others. He has interviewed hundreds of candidates during his trajectory and has participated as a problem setter for questions used in recruitment processes. He is the founder of dnd-learning, where he creates educational content related to algorithms. He provides guidance and mentorship for coding interviews and constantly publishes material about algorithms and interviews. He is co-author of the book Algorithms for Competitive Programming. MaterialThe slides of the course are available for download. For each coding exercise in the course, it is provided the code with the implementation, and a document explaining the solution. The coding questions are public to practice, and all of them have automated test cases. Content of the CourseIntroductionObjectivesMotivationTools that will be used during the courseComplexity AnalysisImportance of identifying time and space complexity in an interviewCommon types of complexitiesInterview tipsCoding exercisesData Structures ILinear data structures: Vector, list, queue, and stackTree data structuresInterview tipsCoding exercisesData Structures IIHashing data structuresInterview tipsCoding exercisesGraphsDefinitionTypes of graphsPaths and cyclesRepresentation of a graphGraph traversalInterview tipsCoding exercisesDynamic ProgrammingDefinitionHow to approach a problem with dynamic programmingExamples of DP problemsInterview tipsCoding exercisesBacktrackingDefinitionHow to implement a backtracking solutionWhen is a good idea to use backtrackingExample: SudokuInterview tipsCoding exercises