Open Collaboration

Open Collaboration公眾協作

https://g0v.tw/
https://www.mozilla.org/zh-TW/

Indie Production獨立製作

https://zh.wikipedia.org/wiki/獨立製作

Open Source開源

https://github.com/public-apis/public-apis
https://github.com/kamranahmedse/developer-roadmap
https://github.com/danistefanovic/build-your-own-x
https://github.com/sindresorhus/awesome

Crowdsourcing眾包

Maker

自造者

https://www.youtube.com/user/kobebeefg
https://taipei.makerfaire.com/

Hackathon

黑客松

大家心血來潮就會舉辦黑客松。大家聚在一起,腦力激盪發明點子,利用資訊科技解決主辦單位現實遭遇的問題。參賽者幾乎不眠不休,在時間限制之內,通常是半天到兩天,迅速產出一份簡報、一份試作品,請資訊界網紅協助評審。

這類競賽的功能是社會服務、娛樂消遣。

Coding Challenge

刷題

起初只是線上的程式設計訓練、益智訓練。

大公司湧入大量面試者,每年高達數萬人。為了節省人力物力,大公司以刷題初步篩選面試者。例如Google。

接著有人成立刷題網站,專門針對面試者。例如LeetCode。

接著有人成立刷題補習班,專門針對LeetCode使用者。

接著有人成立刷題專欄,專門針對想要花錢補習的人。

如此不斷接連下去,於是刷題造成空前轟動。人類真會玩。

The 10 most popular coding challenge websites for 2020
綜合介紹。

fucking-algorithmlabuladong的算法小抄
手把手撕LeetCode题目,扒各种算法套路的裤子。

AtCoderアルゴリズム実技検定
日本的證照考試。

PAT计算机程序设计能力考试
中國的證照考試。

CPE大學程式能力檢定
台灣某些教授聯手搞出來的證照考試。你懂的。

Data Science Competition

Kaggle

https://zh.wikipedia.org/wiki/Kaggle

https://signate.jp/
https://towardsdatascience.com/2995e9dad93c

Competitive Programming

Competitive Programming

The International Collegiate Programming Contest (ICPC)」是針對全世界大專院校學生的比賽,考驗選手臨場的演算法設計能力、程式編寫能力。

ICPC帶動了演算法程式設計的風氣。世界上許多大專院校的資訊系所,仿照ICPC比賽模式,紛紛自行開發出即時線上比賽系統,能夠自動批改、評分、計時、統計。學生不必齊聚一堂,而是透過網路,互相切磋程式設計技巧。比賽結束之後,將比賽題目編列題庫,開放自動批改程式的功能,供學生賽後練習檢討。這套系統大家稱呼為「Online Judge」。

從事這項活動,不僅可以熟悉程式設計、學習演算法、鍛鍊智力,還可以培養自主學習與獨立解題的能力──此即程式設計師的核心價值。因此這項活動逐漸獲得大家重視。產業界舉行演算法競賽,發掘優異人才;學術界開設課程,促進演算法發展。這項活動大家稱呼為「Competitive Programming」。

International Collegiate Programming Contest

ICPC是資訊界規模最大、歷史最悠久的競賽。從1977年開始,每年在世界各地舉辦初賽,選拔表現優秀的隊伍,角逐世界總決賽。最近幾屆競賽有上千所學校、數萬名選手參加。

ICPC是一個氣氛活潑的競賽。整個賽事包含許多活動,主軸當然是現場上機競賽,但是另外還有娛樂表演、晚餐宴會、城市遊覽等等行程。整個賽事過程為期兩至三天,有吃有玩,遊樂的成分比競賽的成分還多,對於參賽選手來說是相當新鮮的體驗。

ICPC的競賽方式是三人一隊,並且需要一位同校教授作為領隊教練。教練的主要作用,是負責向大會接洽賽事行程,替選手打點賽事期間的生活細節,讓選手無後顧之憂,得以傾盡全力比賽。教練就如同經紀人的角色。

