nus-cs3281 / 2019

0 stars 1 forks source link

Why you should learn Competitive Programming #25

Closed sijie123 closed 5 years ago

sijie123 commented 5 years ago
sijie123 commented 5 years ago

PUNCH: Let's start off with a small challenge. You're given 500 thousand numbers, each up to 10 thousand. The task is simple: output the sum as quickly as you can. What will you do? The task is so simple a CS1010 student can solve it with their eyes closed. But did you notice the catch? 500K multiplied by 10K gives 5 billion.

WIIFY: What if I told you that learning Competitive Programming helps you become a better Software Engineer? Through this talk, you will learn lessons from Competitive Programming that you can apply to make better and more reliable products.

Agenda:

  1. How do we (developers) do better testing for our products?
  2. How can we engineer more efficient solutions?
  3. How can do better debugging?

Key Points:

  1. Competitive Programming helps one develop skills in edge case testing
  2. Competitive Programming trains one to think of efficient-enough solutions that are necessary and not over-engineering.
  3. Competitive Programming does not use debuggers, so programmers learn to debug by focusing on important variables and printing/asserting as necessary.

Impact: Know: What areas of Software Engineering competitive programming trains one in Believe: Competitive programming helps one become a better software engineer Do: Engage with / participate in competitive programming

Lightning Talks A - Competitive Programming.pdf