ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Luyi Mo Training Holder: Jonathan So Website: i.cs.hku.hk/~provinci.

Slides:



Advertisements
Similar presentations
Programming Puzzles and Competitions CIS 4900 / 5920 Spring 2009.
Advertisements

1 ACM Programming Contest Nov 3, Introduction ACM organized such contests from1977 Contest Regional Qualifying Final Purpose provides college.
2011 ACM International Collegiate Programming Contest and ANZAC League 2011 Dr Alex Potanin Wellington Site Director South Pacific:
Rising Star Team Manager Training October 17, 2013 Northwest ISD.
Jan Welcome to the Course of Advanced Algorithm Design (ACS-7101/3)
Virginia Tech ACM ICPC Programming Team icpc.cs.vt.edu Virginia Tech Coach: Dr. Godmar Back.
About the Course Lecture 0: Sep 2 AB C. Plan  Course Information and Arrangement  Course Requirement  Topics and objectives of this course.
Free Training Courses for.NET Software Engineers Svetlin Nakov Telerik Corporation
CMSC 132: Object-Oriented Programming II
CMSC 132: Object-Oriented Programming II Nelson Padua-Perez William Pugh Department of Computer Science University of Maryland, College Park.
CS 410 Applied Algorithms Applied Algorithms Lecture #1 Introduction, class information, first problems.
COMP171 Data Structures and Algorithm Huamin Qu Lecture 1 (Sept. 1, 2005)
CS 206 Introduction to Computer Science II 04 / 29 / 2009 Instructor: Michael Eckmann.
IT Job Roles Task 20. Software Engineer Job Description Software engineers are responsible for creating and maintaining software of various different.
ACM Programming Contests
How to win in ACM/ICPC? Four levels of programmers 1. Implementation ◦ know the language well, translate idea to programs 2. Algorithms ◦
ACM Programming Competition Prof. Tony White.
Creating an Online Professional Presence Using Social Media.
JavaScript Basics Course Introduction SoftUni Team Technical Trainers Software University
About the Course Lecture 0: Sep 10 AB C. Plan  Course Information and Arrangement  Course Requirement  Topics and objectives of this course.
FEW Scholarship Training. Federally Employed Women (FEW) National Scholarship Program Good Evening: My name is Sheryl Coleman and I am the FEW National.
COMP 111 Programming Languages 1 First Day. Course COMP111 Dr. Abdul-Hameed Assawadi Office: Room AS15 – No. 2 Tel: Ext. ??
Data Structures and Programming.  Today:  Administrivia  Introduction to 225, Stacks  Course website: 
17/9/2015Provinci HKU ACM Programming Contests Website: Mailing list: Coordinator: Chan Ho Leung.
EECE 310 Software Engineering Lecture 0: Course Orientation.
PHP Basics Course Introduction SoftUni Team Technical Trainers Software University
Honors Track: Competitive Programming & Problem Solving Effective Programming Kevin Verbeek.
2011 ACM International Collegiate Programming Contest and ANZAC League Dr Alex Potanin Wellington Site Director South Pacific:
CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish
Course Program, Evaluation, Exams, Resources Telerik Software Academy Data structures and algorithms.
Advanced JavaScript Course Introduction SoftUni Team Technical Trainers Software University
NATIONAL SOCIETY OF BLACK ENGINEERS Try-Math-A-Lon Competition Overview Your Name Here Region XX AE PCI Chairperson/TMAL Coordinator.
CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009.
COMP2012 Object-Oriented Programming and Data Structures Fall 2015.
Please sign in on the sign up sheet MTH Computer Science Club.
Course Information Sarah Diesburg Operating Systems COP 4610.
CSSE 250 Dr. Yingwu Zhu Office: ENGR 530 Phone: Emai:
ACM programming contest Introduction + Recursion.
ACM Programming Competition Prof. Tony White.
ACM programming contest Introduction. ACM International Collegiate Programming Contest (a.k.a. ACM ICPC, ACM competition, ICPC) is the largest university-level.
Most of contents are provided by the website Introduction TJTSD66: Advanced Topics in Social Media Dr.
Provinci summer training 2010 June 17: Recursion and recursive decent parser June 24: Greedy algorithms and stable marriage July 1: Holiday July 8: Math.
Provinci summer training 2010 June 17: Recursion and recursive decent parser June 24: Greedy algorithms and stable marriage July 1: Holiday July 8: Math.
Welcoming Lecture Meeting/Discussion/Party By David/Denon.
Web Fundamentals (HTML and CSS)
Design and Analysis of Algorithms (09 Credits / 5 hours per week) Sixth Semester: Computer Science & Engineering M.B.Chandak
Introduction to HKOI 13 January Benefits of Joining HKOI  Improve your problem solving skills  Prizes (you already have some)  Chances to represent.
High-Quality Code: Course Introduction Course Introduction SoftUni Team Technical Trainers Software University
Object-Oriented Programming Course Introduction Svetlin Nakov Technical Trainer Software University
Introduction to TopCoder Programming Puzzles and Competitions CIS 4900 / 5920 Spring 2009.
IT Job Roles. ICT Technician An ICT technician is a person who works in an IT based environment and their job is to fix any computer that is not functioning.
Programming for Beginners Course Introduction SoftUni Team Technical Trainers Software University
PHP Basics Course Introduction Svetlin Nakov Technical Trainer Software University
Finding a trainee position – advice and tips. If you have trouble finding a trainee position Make sure your CV stands out for the right reasons Your CV.
Design and Analysis of Algorithms (09 Credits / 5 hours per week)
COMP9024: Data Structures and Algorithms
Dr. Fernando Paniagua Associate Professor CSIT Department
2016 West Virginia Bridge Design & Build Contest
* 07/16/96 IOI / ACMPC Training 2005 *.
Course Overview, Trainers, Evaluation
JavaScript Frameworks & AngularJS
CMPT 409 – Competitive Programming (Spring 2018)
Staff Scheduling at USPS Mail Processing & Distribution Centers
Design and Analysis of Algorithms (07 Credits / 4 hours per week)
Suzanne Robotics Club Coaches Training.
EECE 310 Software Engineering
GRUNTMASTER6000 A leading innovation for future programmers.
Suzanne Robotics Club Coaches Training.
Cooperating Programming Contest Training with Education
Design and Analysis of Algorithms (04 Credits / 4 hours per week)
Presentation transcript:

ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Luyi Mo Training Holder: Jonathan So Website: i.cs.hku.hk/~provinci