現場上機競賽,所有隊伍聚集於會場,一支隊伍分配一張桌子、三張椅子、一臺電腦、一份英文題本。主持人宣布比賽開始之後,所有隊伍同時開始作答,選手必須迅速閱讀題本當中的問題,然後編寫程式解決問題,將程式碼上傳給裁判批改。

所有作答皆是即時批改,幾分鐘內回覆結果,結果只有對與錯,答錯還可以再答。成績的計算方式,是以答對題數作為排名依據;但是作答的錯誤次數、上傳答案的時刻,統統列入扣分,作為次要的排名依據。因此選手要盡力答出問題,也要盡快答出問題,還要避免答錯問題又一錯再錯。實力在伯仲之間的隊伍,勝負的差距往往取決於審題與答題的效率。動作慢人一步,或者大意發生失誤,就很可能名落千丈。

選手有五小時時間,要解出十道左右的演算法問題,期間可以喝水、外出上廁所、享用大會提供的奢華點心、在題本上塗鴉、把題本拆了摺紙鶴、睡覺、談情說愛、玩電腦遊戲;唯一的限制,就是不得與隊伍之外的人交流。

比賽規則看似輕佻,但是比賽過程其實非常緊迫。五小時時間解十道左右的問題,電腦卻只有一臺。即便是技藝高超的選手,也幾乎無暇休息,必須分工合作爭取時間。通常一人隨時坐在電腦前作答,充分運用電腦,發揮時效;另外兩人則在旁解讀其餘題目,在腦中羅織解法,伺機輪換上陣。五小時的比賽過程,選手克服環境限制、調適心理壓力、發揮大腦潛能,也可以說是一場精神的對抗賽。

競賽過程還有許多有趣的地方,留給參賽選手們自行體驗吧!

ICPC官方消息:ICPCNews
ICPC亞洲區指導員:西杰阿雄的博客
日本非官方消息:ACM-ICPC Japanese Alumni Group
中國非官方消息:ACM/ICPC信息站
選手感想:ACM-ICPC Asia Jakarta Regional Contest 2017 沿途紀實與心得
教練感想:2016 ACM-ICPC World Finals — MZ’s log
題目講評:2019 ICPC TOPC 簡易講評
精選題解:關於競程日記 2019
歷年題庫:ICPC Live Archive

根據規定,ICPC區域賽必須要有全國性(或者兩省以上)的預賽。台灣歷年都是以NCPC作為預賽,然而實際上NCPC根本就不是預賽。會有這種現象,主要原因是台灣的參賽隊伍十分稀少,無從篩選隊伍。直至2015年,台灣才開始正式舉辦網路預賽,跟隨亞洲各國的比賽模式,時序如下:

一、區域預賽(網路賽):ICPC台灣區負責人組織比賽,大專院校教授熱情協助。國內外選手透過網路進行較量。比賽結束之後,根據當年承辦人員的戰鬥力,選出40至80隊參加現場賽。由於國外隊伍出國參加現場賽,需要時間打點準備,因此網路賽往往提早舉辦,3至6個月前就會舉辦。

二、全國賽:與ICPC無關。台灣教育部舉辦的NCPC,全國學生一較高下。成績優秀的隊伍,教育部全額補助參加ICPC。

三、區域正式賽(現場賽):請參考前面介紹的內容,國內外選手齊聚一堂進行較量。比賽結束之後,主辦單位依照複雜的公式,評量各個區域賽的戰鬥力,至少選出1隊,參加世界總決賽。

四、世界總決賽:從全世界篩選一百多隊參加總決賽,從五大洲輪流選擇一間學校作為比賽地點。台灣大專院校以往實力較差,總是被國外學校痛宰,鮮少晉級總決賽。直到近十年才有改善跡象,與國外學校互有進退(一群無名英雄前仆後繼苦心經營數年的成果);同時也積極的參與其他國家的區域賽,爭取世界總決賽門票。目前台灣僅台灣大學、交通大學有能力進入總決賽。

