INTRODUCTION TO
COMPETITIVE PROGRAMMING
TOPICS OF DISCUSSION
• Why Should I do CP?
• How do I start doing Competitive Programming?
• Websites for Practice and Competitions
• Basic Programming skills
• Programming Environment Setup
• Example Questions
• Resources to Study from
• Discord and CF Groups
WHY SHOULD I DO CP?
• Job Interviews expect you to solve Algorithmic Problems
• Development of Problem solving skills
• Major Competitions – ACM ICPC, Google Code Jam, FB Hacker Cup
• You can reach WORLD FINALS if you’re determined enough ;-)
• Also do CP because “It’s FUN!”
• WARNING: IT’S ADDICTIVE TOO :D
ACM ICPC
CAN YOU BEAT THIS GUY?
HOW DO I START DOING CP?
• 1. Setup a Programming Environment
• 2. Make an account on CodeChef and CodeForces
• 3. Solve basic questions on CodeForces, learn how to implement an algorithm
• 4. Start regularly taking part in Long Challenges on CodeChef
• 5. Also Participate in Short Challenges for Speed and Accuracy
• 6. Practice Questions
• 7. Learn What you don’t Know
• 8. Compete
• 9. GOTO STEP 6
CP WEBSITES
• CODEFORCES
• CODECHEF
BASIC PROGRAMMING SKILLS
To solve a problem you need to:
• Know a Programming Language
• Design an Algorithm for the Problem
• Implement the algorithm in a programming language
• Run the program and test it locally
• Run it on the Online Judge
• Debug it if it doesn’t work
• Write readable code
BASIC PROGRAMMING SKILLS
• What Programming Language should I Know?
• How do I make an algorithm? - LATER
• How do I write a simple program to implement the algorithm?
• How do I run a program?
• How do Online Judges work?
• How do I write a good readable program so that it can be debugged
easily?
PROGRAMMING ENVIRONMENT SETUP
• YOU NEED:
• AN OPERATING SYSTEM
• A TEXT EDITOR
• A COMPILER
• A WAY TO RUN THE EXECUTABLE FILES
EXAMPLE PROGRAMMING ENVIRONMENT - 1
EXAMPLE PROGRAMMING ENVIRONMENT - 2
EXAMPLE PROBLEMS ON CF
RESOURCES TO STUDY FROM
• Blogs – TOPCODER, CodeForces
• Common Lounge
• BOOKS:
• CP Handbook
• Algorithm Design Manual – Prof Skiena
• WEBSITES:
• CP-ALGORITHMS
DISCORD AND CF GROUPS
ANY QUESTIONS?
THANKS