IrlCPC - AIPO How You Can Contribute How We Created The Problem Set - - PowerPoint PPT Presentation

irlcpc aipo
SMART_READER_LITE
LIVE PREVIEW

IrlCPC - AIPO How You Can Contribute How We Created The Problem Set - - PowerPoint PPT Presentation

Programming Competitions IrlCPC - AIPO How You Can Contribute How We Created The Problem Set Milan De Cauwer (Confirm@UCC) Bastien Pietropaoli (Insight@UCC) UCC-ACM, IrlCPC, AIPO What are they? UCC-ACM student What is it? chapter IrlCPC -


slide-1
SLIDE 1

Programming Competitions

IrlCPC - AIPO

How You Can Contribute How We Created The Problem Set

Milan De Cauwer (Confirm@UCC) Bastien Pietropaoli (Insight@UCC)

slide-2
SLIDE 2

UCC-ACM, IrlCPC, AIPO What are they?

slide-3
SLIDE 3

What is it?

IrlCPC - Irish Collegiate Programming Contest

Created: 2009 Audience: College Students By: UCC-ACM Student Chapter (Many should be thanked) From about 20 competitors in 2010 to ~150 in 2019.

AIPO - All-Ireland Programming Olympiad

Created: ?? Audience: Secondary level By: DCU before Passed upon UCC (Sabin, Andrea, Federico) last year Last year: 17 competitors UCC-ACM student chapter Competitors

slide-4
SLIDE 4

Timeline

2009 2020

UCC ACM-Student chapter

2019 AIPO (17 comp.) 2018 2017

...

IrlCPC: 20 comp. 78 comp. 112 comp. ~150 comp. 2016 ~50 comp. 2014 2015 20? 170?

slide-5
SLIDE 5

Who were the sponsors? (2019)

slide-6
SLIDE 6

How does it work?

We create a mostly algorithmic problem set with test cases. Teams/students submit their code to a server. It gets automatically evaluated and they score points. The highest scoring team wins nice prizes ($$$).

AIPO IrlCPC

Problem set

Submission Server Submission Server

AIPO Team UCC-ACM Student Chapter

Writing Team

slide-7
SLIDE 7

How does it work? (Question Writer)

1

Find inspiration.

Wikipedia binges. Reference books (Intro to algorithms et al.). Exercice books. Interview questions.

2

Nail the question.

Target algorithm? Give it your own spin!

3

Create test cases.

Try to break that code. Does it scale? Does it have practical issues?

4

Tune the question.

Test it. Tune the cases. Fluff it up! Embrace the rage.

slide-8
SLIDE 8

How does it work? (Competitor)

1

Read the problems.

Read the ENTIRE problem set before starting! What’s easy? What’s hard?

2

Work as a team.

Share ideas. Split work. Who’s coding?

3

Find the algorithms.

Try to break that code. Does it scale? Does it have practical issues?

4

Submit code.

Test it. Fail. Retry!

slide-9
SLIDE 9

How does it work? (Organiser)

1

UCC-ACM student chapter.

Annual General Meeting (TBA). Take on a position. Monthly meetings.

2

Do your f***ing job!

Catering, room booking, networking with sponsors, branding and visual design, accounting, PR and social media, ... Be active!

3

Enjoy the day.

No loitering! Be active. Assist competitors. Get a nice t-shirt!

slide-10
SLIDE 10

2019 Scoreboards

slide-11
SLIDE 11

2019 scoreboard - IrlCPC

slide-12
SLIDE 12

2019 scoreboard - IrlCPC

UCC

slide-13
SLIDE 13

2019 scoreboard - AIPO

Probably not

slide-14
SLIDE 14

2019 scoreboard - AIPO

MPT Probably not

slide-15
SLIDE 15

How do we create the problem set?

slide-16
SLIDE 16

Ingredients for a good problem set

A lot of work. A cup of patience. A pinch of fluff. A zest of pedantism. Sweat, tears, and potentially blood. Booze and drugs (optional).

Us, the week before the event

slide-17
SLIDE 17

More seriously

What’s needed:

  • Questions ranging from “dead easy” to “wtf is this?!”.
  • Interesting/original problems to solve.
  • Cunning corner cases.
  • Scalability issues.

All of this creates a smooth distribution of scores.

Us, writing sneaky test cases

slide-18
SLIDE 18

A dead-easy question

If you read it, it’s actually easy. A simple string manipulation. Original format (everyone hated it tbh). Everyone solved it in AIPO.

slide-19
SLIDE 19

A sneaky scalability-issue question

Not that hard if you think carefully. Not easy either. Symmetries can be exploited. 3^50 > 2^64 (someone reimplemented big

numbers in C++...)

slide-20
SLIDE 20

A flufgy question

Medium question, requires careful reading! A simple 1D automaton. Extra fluffy question. Most questions we received were about this particular question. (I’m really proud of this one.)

slide-21
SLIDE 21

A “wtf is this” question

Super tough question. Was first in the problem set

(random order for the questions)

Doesn’t look that hard. “Unusual” solution on our side (Ray tracing + Monte Carlo

integration muahahaha)

slide-22
SLIDE 22

How can you contribute?

Submit your problem ideas to Milan and me. Write problems with us, join the writing team. Review problems with us. Solve our problems:

  • Use various languages (Python, C, C++, Java, etc.).
  • Confirm our solutions are correct (even with an invalid solution for the day!).
  • Find potential issues.
  • Find unpredicted/unforeseen corner cases.
  • Evaluate the difficulty of the questions.

All of this is useful!

milan.decauwer@ucc.ie bastien.pietropaoli@ucc.ie

slide-23
SLIDE 23

How we’d like to do it this year

Regular meetings starting in November:

  • Every week? Every other week?
  • Prevents having to panic at the end

Having 10-12 questions as last year (1 is already written!).

  • 1-2 dead-easy one (so everyone can score something)
  • 1-2 easy ones (to build up confidence)
  • 2-4 medium ones (so there’s some competition among the medium teams)
  • 2-3 hard questions (three was probably overkill but some people are really good)
  • 1 new type of question (to make sure they stay busy, it’s already written)

Have a minimum of 20 test cases per question (instead of 10 last year)

slide-24
SLIDE 24

We need you!