香港電腦奧林匹克

競賽課程

Miyagi Academy致力為香港中學生,啟發思考潛能,裝備他們參加香港電腦奧林匹克(Hong Kong Olympiad in Informatics)及國際電腦奧林匹克(International Olympiad in Informatics)競賽

什麼是電腦奧林匹克競賽?

相信很多人聽過「奧數」。卻很少人會聽說過「電腦奧數」。

國際電腦奧林匹克競賽(International Olympiad of Informatics,簡稱IOI)是一年一度的中學生電腦編程比賽,著重解題的技巧及編寫電腦程式的能力,針對的題目都是一些必須掌握駕馭電腦技巧才能解決的複雜數學問題。香港區競賽由香港電腦教育學會、香港政府教育局,香港中文大學工程學院計算機科學與工程學系舉辦。

陳爔先生和香港電腦奧林匹克統籌委員會

參加體育競賽,領略比賽中的樂趣

人生就是一場競賽。很多家長讓子女從小參加體育競賽,望小孩可從比賽的競爭中領略到書本中無法吸收到的體會。

這些競賽,往往以體能定高低,但亦有以才智分勝負的,如「奧數」等。但你可知道,在這個電腦科技改變世界的時代,真正的數學難題,都是需要人類用才智及想像力,編寫出獨特的算法,配以嫻熟的Coding技巧,才能迎刃而解。這種要求「運動員」駕馭電腦才能解决問題的奧林匹克國際比賽就是International Olympiad of Informatics (簡稱IOI)的重心。

每年每個國家(包括香港)都會選拔出4位中學生參賽。本課程旨在通過解決這類型難題的訓練喚起學生解決問題的興趣與熱誠,借參加這國際比賽的香港選拔賽培養一生受用的技能,並讓他們體會一下為比賽衝刺爭勝的滋味。

培訓會從三方面著墨:

  • English Comprehension
  • Discrete Mathematics
  • High Performance Coding Skills

導師

1996年國際奧林匹克電腦香港代表隊隊員,會考9優狀元,後就讀美國長春籐名校康乃爾大學,並以全級第一名畢業。畢業後於紐約華爾街之所羅門兄弟開始投行事業,繼而進入對沖基金行業,曾在數大基金擔任要職,更於2013年創辦自己的對沖基金。

陳爔先生於2017年底退休,致力教育下一代,提拔有志青年。雖然他於17年華爾街生涯沒有直接用上coding skills,但他覺得competitive coding的經驗對他學業及事業都有極正面的影響,所以他想從competitive coding出發,啓發學生的潛能。

課程大綱

每一節課基本均會圍繞一組以往比賽曾出現之命題,借題發揮,點出參賽致勝需具備的技巧。務求以臨場實戰為練習中心,避免紙上談兵之高深理論。

Students will be taught how to get the ideal coding environment set up for competition and practice. They will also be introduced to tips and good habits conducive for coding competition performance. Through solving Problem 1, students will learn about benchmarking and certain sorting techniques.
Through optimizing the solution for Problem 1, students will be taught binary search and an implementation of dictionary with C++, and gain insight into how algorithm affects performance. The class will also review previous assignment.
Through solving Problem 2, students will learn techniques in surveying a problem in order to generate crucial insight. The instructor will demonstrate how to implement circular lists as well as how to perform depth-first search with recursion. There will also be a brief discussion of breadth-first search and a review of previous assignments.
Through solving Problem 3, students will practice reading comprehension of complex ideas. They will also be introduced to basic combinatorics that are useful for problem solving. The target problem will demonstrate how basic algebra can be applied to greatly optimize a solution. A discussion about Big-O notation will help them gain intuition about time efficiency of a solution. There will also be a review of previous assignments.
Through solving Problem 4, students will be introduced to advanced logic concepts. They will also further exercise reading comprehension. The problem will demonstrate the power of caching and how the right choice of data structure affects performance. There will also be a review of previous assignments.
Through solving Problem 5, students will learn how to implement depth-first search with iteration instead of recursion. Problem 5 will also lead to further practice of reading comprehension exercises. Students will also learn the basics of set operations (check uniques/duplicates, union, etc.) and how to implement them in C++. There will also be a review of previous assignments.
Through solving Problem 6, students will learn how to deal with very difficult “black hole problems” that can suck up too much time. The problem will demonstrate how to take advantage of a narrow “range” to optimize a solution. Students will learn how to engage a problem in order to grasp key characteristics that can simplify a solution. They will also learn how to spot redundant computations that will lead to a reduction of looping complexity by orders of magnitude (review of Big-O notation). There will also be a review of previous assignments.
Through solving Problem 7, students will learn how to think about border cases and how to find shortcut to a problem through sorting. Students will also learn how to implement complex conditional loops for optimal performance. Students will take home 3 fundamental drills to fortify their skills for the upcoming competition event. There will also be a review of previous assignments.

課程設計

十六堂課,每週一堂課,每堂約一小時。課外之餘,學生亦需在家練習及做功課。要跟上進度,每週最少要在家練習3小時。

硬件需要

一台Macintosh,PC或iPad均可。用於連接Zoom和replit workshop.

上課地點

遙距

學費

[有待更新]
(第二課前可退回全部學費)

Miyagi Academy 特點

星級導師

授課導師是會考9優狀元,曾於96年代表香港參加 IOI 。大學升讀於美國康乃爾大學,并以全級第一名畢業,學歷無兩,香港難得一見之明師。

借比賽為驅動力

利用比賽的驅動力喚起學生學習的熱誠和拼勁,加上學以致用的機會,比一般興趣班更能事半功倍。

親身體驗運動精神

所有透過參與體育競賽能領會到的認知,都能從這個參與國際比賽的訓練經歷到。

優劣立見

本課程不止於啟發學生對Coding的興趣,而更明確定立參賽入圍爭勝的目標,成敗優劣,俱可立見。

借競賽啓發潛能

學習面對成敗,將競賽轉化為動力,發掘思維潜能,訓練未來社會中極為重要的一項「體能」。

Close Menu