馮哲
摘 要:隨著計算機、智能手機的普及,軟件對人們日常生活的影響日益增大,越來越多的人意識到需要學習和掌握計算機基礎知識、學習一些常用軟件的使用技能、甚至能學會編程。然而大多數人的理解存在誤區,認為做網站寫軟件是專業人士的事情,要上大學讀計算機專業才能學到的本領。傳統的青少年素質教育中,編程能力的思維訓練還沒有受到足夠的重視。本文通過自身學習軟件編程的親身經歷,總結了一些思維能力培養方面的心得體會,希望對致力于提升軟件編程和算法設計思維能力的青少年有一定的借鑒作用。
關鍵詞:程序;算法;思維訓練;計算機輔助學習
中圖分類號:G636.6 文獻標識碼:A 文章編號:1671-2064(2018)21-0224-02
1 編程其實不神秘,但有多種形式
編程,也就是程序設計,人們通常想到的是0和1、二進制、十六進制,想到C、JAVA、PYTHON、人工智能、黑客、病毒等概念。數字化時代,代碼的世界豐富多彩。每一個領域都有科學家對其做深層次的研究,每一個領域都能細分出很多研究方向,窮其一生的努力也未必探索到盡頭。
但是,編程思維其實非常接近我們的生活[1]。例如,在天貓購物的場景:在天貓網站選好商品后放入購物車,然后付款。作為消費者用戶的你,已經完成了第一個階段性的工作,可以繼續做別的事情。第二天或者過幾天,你會收到菜鳥商鋪的短信,通知你去領取快遞,短信還有菜鳥超市的貨架信息等。你到了菜鳥超市,報貨架號碼和名字或者電話號碼后,超市店員會找對應的快遞并交給你;你確認快遞是否正確、包裝是否完好并簽收,然后拿回家里,開箱檢查、驗收,這樣就圓滿完成了一次網購。該過程隱含編程中的許多概念。例如,完成付款后繼續做其他事情,就是編程中的多線程概念,分時多任務處理。收到菜鳥超市的短信后的一系列行動,相當于編程中的回調,或者事件觸發。菜鳥超市根據貨架編號找到你的快遞,這就是檢索或者叫數據庫查詢;店員問你名字或者電話號碼是網絡安全,如果有不止一個快遞同時領取,則出現了循環。如果發現包裝有破損,則可以拒收或退貨,這就是拋出異常,出現了分支流程。
任何自動化系統都是從實現系統中模擬和擴展出來的,包括人工智能和機器學習的模型。同時各種應用程序有成千上萬的形式,有龐大的系統,也有固化到小芯片的程序。例如有大到10多億用戶的微信系統、也有小到鬧鐘的鬧鈴程序。
現代人對上述網購例子都很容易理解,但是并不是每個人都能將這個例子抽象出模型以及設定出算法。不過青少年就有條件由淺入深地開始訓練這樣的思維。
2 中學生的編程思維訓練對學習的促進作用
中學生已經有足夠的好奇心和智力條件,應當開展適當的編程思維的訓練,只要方法得當,不僅不會浪費時間,還會對學習有促進作用。根據自身的經歷本人推薦三個工具,分別是PCLogo、Scratch和GeoGebra。
PCLogo是經典的青少年學習編程的工具,已經在中小學教育中普及多年,很多城市還會定期舉辦Logo程序設計大賽。該工具俗稱小海龜作圖,只有幾組簡單指令。比如,換筆控制粗細、抬筆落筆、換顏色、前進后退、轉動指定的角度、回原點、重復一組指令等,簡單易學。現在還有網站可以在線設計PCLogo程序,網址為 https://www.transum.org/Software/Logo/。例如,如下語句可以做出很漂亮的花朵:
repeat8[rt 45 repeat 7 [repeat 90 [fd 2 rt 2] rt 90]],見圖1。
Scratch是麻省理工學院的名為“終身幼兒園團隊”(Lifelong Kindergarten Group)的軟件團隊的作品[2]。6歲以上的孩子就能用來制作小游戲和動畫,只需要拖拉拽就能完成程序的制作,甚至不需要使用鍵盤。相比logo小海龜作圖工具畫出來的、線條組成的圖形,Scratch制作出來的作品具有圖片、動畫、聲音、鍵鼠可控制等特點(如圖2所示),能更好激發同學們的學習興趣。
Scratch程序將指令10個類別(如圖3所示),每個類別有不同的顏色。用顏色進行區分的程序,看起來更清晰、更直觀[3]??刂撇糠职藯l件判斷、分支處理、循環等元素,雖然沒有看到代碼,但是已經包含了基礎程序設計中的大部分概念和技巧。最難能可貴的是,每一個修改都不會破壞程序的完整性,所見即所得,隨時可以運行,這和正式的、代碼類型的程序調試很像,對培養青少年的邏輯思維能力很有幫助。
最后介紹GeoGebra。其側重點是幾何畫圖的制作,既有拖拉拽的方式,又有表達式的修改方式。兩者可以互補,點線面都有坐標和方程,對數學的曲線方程、幾何作圖和空間想象力鍛煉都非常有好處。如圖4畫出三角形外接圓及BC邊上的高。
3 結語
身處信息時代,掌握了頂尖信息技術就掌握了未來[4]。計算機編程看似高深,事實上并非如此。本文通過自身學習軟件編程方面的經歷和體會,希望能夠幫助青少年提升軟件編程和算法設計思維能力。讓我們開啟程序設計之旅,遨游在那個奧妙、神奇的天地中。
參考文獻
[1]沈興漾.中學生“程序意識”教育初探[J].中學教學參考,2010,(15):121-122.
[2]張波.從 Scratch 開始——淺談初中學生編程思想的培養[J].考試周刊,2014,(5):121-121.
[3]高紅旗.淺談Scratch環境下學生信息技術能力的培養[J].新課程導學,2015,(13):14-14.
[4]白羽.基于Scratch信息技術教學對小學生發散思維能力的培養研究[J].學周刊,2016,(27):14-15.