演算法競賽:台灣

ICPC Asia Taipei Regional Programming Contest 20212020
對象:大專院校學生(學士班一年級至碩士班一年級)
主辦:ICPC台灣區負責人
備註:ICPC台灣區正式賽事、每年重新決定比賽城市
時間:11~12月

ICPC Asia Taiwan Online Programming Contest 202120202019
對象:大專院校學生
主辦:ICPC台灣區負責人
備註:ICPC台灣區衍生賽事
時間:9~10月

全國大專電腦軟體設計競賽NCPC 202120202019
對象:台灣大專院校學生
主辦:由臺灣師範大學與中山大學輪流辦理
時間:9~10月

全國私立大專院校程式競賽NCPU 202120202019
對象:台灣私立大專院校學生
主辦:各私立大學輪流辦理
備註:ICPC台灣區衍生賽事
時間:6月

全國科技大專校院程式競賽NCTU 202120202019
對象:台灣科技大專院校學生
主辦:虎尾科技大學
備註:ICPC台灣區衍生賽事
時間:6月

網際網路程式設計全國大賽NPSC
對象:台灣高中學生、國中學生
主辦:台灣大學
時期:11~12月

HPE CodeWar: Taiwan
對象:高中高職五專(一到三年級)學生
時期:11~12月

演算法競賽

Google Code Jam
對象:社會大眾
時期:4月~7月

Facebook Hacker Cup
對象:社會大眾
時期:每年一次,時間不定

TopCoder Open
對象:社會大眾
時期:每年一次,時間不定

International Collegiate Programming Contest
對象:大專院校學生(學士班一年級至碩士班一年級)
時間:台灣站11~12月、亞洲各站是8~12月、世界總決賽是隔年5~7月

ACM SIGMOD Programming Contest
對象:大專院校學生
時期:2~4月

HPE CodeWars
對象:高中高職五專(一到三年級)學生
時期:每年一次,時間不定

演算法例賽

Google Kick Start
谷歌的演算法例賽。3月到11月每月一次。

Codeforces
俄國的演算法例賽。

TopCoder簡介
美國的程式競賽網站,其中包含了演算法例賽。

AtCoder
日本的演算法例賽。

CodeChef
印度的演算法例賽。

ITSA程式能力線上自我評量
台灣的演算法例賽。針對台灣大專院校學生。台灣教育部提供的例行賽事。

臺灣國際資訊奧林匹亞競賽線上練習賽
台灣的演算法例賽。針對台灣高中學生。台灣教育部提供的例行賽事。

演算法題庫

Kattis
瑞典Kattis公司建立的Online Judge。

Sphere Online Judge
波蘭Sphere實驗室建立的Online Judge。

Timus Online Judge
俄國Ural大學的Online Judge。

URI Online Judge
巴西do Alto Uruguai e das Missões大學的Online Judge。

DMOJ: Modern Online Judge
加拿大的開源Online Judge。

UVa Online Judge
西班牙Valladolid大學的Online Judge。最古老的Online Judge。

高中生程式解題系統 ZeroJudge
台灣高雄師大附中建立的Online Judge。

Virtual Judge
可以連線到每個Online Judge。

UVa Online Judge工具網站

uHunt
查詢UVa Online Judge的解題進度、世界排名。
整理了一套題目清單,適合初學者循序練習。輸入使用者名稱就會出現。

uDebug
生成測試資料,以便測試程式。

Lucky貓的ACM園地Ruby兔的ACM園地Unfortunate狗的ACM園地uniDog的ACM園地
UVa Online Judge題目中譯。
早期重要工作,請大家體恤辛勞!

Problem Classification on Spanish Archive
題目分類。

演算法競賽營隊

交大競技程式訓練冬令營、夏令營
熱心老師和學生自動自發努力辦理的營隊。免費且公開教材。

