Top Banner
7 1 Anup Kalbalia – Lead, CodeChef
23

7 1 Anup Kalbalia – Lead, CodeChef. 7 2 Role of Competitive Programming in Computer Science Education.

Dec 24, 2015

Download

Documents

Milton Lloyd
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 7 1 Anup Kalbalia – Lead, CodeChef. 7 2 Role of Competitive Programming in Computer Science Education.

1

7

Anup Kalbalia – Lead, CodeChef

Page 2: 7 1 Anup Kalbalia – Lead, CodeChef. 7 2 Role of Competitive Programming in Computer Science Education.

2

7

Role of Competitive Programming

in

Computer Science Education

Page 3: 7 1 Anup Kalbalia – Lead, CodeChef. 7 2 Role of Competitive Programming in Computer Science Education.

3

7Competitive Programming?

(also called)

Sports Programming

“Competitive programming is a mind sport usually held over the Internet or a local network, involving participants trying to program

according to provided specifications.” - Wikipedia

Page 4: 7 1 Anup Kalbalia – Lead, CodeChef. 7 2 Role of Competitive Programming in Computer Science Education.

4

7

The core – Online Judge

Page 5: 7 1 Anup Kalbalia – Lead, CodeChef. 7 2 Role of Competitive Programming in Computer Science Education.

5

7Two most basic tasks that an

online judge can help teachers:

1. Evaluation of Assignments

2. Plagiarism Detection

Online Judges

Page 6: 7 1 Anup Kalbalia – Lead, CodeChef. 7 2 Role of Competitive Programming in Computer Science Education.

6

7 Things bundled around an online judge:

1. Support on many programming languages - Focus on solving problems than learning a language.

2. Carry it anywhere - online

3. Plagiarism Detection

4. Ratings - performance monitoring

5. Institution wise data

6. Editorials

7. Problem search on different topics + difficulty levels

8. Discussion Forum - community help

Online Judges

Page 7: 7 1 Anup Kalbalia – Lead, CodeChef. 7 2 Role of Competitive Programming in Computer Science Education.

7

7

Some Popular Online Judges

• CodeForces

• SPOJ

• Topcoder

• HackerRank

• CodeChef

Page 8: 7 1 Anup Kalbalia – Lead, CodeChef. 7 2 Role of Competitive Programming in Computer Science Education.

8

7

Some Judges that you can use offline

• PC^2

• DomJudge

• Mushak

• cms (IOI grader)

Page 9: 7 1 Anup Kalbalia – Lead, CodeChef. 7 2 Role of Competitive Programming in Computer Science Education.

9

7

Most popular programming competitions

• ACM ICPC

• International Olympiads of Informatics

• Google Code Jam

• FacebookHackerCup

• CodeChef SnackDown

Page 10: 7 1 Anup Kalbalia – Lead, CodeChef. 7 2 Role of Competitive Programming in Computer Science Education.

10

7

ACM ICPC

Page 11: 7 1 Anup Kalbalia – Lead, CodeChef. 7 2 Role of Competitive Programming in Computer Science Education.

11

Me – in December 2003 @ IIT Bombay

Page 12: 7 1 Anup Kalbalia – Lead, CodeChef. 7 2 Role of Competitive Programming in Computer Science Education.

12

7

Yet another Contest Platform?

Why?• Launched in 2009. With a specific

objective to improve the programming scenario in India.

• By building a global community of programmers

• CodeChef is not just a contest control system. It has grown into a vibrant community

Page 13: 7 1 Anup Kalbalia – Lead, CodeChef. 7 2 Role of Competitive Programming in Computer Science Education.

13

7

Some Statistics

• 6.5+ million submissions to various problems.

• 2,00,000+ registered users spread across the globe

• 5000+ educational institutions and 200+ countries use our platform.

• 800+ contests hosted in the last 5 years.

• 3500+ problems based on ACM ICPC and IOI.

• Problems available in 3 different languages - English, Russian and Chinese.

Page 14: 7 1 Anup Kalbalia – Lead, CodeChef. 7 2 Role of Competitive Programming in Computer Science Education.

14

7

Features

• Robust online judge back-end in partnership with SPOJ with extremely consistent execution run-time.• Support for 50+ languages/compilers.• A web interface making it very usable, portable, easy and friendly to use.• An online IDE with user driven customization, that self destructs all submitted solutions• Plagiarism Detection• Ratings - Institution wise filters• Verdict by email• Tagged problems sorted by topics and difficulty levels • Practice Section • Elaborate Editorials for every problem• Discussion Forum• Translated Problem Statements in Russian and Chinese• Scalable - Capacity can be increased by adding additional servers• Secure judge environment - has access restriction based on IP/usernames.• Fault tolerant – No single point of failure• Runs on the cloud - no infrastructure headache. Just needs an Internet connection.• Ability to write custom validators.• On the fly re-judge facility.• Moderation of comments/announcements/solutions for contest admin.• Host your own contests - Free for use for any one• 24-hour online/call support. • ICPC Integration • and many more….

Page 15: 7 1 Anup Kalbalia – Lead, CodeChef. 7 2 Role of Competitive Programming in Computer Science Education.

15

7

Technology Stack

• Runs on the cloud - AWS

• MySQL

• Nginx

• PHP

• Memcache

Page 16: 7 1 Anup Kalbalia – Lead, CodeChef. 7 2 Role of Competitive Programming in Computer Science Education.

16

7• Host your contests

• Go For Gold

• CodeChef for Schools

• Evaluation platform for universities

• Course Curriculum – IIIT Delhi

• Campus Chapters

Community building and Initiatives

Page 17: 7 1 Anup Kalbalia – Lead, CodeChef. 7 2 Role of Competitive Programming in Computer Science Education.

17

Go For Gold - 2010

Page 18: 7 1 Anup Kalbalia – Lead, CodeChef. 7 2 Role of Competitive Programming in Computer Science Education.

18

Page 19: 7 1 Anup Kalbalia – Lead, CodeChef. 7 2 Role of Competitive Programming in Computer Science Education.

19

7Institutions using competitive

programming:• IIT’s

• IIIT Hyderabad

• IIIT Delhi

• DA-IIACT

Page 20: 7 1 Anup Kalbalia – Lead, CodeChef. 7 2 Role of Competitive Programming in Computer Science Education.

20

7

IIIT D & Competitive Programming

• Admission in MTech Course based on performance of our Long Challenge Score

• Lab assignments

• Extra marks in subjects like

• Introduction to Programming

• Data Structures

• Design and Analysis of Algorithms

• A 2-credit elective course on Competitive programming.

Page 21: 7 1 Anup Kalbalia – Lead, CodeChef. 7 2 Role of Competitive Programming in Computer Science Education.

21

7 What all you can do?

• Use it for Lab assignments

• Extra marks for our contests

• Use Teaching Assistant – students

• An elective course on competitive programming?

• Create content and contribute towards the community

Page 22: 7 1 Anup Kalbalia – Lead, CodeChef. 7 2 Role of Competitive Programming in Computer Science Education.

22

7Demo

http://www.codechef.com/ITP2014/

Page 23: 7 1 Anup Kalbalia – Lead, CodeChef. 7 2 Role of Competitive Programming in Computer Science Education.

23

Thank You

Anup [email protected]

+91 9320060499

http://www.facebook.com/CodeChefhttp://www.twitter.com/codechef