Contact Information Coordinator (grant raiser) Dr. Hubert Chan Office at CB429 Coach (consultant) Luyi Mo Office at CB417 Training Holder (great volunteer!) Jonathan So (Soso)

ACM International Collegiate Programming Contest (a.k.a. ACM ICPC, ACM competition, ICPC) is the largest university-level programming contest in the world. Statistics in 2012 ◦ # of students: 29,479 ◦ # of universities: 2,322 ◦ # of countries: 91 ◦ # of continents: 6 What is ACM-ICPC

ACM-ICPC is comprised of several levels: ◦ Hong Kong Local Contest ◦ Asia Regional Contest Earn ticket to World Finals ◦ World Finals  100+ teams What is ACM-ICPC

Why ACM-ICPC You can learn… ◦ Many useful algorithms, mathematical insights ◦ How to code/debug quickly and accurately ◦ How to work in a team Then you can rock in classes, job interviews, etc. It’s also fun!

Contest Rule Each team: 3 students One computer per team hours problems to solve ◦ Presented in a real-life scenario ◦ Need to discern the underlying essential problem and develop algorithms ◦ Input and output requirement ◦ Time limit Judge by some test cases (unknown to us) ◦ Pass all test cases = solve the question ◦ If you fail, you can resubmit Winner is the team that solves the most problems in the least time!

