如何巧用「計算思維」破解經典奧數題「雞兔同籠」?
幾天前,教育部公布了最新的《普通高中課程方案和語文等學科課程標準》,這份由60多位專家編寫、經國家教材委員會審查通過、歷時4年完成的新課改在2018年秋季就開始執行啦。
除了對語數外等14門學科課程標準進行了修訂,新課改一個明顯的變化就是在信息技術里加大了對編程、計算思維、演算法方面的思維要求:
這些變化告訴我們一個重要信息:計算思維、計算機語言編程對孩子們未來的發展越來越重要。
為何教育部要著重強調計算思維、計算機語言編程?
原因可能有以下幾個方面:
1. 學習計算機科學思維,提高孩子解決實際問題的能力;
2. 培養人工智慧時代的複合型人才(編程+創意),讓孩子將來面對人機協同工作時遊刃有餘;
3.增加學業競爭力,NOIP提高組複賽一等獎可保送大學。
部分重點大學對信息學競賽獎項要求
如何用「計算思維」和計算機語言編程解決實際問題?我們通過編程求解經典奧數題「雞兔同籠」為例來回答這個問題。
為了便於理解,我們選擇了麻省理工開發的圖形化編程語言Scratch求解,它的優點是簡單、易懂,7歲孩子都能掌握。
先來看問題:
1500多年前的《孫子算經》記載:「今有雉(就是野雞)兔同籠,上有三十五頭,下有九十四足,問雉兔各幾何?」
這道題解法有很多種:方程法、列表法、假設法、畫圖法、金雞獨立法、吹哨法~
但用編程該怎麼解決呢?別急,在開始之前先搞清楚兩個問題:
Tips:2017年QS世界大學排名中,卡內基·梅隆大學計算機與信息系統學排名世界第3。
2.編程解決數學問題的邏輯:
要解出的數學答案(求兔子和雞的數量)——梳理出這個問題的邏輯——確定用怎樣的公式計算——在草稿紙上畫出流程圖——將這個順序轉化為代碼語言——輸入計算機得出結果
下面開始解題:
第一步:添加角色
左下角的角色區添加角色,分別是公雞、兔子、籠子各一個:
第二步:設置邏輯運算
1. 籠子角色的腳本要根據已知條件算出結果,並在界面顯示出結果(白框里的文字),我們輸入題目中已知條件:
我們要求雞和兔子的數目,就是要解出兩個未知數,把它轉化為代碼語言,這就需要創建兩個變數來代表這兩個未知數(兔子和雞)。
現在根據已知條件輸入兔+雞=35,兔x4+雞x2=94,注意下圖左邊的綠色框,裡面包含了邏輯關係:「且」、「或」等等。
孩子在這一步要思考:這兩個式子是缺一不可還是滿足一個就行呢?這就是對孩子邏輯思維最好的訓練。
接著輸入變數(發散下思維:分析任何問題時,教會孩子找出它的變數,解決了變數,問題就會好解決很多):
完整代碼如下:
雞和兔要執行的任務是:當它們接受到「計算雞兔多少只」這個指令時,就要分別「喊出」結果,兔子的代碼是這樣的:
雞的代碼是這樣的:
最後的結果是:
這就是巧用編程解決數學題的一個小例子。
除了得出答案,更重要的是裡面的邏輯關係「且」、「或」對孩子的邏輯思維進行了一次檢測和訓練,對變數也有了初步認識,這些對孩子來說都是一種全新的收穫。
邏輯思維能力+高效解決問題的能力(計算思維)+耐心和專註力(編寫程序是一個持續性過程),這些都是計算機語言編程能夠賦予孩子的特質,它可以讓孩子領先同齡人10年。
正在編程的深圳小學生
當然,還有效率更高的編程方法可以求出答案。但不管哪種方法,計算思維、計算機語言編程的運用始終是重點。
關於編程學習的一些建議
如果你已經被「計算思維」圈粉,想讓孩子親自體驗下運用編程解決問題的話,下面這些建議一定要看:
學習編程的前提是孩子一定要對編程感興趣。有興趣了就可以選擇合適的編程語言。
目前比較流行的編程語言有Python、C++、Java等,而適合小朋友學習的主要是圖形化編程Scratch、Python、以及面向NOIP競賽的C++語言。Python已經成為浙江2018年高考內容。
對於零基礎、年滿7歲的孩子,我們建議從Scratch這款由美國麻省理工研發的圖形化編程軟體開始學習,簡單、有趣、易上手,用積木塊代替了枯燥的代碼,孩子短時間內就能學會它。
Scratch操作界面
TAG:好玩的數學 |