ACM Programming Contests

Slides:



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

ACM Programming Team Bill Punch. ACM Programming Contest One of the premier programming competitions. Held every year since 1977 MSU was the winner that.
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
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.
Virginia Tech ACM ICPC Programming Team icpc.cs.vt.edu Virginia Tech Coach: Dr. Godmar Back.
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.
CS101- Lecture 11 CS101 Fall 2004 Course Introduction Professor Douglas Moody –Monday – 12:00-1:40 – – –Web Site: websupport1.citytech.cuny.edu.
IT Job Roles Task 20. Software Engineer Job Description Software engineers are responsible for creating and maintaining software of various different.
Mechanical Engineer. Mechanical Engineers use computers to help designing. There are more Mechanical Engineers then there are any other kind of engineers.
7 Anup Kalbalia – Lead, CodeChef.
Welcome to Computing. How is Computing assessed? AS Unit 1 Practical Theory of computation. Fundamentals of programming, data structures and algorithms.
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.
JavaScript Basics Course Introduction SoftUni Team Technical Trainers Software University
EMT1111 Logic and Problem Solving Dr. José M. Reyes Álamo Lecture 1.
Emergency Communications Explore engineering careers at
COMP 111 Programming Languages 1 First Day. Course COMP111 Dr. Abdul-Hameed Assawadi Office: Room AS15 – No. 2 Tel: Ext. ??
17/9/2015Provinci HKU ACM Programming Contests Website: Mailing list: Coordinator: Chan Ho Leung.
ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Luyi Mo Training Holder: Jonathan So Website: i.cs.hku.hk/~provinci.
EECE 310 Software Engineering Lecture 0: Course Orientation.
Honors Track: Competitive Programming & Problem Solving Effective Programming Kevin Verbeek.
CRACKING THE CODING INTERVIEW Nitish Upreti. Nitish
Course Program, Evaluation, Exams, Resources Telerik Software Academy Data structures and algorithms.
Introduction to Programming Lecture 1 – Overview
CSC 120 Introduction to Programming Dr Andreas Loizides c.cy des/CSC120.
NATIONAL SOCIETY OF BLACK ENGINEERS Try-Math-A-Lon Competition Overview Your Name Here Region XX AE PCI Chairperson/TMAL Coordinator.
Career Studies Test Review Answer Key. Explain in your own words what is a career? What does it mean to have a career? Why do we need to begin planning.
CSCE 1040 Computer Science 2 First Day. Course Dr. Ryan Garlick Office: Research Park F201 B –Inside the Computer Science department.
CSCI 51 Introduction to Computer Science Dr. Joshua Stough January 20, 2009.
Please sign in on the sign up sheet MTH Computer Science Club.
Course Information Sarah Diesburg Operating Systems COP 4610.
Scientific Calculator in GW-BASIC
Course Information Andy Wang Operating Systems COP 4610 / CGS 5765.
Course Introduction Andy Wang COP 4530 / CGS 5425 Fall 2003, Section 4.
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.
Think Quest Educational Program By Oracle Dorin Calin, 2008.
10 Aug 2010 ECE/BENG-492 SENIOR ADVANCED DESIGN PROJECT Meeting #7.
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.
Reactive and Output-Only HKOI Training Team 2006 Liu Chi Man (cx) 11 Feb 2006.
1 Statistics & R, TiP, 2011/12 Neural Networks  Technique for discrimination & regression problems  More mathematical theoretical foundation  Works.
Exam Preparation Algorithms Course: Sample Exam SoftUni Team Technical Trainers Software University
Design and Analysis of Algorithms (09 Credits / 5 hours per week) Sixth Semester: Computer Science & Engineering M.B.Chandak
Unit 2 ICT Job Role. ICT manager An ICT Manager has to plan, organise, control and coordinate with everyone, and they would help to design ICT- related.
1 CSC 281 Discrete Mathematics for Computer Science Dr.Yuan Tian Syllabus.
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.
Chapter 1 Software Development Dr. Bernard Chen Ph.D. University of Central Arkansas Fall 2008.
Programming for Beginners Course Introduction SoftUni Team Technical Trainers Software University
Tisigram 2016 Technical Meeting Tuesday, March 28 th, 2016.
Effective Team Management Guiding Your Team to Success.
Design and Analysis of Algorithms (09 Credits / 5 hours per week)
CSC 321: Data Structures Fall 2016
Course Information Mark Stanovich Principles of Operating Systems
CMPT 409 – Competitive Programming (Spring 2018)
Course Overview - Database Systems
Design and Analysis of Algorithms (07 Credits / 4 hours per week)
EECE 310 Software Engineering
Andy Wang Operating Systems COP 4610 / CGS 5765
GRUNTMASTER6000 A leading innovation for future programmers.
Welcome to Physics 1D03 !.
Cooperating Programming Contest Training with Education
Hour of Code Code.org/lightbot
Design and Analysis of Algorithms (04 Credits / 4 hours per week)
Presentation transcript:

ACM Programming Contests Coordinator: Dr. Hubert Chan Coach: Zhichao Zhao Website: i.cs.hku.hk/~provinci

Contact Information Coordinator (grant raiser) Dr. Hubert Chan hubert@cs.hku.hk Office at CB429 Coach (consultant) Zhichao Zhao zczhao@cs.hku.hk Office at CB LG101

What is ACM-ICPC ACM International Collegiate Programming Contest (a.k.a. ACM ICPC, ACM competition, ICPC) is the largest university-level programming contest in the world. http://icpc.baylor.edu 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

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 4 - 5 hours 8 - 13 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 World How can I change the world? Software engineering manage different components and people Algorithms Design good solutions Implementation know the language well, translate idea to programs

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

How to win in ACM-ICPC Be excellent in implementation and algorithms. For implementation, you need practice. For algorithms, you need to be creative and logical.

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)? 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)? 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)? Running time analysis

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

Example – Ancient Messages (WF11’)

Example – Ancient Messages 1 3 5 4 2 # of holes per shape: 2 4 6 5 1 3 # 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 (http://i.cs.hku.hk/~provinci/utilities.html) E-books Online Tutorials (recommend Stanford course homepage) Recommended Online Judges: Codeforces (www.codeforces.com) Peking University Online Judges(poj.org)

Tips for Self-learning Attend online contests CodeForces Regular Round Contests: http://www.codeforces.com/contests Topcoder Single Round Matches: http://community.topcoder.com/tc Monthly Contests in Online Judges e.g. ZOJ Monthly Contests: http://acm.zju.edu.cn Google Code Jam Facebook Hacker Cup ……

Tips for Self-learning Practices make perfect! Attend online contests frequently. Discuss in our Facebook Fans Page To join, contact Zhichao ZHAO

Summary Implementation Algorithms Persistence Running time analysis Design techniques Observation and creativity Common algorithms

For interested students. Please briefly introduce your self. I would like to discuss with you about training. Tell me what you need regarding training and I will try to help.

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? …

Thank you!