The Contest while ( ! isTimeout() ) { read(); think(); program(); //debug(); submit(); }

One Balloon as a gift for solving a problem. Each problem is associated with a color.

Tips to win in acm-icpc

Four levels of programmer 1. Implementation ◦ know the language well, translate idea to programs 2. Algorithms ◦ Design good solutions 3. Software engineering ◦ manage different components and people 4. World ◦ How can I change the world?

How to win in ACM-ICPC Winning ACM-ICPC only requires you to be excellent in implementation and algorithms!

How to win in ACM-ICPC Be excellent in implementation and algorithms. Important Warning! ◦ ACM cannot test your ability beyond algorithms ◦ To change the world requires many more things. ◦ See the bigger picture and keep learning. ◦ Implementation and algorithms are necessary, but they are not the end. :)

What kind of implementation skills are needed? Variables, loops, functions Exhaustion ◦ Try all permutations ◦ Try all subsets ◦ Try all paths, etc Classes, operator overloading, STL Persistence (don't be afraid of long problems and programs)

How to improve implementation? Write more programs Read more books Don't afraid of new tools ◦ STL Exercises. Codeforces: 48A, 242A, 75B, 81B, 82B, 9C POJ: 1000, 1001, 1002, 1004, 1005, 1006, 1007, 1008, 1010, 1012, 1016, 1019

POJ 1000 – A + B = ?

Algorithmic skills (1/4)? 1. Standard algorithm design principles ◦ Divide-and-conquer ◦ Dynamic programming  Save up the partial results  The optimal solution can be found by backtracking ◦ Greedy  Sometimes the seemingly best choice is the only best choice These are principles that we don't need to memorize

Algorithmic skills (2/4)? 2. Common algorithms ◦ Algorithms that have been studied before. ◦ Memorize the algorithms (or at least their usage) ◦ Sorting, graphs, network flow, coordinate geometry, math Be hardworking, read more books

Algorithmic skills (3/4)? 3. Running time analysis

Algorithmic skills (4/4)? 4. Observation and creativity ◦ Find some properties about the problem

Example – Ancient Messages (WF11’)

Example – Ancient Messages # of holes per shape: # of adjacent white regions per shape:

Example – Ancient Messages Solution Framework: ◦ Step 1 - Figure our all black regions ◦ Step 2 - For each black region, count number of adjacent white regions Flood Fill Algorithm to find regions Recursions to implement

Tips for Self-learning Be self-motivated, passionate, and persistent. Try to do an many exercises as possible. Form a team or a study group ASAP so that you can learn with others. Make full use of online materials ( ◦ E-books ◦ Online Tutorials (recommend Stanford course homepage) ◦ Recommended Online Judges:  Codeforces (  Peking University Online Judges(poj.org)poj.org

Tips for Self-learning Attend online contests ◦ CodeForces Regular Round Contests: ◦ Topcoder Single Round Matches: ◦ Monthly Contests in Online Judges  e.g. ZOJ Monthly Contests: ◦ Google Code Jam ◦ Facebook Hacker Cup ◦ ……

Tips for Self-learning Practices make perfect! Test your ability in an individual contest around reading week! Discuss in our Facebook Fans Page ◦ To join, contact Luyi Mo or Jonathan So

Tentative Schedule Topics Feb - April Basic topics: recursion, breadth first search, depth first search, greedy, dynamic programming, graphs MayTeam formation test for local contest June / JulyACM Hong Kong Local Contest July - August Online Contests (e.g. Codeforces regular round Div.1 and Div.2) Sep - Oct Advanced topics: Contest like problems Team formation test for regional contest Oct / NovACM Asia Regional Contest MarchACM World Final Contest (by invitation)

Self-introduction Name Come from … Major in … Year … student Beginner? Need teammates? Any previous programming experience? Senior member? Anything want to share? Any help you can provide? …

Summary Implementation ◦ Persistence Algorithms ◦ Running time analysis ◦ Design techniques ◦ Observation and creativity ◦ Common algorithms Prepare for internal and local contest