清大暑期程式競賽集訓營
熱心學生自動自發努力辦理的營隊。收費且不公開教材。

臺灣大學程式解題競賽培訓營
熱心學生自動自發努力辦理的營隊。收費且不公開教材還拉企業贊助。你懂的。

Moscow Workshops
熱心老師自動自發努力辦理的營隊。經常跟其他國家合辦活動。

演算法競賽講義

板橋高中資訊社演算法講義
熱心學生努力彙整的教材。

算法竞赛课件分享
熱心網民努力蒐集的教材。

GeeksforGeeks: How to prepare for ACM–ICPC?
熱心網民努力彙整的教材。

OI Wiki
熱心網民努力彙整的教材。

E-Maxx Algorithms in English
熱心網民努力彙整的教材。

USACO Guide
熱心網民努力彙整的題目和教材。

Competitive Programmer's Handbook
芬蘭IOI國家隊訓練教材

OI公共圖書館
中國IOI國家隊技術報告

演算法競賽課程

交通大學PSPT課程講義

成功大學ACM課程講義

Stanford CS 97SI: Introduction to Competitive Programming Contests

UIUC CS491: Intro to Competitive Programming

CMU CS 15-295: Competition Programming and Problem Solving

UT-Austin CS104c: Competitive Programming

演算法競賽書籍

數學思考
九章出版社

How to Solve It
George Pólya
譯本《怎樣解題》

Competitive Programming
Steven Halim, Felix Halim
新加坡演算法競賽名著

Guide to Competitive Programming:
Learning and Improving Algorithms Through Contests
Antti Laaksonen
芬蘭演算法競賽名著

프로그래밍 대회에서 배우는 알고리즘 문제 해결 전략
구종만
韓國演算法競賽名著
譯本《算法问题实战策略》

プログラミングコンテストチャレンジブック
秋葉拓哉、岩田陽一、北川宜稔
日本演算法競賽名著
譯本《培養與鍛鍊程式設計的邏輯腦:世界級程式設計大賽的知識、心得與解題分享》

算法竞赛入门经典
刘汝佳
中國演算法競賽名著
譯本《打下好基礎:程式設計與演算法競賽入門經典》

算法竞赛入门经典——训练指南
刘汝佳、陈锋
中國演算法競賽名著
譯本《提升程式設計的解題思考力─國際演算法程式設計競賽訓練指南》

演算法競賽書籍:我沒讀過的新書

算法竞赛进阶指南
李煜东
中國演算法競賽名著

深入浅出程序设计竞赛
洛谷学术组、汪楚奇
中國演算法競賽名著

演算法競賽選手

tmt解題筆記tmt514's Blog卡恩的部落格卡恩的部落格tmt514
熱心網民的寫作計劃

Morris' Blog
熱心網民的學習心得

算法学习笔记
熱心網民的學習筆記

memset0's Notebook
熱心網民的解題題解

小月的耍廢日誌競程日記AA競程
熱心網民的工作報告

BYVoid
熱心網民的生活感想

spaghetti-source
熱心網民的程式碼

Algorithms Weekly by Petr Mitrichev
熱心網民的競賽週記

演算法競賽資源彙整

Awesome Competitive Programming
github的awesome系列,無論什麼亂七八糟的通通都有。

台灣資訊培訓相關資源彙整
以 台灣高中生 為出發點的 資訊培訓相關資源彙整。

Wargame

Information Security

https://infosecdecompress.com/
https://gotyour.pw/resources.html

Capture The Flag

https://zh.wikipedia.org/wiki/DEF_CON

https://ymsir.com/teaching.html
https://apsdehal.in/awesome-ctf/
https://ctf-wiki.github.io/ctf-wiki/
https://github.com/firmianay/CTF-All-In-One
https://picoctf.com/
https://ctftime.org/team/8299
https://bamboofox.cs.nctu.edu.tw/
https://blog.tdohacker.org/
https://scist.org/