那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

54
那些 IOI 教我的事 台資 賴宇宣

description

茶敘話虎爛時間

Transcript of 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

Page 1: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

那些 IOI 教我的事

台⼤大資⼯工 賴宇宣

Page 2: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

那些 IOI 教我的事

台⼤大資⼯工 賴宇宣

以及沒教的事

Page 3: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

Agenda

• 我從 IOI 學到的

!

!

Page 4: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

Agenda

• 我從 IOI 學到的

• 我沒學到的

!

Page 5: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

Agenda

• 我從 IOI 學到的

• 我沒學到的

• 怎麼教新⼿手寫程式

Page 6: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

Agenda

• 我從 IOI 學到的

• 我沒學到的

• 怎麼教新⼿手寫程式

• ⾼高中⽣生真正該會的

Page 7: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

Agenda

• 我從 IOI 學到的

• 我沒學到的

• 怎麼教新⼿手寫程式

• ⾼高中⽣生真正該會的Just my two cents!

Page 8: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

• 台中⼀一中

!

!

Page 9: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

• 台中⼀一中

• 不會寫程式

• 都是靠學⻑⾧長罩

Page 10: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

• 台中⼀一中

• 不會寫程式

• 都是靠學⻑⾧長罩

Page 11: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

• 台中⼀一中

• 不會寫程式

• 都是靠學⻑⾧長罩

• 「負⾯面教材」

Page 12: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

IOI

!

!

Page 13: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

IOI

• 演算法解謎競賽

Page 14: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

IOI

• 演算法解謎競賽

• 跟電腦其實關係不⼤大

Page 15: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

IOI

• 演算法解謎競賽

• 跟電腦其實關係不⼤大

• 甚⾄至跟寫程式也沒什麼關係

Page 16: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

IOI

• 演算法解謎競賽

• 跟電腦其實關係不⼤大

• 甚⾄至跟寫程式也沒什麼關係

• e.g. IOI 2013 “Door”

Page 17: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

學到的東⻄西

• 資料結構與演算法

!

!

Page 18: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

學到的東⻄西

• 資料結構與演算法

• C/C++

!

Page 19: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

學到的東⻄西

• 資料結構與演算法

• C/C++

• 英⽂文/簡體中⽂文

Page 20: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

沒學到的東⻄西

•    資料結構與演算法

!

!

Page 21: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

沒學到的東⻄西

• 嚴謹的資料結構與演算法

• e.g. how to prove the complexity of randomized Quicksort?

Page 22: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

沒學到的東⻄西

•     C/C++

!

!

Page 23: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

沒學到的東⻄西

• 正確的 C/C++

• e.g. (bad ones)i = i++;int a = 60000;

Page 24: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

沒學到的東⻄西

• Literally everything I need to know before starting to write code…

!

!

Page 25: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

沒學到的東⻄西

• Literally everything I need to know before starting to write code…

• e.g. Unicode, HTTP, TCP/IP, Unix pipe, event-driven, OOP, functional programming, building tool, version control system, etc

Page 26: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

學到的東⻄西

• 資料結構與演算法

• C/C++

• 英⽂文/簡體中⽂文

• 「學習」

Page 27: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

教寫程式?

Page 28: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

教寫程式?• Learnable Programming

(http://worrydream.com/LearnableProgramming)

!

!

Page 29: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

教寫程式?

• 「從頭寫起」的困難

!

!

Page 30: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

教寫程式?

• 「從頭寫起」的困難

• “Computers are willing to sit there patiently while you define the terms that you want to use later. But humans won't understand what you're talking about unless you motivate it first.” — Joel Spolsky

Page 31: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

教寫程式?

• 填空取代填鴨

Page 32: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

教寫程式?

• 填空取代填鴨

• 圖形取代⽂文字

Page 33: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

教寫程式?

• 填空取代填鴨

• 圖形取代⽂文字

• 靜態取代動態

Page 34: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

學⽣生該會的

Page 35: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

學⽣生該會的

Page 36: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

學⽣生該會的

Page 37: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

學⽣生該會的

Page 38: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

學⽣生該會的

• ⾃自動化⼯工具

!

!

Page 39: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

⾃自動化⼯工具

!

!

!

Page 40: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

⾃自動化⼯工具

!

!

!

Page 41: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

⾃自動化⼯工具

!

!

!

Page 42: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

學⽣生該會的

• ⾃自動化⼯工具

• 資訊安全

!

Page 43: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

資訊安全(常識)

Page 44: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

資訊安全(常識)

Page 45: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

資訊安全(常識)

Page 46: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

學⽣生該會的

• ⾃自動化⼯工具

• 資訊安全

• 「學習」

Page 47: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

「學習」

Page 48: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

「學習」

Page 49: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

「學習」

Page 50: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

「學習」

Page 51: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

「學習」

Page 52: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

Question?

Page 53: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

Thank you!

Page 54: 那些IOI教我的事以及沒教的事 (高中資訊科教師增能研討會 2014)

References• http://venturebeat.com/2014/06/09/linux-creator-linus-torvalds-i-do-not-believe-

everybody-should-learn-to-code/

• http://venturebeat.com/2013/12/08/president-obama-kicks-off-cs-education-week-with-code-org-dont-just-play-on-your-phone-program-it

• https://elearning.taipei.gov.tw/

• http://worrydream.com/LearnableProgramming/

• http://www.joelonsoftware.com/articles/fog0000000033.html

• http://commons.wikimedia.org/wiki/File:Correlogram_Analysis_in_Excel.png

• http://www.deviantart.com/resources/applications/psactions/?q=HDR