Competitive Coding with Python


The thrilling world of competitive coding requires skills that go beyond what is traditionally taught in classrooms. Given a problem, there are often several possible ways to solve it. Identifying the best approach, formulating the core idea and the steps needed to break down the problem before even writing a single line of code, all the while keeping in mind the limited resources available... Whew! No wonder this is a highly sought after skill.

Participating in coding competitions improves your critical thinking, problem solving abilities and also puts your coding skills on the next gear. Furthermore, a good performance in competitions embellishes your resume and lets you stand-apart from the crowd.

Type: Skillcamp
Duration: 4 Months
Students: Undergraduate
Mode: Online
Prerequisites
  • Basic programming skills in Python.
  • A course on Algorithms and Datastructures would be helpful, but not mandatory.
What to expect
  • The course is broken into three parts. In the first part, we will briefly review python and some of the core concepts from algorithms and datastructures. Following that, we will embark on problem solving, while hosting several in-house competitions. In the final part, you will participate in public coding competitions on platforms (such as leetcode/codeforces) and one-on-one feedback and mentoring will be provided after each competition, that enables you to go further on your own.
Outcomes
  • Refresh your knowledge of coding and algorithms
  • Identify several established problem types and problem solving techniques
  • Perform quick time & space complexity analysis for different solution approaches
  • Apply established algorithm design procedures to solve problems
  • Participate and compete with your peers in our in-house competitions
  • Participate and compete with your peers in public competitions

Contents

Module 1. Python and Algorithms Refresher
We will begin with a quick refresher on python coding. We will briefly review coding constructs such as datatypes, functions, flow control, OOP concepts, and a host of built-in features of the language.
A sound knowledge of Algorithms and Datastructures is essential for competitive coding. Thus, we will review some of the more fundamental concepts such as time/space complexity, sorting, recursion, and elementary datastructures in this chapter. Additional algorithm design concepts will be revisited in the next module.
Module 2. Problem Solving and In-house Competitions
We will make our foray into competitive coding with so-called ad-hoc problems. These types of problems serve as a good starting point to get used to the format of coding competitions. This type of problems cannot be readily categorized, and each requires an unassuming fresh approach to solve which makes for good practice.
Newcomers usually find DP problems a bit difficult. The best way to overcome this is by solving a large number of DP problems. In this chapter, we will start with simple recursive design initially and then quickly move on to using DP table based implementations.
Greedy Algorithms are a special case of DP problems, and are usually easier. However, identifying the conditions under which greedy solutions are feasible can be tricky, and this chapter helps with that by solving problems.
We will start with graph representations using built-in datatypes and solve problems based on graph search, graph coloring, graph diameter, shortest path, minimum spanning tree and others.
  • In the final module, students will participate in public competitions on platforms like leetcode/codeforces to gain experience and test their understanding
  • After each competition, feedback is provided and problem areas of individual students is addressed.
The Course Includes
  • 60+ Hours live lectures
  • 25+ Hours self learning
Course Materials
  • 25+ Course handouts
  • 10 Problem sets
  • 10 Assignments
Additional Benefits
  • 1-on-1 Mentoring
  • In-house Competitions
  • Public Competitions
  • Nomadskills certificate