如何向孩子們教授 Python?

如何向孩子們教授 Python?

我的主要工作與數據和編程有關 R,但在本文中我想談談我的愛好,它甚至可以帶來一些收入。 我一直有興趣向朋友、同學和同學講述和解釋一些事情。 我也總是很容易找到與孩子們的共同語言,我不知道為什麼。 總的來說,我認為撫養和教育孩子是最重要的活動之一,而我的妻子是一名教師。 所以,大約一年前,我在當地的一個 Facebook 群裡做廣告,得到了一個群,開始每週教一次 scratch 和 python。 現在我有五個小組,我自己在家裡上課和單獨上課。 我是如何過上這樣的生活的,以及我是如何教育孩子的,我將在這篇文章中講述。

我住在加拿大、卡爾加里、艾伯塔省,所以有些要點與當地具體情況有關。

房間

有一個練習的地方從一開始就是一個主要問題。 我嘗試尋找按小時出租的辦公室和課程,但不是很成功。 我們的大學和 SAIT——在當地相當於麻省理工學院——在使用和不使用計算機的情況下上課。 那裡的價格原來不是很人性化,但最後發現大學不讓未成年人入住,SAIT一般只租給學生。 所以那個選項被放棄了。 有許多按小時租用會議室和辦公室的辦公中心,也有整個公司提供從完整班級到四人間的多種選擇。 我有希望,因為艾伯塔省是一個石油省,我們從 2014 年開始就出現了低級危機,許多商業領域都空無一人。 我希望落空,結果價格高得我一開始甚至不相信。 業主坐在空蕩蕩的辦公室裡支付費用比傾倒更容易。

那一刻,我想起了我定期納稅,以及我們親愛的州,或者更確切地說,卡爾加里市是否有任何東西。 原來,真的有。 這個城市有打曲棍球和其他花樣滑冰的競技場,在這些競技場裡有房間,強悍的冰上勇士們討論未來戰鬥的策略。 簡而言之,每個競技場都有幾個房間,裡面有桌子、椅子、白板,甚至還有帶水壺的水槽。 價格非常實惠——每小時 25 加拿大圖格里克。 我最初決定上一個半小時​​的課,所以我將價格定為 35 人一組,每個鼻子 XNUMX 美元,以補償房租,嗯,裝點東西在我的口袋裡。 總的來說,我喜歡在競技場訓練,它解決了一個問題——大多數說俄語的人住在城市的南部,而我住在城市的北部,所以我選擇了大約在中間的競技場。 但也有不便之處。 加拿大的官僚機構很好而且很友好,但是,委婉地說,它可能有點慢。 當你習慣了節奏並提前計劃時沒有問題,但有時會有不愉快的時刻。 比如在城市的網站上,你可以很方便的選擇時間地點,預定房間,但是不能支付,任何方式。 他們打電話並接受信用卡付款。 你可以去辦公室用現金支付。 有一個有趣但不是很愉快的時刻,當我在等待他們打電話支付第二節課的費用時,我沒有等到,最後一天我到辦公室遲到了十五分鐘。 我不得不帶著無禮的口吻接近警衛,並謊稱房間已被預訂。 我們加拿大人信守諾言,他們平靜地讓我進去,沒有檢查任何東西,但如果人們還沒有在去上課的路上,我就不會那樣做。

所以我做了冬天和春天,然後有變化成為最後一根稻草。 首先,辦公室不對訪客開放,並提供在拐角處通過電話接受付款。 我在過道裡坐了至少半個小時才通過。 其次,如果之前我親愛的阿姨從我這裡收了一個半小時​​的錢,現在有一個女孩拿起電話說只收了一個小時。 當時我是三人一組,然後是兩個人,多出來的$12.5一點也不算多。 當然,我是有思想的,但如果我老婆把我踢到大街上,那就沒人教了。 那時我還沒有工作。

我決定去圖書館。 圖書館免費出租漂亮的房間,但有一點——你不能進行商業活動。 甚至慈善組織也不允許在那裡募捐。 有人告訴我這不是特別管控,主要是不要在入口處拿錢,但我真的不喜歡違反規定。 另一個問題是房間經常很忙,很難在一個地方同時安排課程。 我暑假和初冬在圖書館教書,我得選那些有地方的,結果換了五六個圖書館。 然後我開始提前兩個月預訂一個地方,然後,結果只在一個小圖書館裡完成,其餘的經常沒有合適的地方。 然後我決定在家裡上一堂電腦課。 我掛了板子,在廣告上買了第二張桌子和幾台舊顯示器。 在工作中,公司給我買了一台新的功能強大的筆記本電腦,因為在我的電腦上分析了將近 24 小時。 總的來說,我有一台新的舊電腦,一台舊舊電腦,一台我的小屏幕被壓碎的筆記本電腦和一個我自己壓碎屏幕的老式上網本。 我將它們全部連接到顯示器並在所有地方安裝了 Linux mint,除了上網本,我在上網本上安裝了一個非常輕的發行版,看起來很笨拙。 我還有一台 200 美元的舊筆記本電腦,我將它連接到電視上。 更重要的是,我們的房東最近為我們更換了窗戶,房間現在有了新的白色框架,而不是可怕的倒塌骯髒。 妻子把客廳、廚房和第二間臥室當成了幼兒園,所以整層樓變成了純粹的教學樓。 那麼,現在房間一切都好了,我們就直接上課吧。

划痕

我開始介紹使用 Scratch 語言進行編程的基礎知識。 這是一種使用現成塊的語言,是麻省理工學院當時發明的。 大多數孩子已經在學校見過划痕,所以他們很快就習慣了。 有現成的程序和教案,但我一點都不喜歡。 一些奇怪的 - 例如,創建您自己的故事。 整個程序由無數塊組成 say '<...>' for 2 seconds. 可以看出是非常有創意的人想出來的,但是用這種方法,你可以教如何寫出經典的印度麵條代碼。 一開始就講原則,比如DRY,其他的任務集合都挺好的,但是孩子們很快就切中要害,開始像機關槍一樣搞起來了。 結果,他們在一節課中完成了本應在五節課中完成的事情。 並且需要花費大量的個人時間來搜索和選擇任務。 總的來說,scratch 更像是一種 IDE,而不是一種語言,你只需要記住在哪裡點擊以及在哪裡尋找東西。 等同學們多多少少掌握了,我就試著翻譯成python。 我什至有一個七歲的女孩,她用 Python 編寫簡單的程序。 我認為 scratch 的好處在於它具有以有趣的方式學習的基本概念。 由於某種原因,每個人都很難無一例外地理解變量的思想。 起初,我快速瀏覽了這個話題並繼續前進,直到我發現他們根本不知道如何處理這個事實。 現在我把很多時間花在變量上,並不斷地返回到它們上。 你必須做愚蠢的swotting。 我在屏幕上更改不同的變量並讓它們說出它們的值。 Scratch 也有控制結構和價值檢查,例如 while, forif 在蟒蛇。 它們很容易給出,只是嵌套循環存在問題。 我嘗試用​​嵌套循環給幾個任務,這樣它的動作是可視的。 在那之後,我繼續功能。 即使對於成年人來說,功能的概念也不明顯,對於孩子來說更是如此。 很長一段時間以來,我一直在思考一般的功能是什麼,談論一個接收對像作為輸入但發出貨物的工廠,一個用原材料製作食物的廚師。 然後我們製作一個程序來用產品“做三明治”,然後我們用它製作一個函數,將產品作為參數傳遞給該函數。 在函數的學習上,我是從零開始的。

蟒蛇

用 python 更容易。 有一本名為 Python for Kids 的好書,我用它來教學。 一切都是標準的 - 線路,操作順序, print(), input() ETC。 語言通俗易懂,幽默風趣,孩子喜歡。 它有一個許多編程書籍共有的缺陷。 正如一個眾所周知的笑話 - 如何畫貓頭鷹。 橢圓形 - 圓形 - 貓頭鷹。 從簡單的概念過於突然地過渡到相當複雜的概念。 我花了幾個會話將對象附加到點方法。 另一方面,我並不著急,我以不同的方式重複同樣的事情,直到至少出現某種畫面。 我從變量開始並再次敲擊它們,這次是在 python 中。 變量是一個詛咒。

一個機智的學生,幾個月前巧妙地點擊了草稿上的變量,看起來像一個新門的公羊,無法將 X 與 Y 相加,這在黑板上清楚地寫在上面一行中。 我們重複! 變量有什麼? 名稱和含義! 等號是什麼意思? 任務! 我們如何檢查相等性? 雙等號! 就這樣我們一次又一次地重複,直到完全開悟。 然後我們繼續學習函數,其中關於參數的解釋花費的時間最長。 命名參數,按位置,默認等。 我們還沒來得及上課。 除了 python,我們還學習了書中流行的算法,稍後會詳細介紹。

其實,訓練

我的課是這樣安排的——半小時講一個理論,查一下知識,鞏固所學。 小時 - 實驗室。 我經常得意忘形地廣播一個小時,然後分別剩下半小時練習。 學習python的時候複習了課程 算法和數據結構 來自 MIPT 的 Khiryanova。 我真的很喜歡他的演講和講座的結構。 他的想法是框架、語法、庫都過時了。 架構、團隊合作、版本控制系統——現在還為時過早。 因此,有些算法和數據結構早已為人所知,並且將始終採用類似的形式。 我自己只記得帕斯卡研究所的整數。 由於我的學生大多很年輕,從七歲到十五歲,我認為為他們的未來打好基礎比用 python 快速編寫一個平台遊戲更重要。 雖然,他們更想要平台遊戲,我理解他們。 我給他們簡單的算法——冒泡、排序列表中的二進制搜索、使用堆棧的反向波蘭表示法,但我們對每一個都進行了非常詳細的分析。 事實證明,現代兒童原則上不知道計算機是如何工作的,我也告訴你。 我嘗試在每節課中將幾個概念聯繫在一起。 例如,計算機 - 內存/處理器 - 來自單元的內存(讓我拿著一個內存板,猜猜這裡有多少個單元) - 每個單元就像一個燈泡 - 有兩種狀態 - 真/假 - 和/或 -二進制/十進制 - 8 位 = 1 字節 - 字節 = 256 選項 - 每位布爾數據類型 - 每字節​​整數 - float 在兩個字節上 string 在一個字節上 - 64 位上的最大數字 - 來自先前類型的列表和元組。 我保留一點,在真實的計算機中,這些數據類型的一切都有些不同,內存量也不同,但主要的是我們自己在此過程中從更簡單的數據類型創建更複雜的數據類型。 數據類型可能是最難記住的東西。 因此,我每節課都以快速熱身開始——一個學生說出數據類型,下一個學生給出兩個例子,以此類推。 結果,我實現了即使是最小的孩子也高興地大喊 - 漂浮! 布爾值! 七,五! 披薩,汽車! 在演講期間,我不斷地拉一個或另一個,否則他們很快就會開始挖鼻子看天花板。 是的,每次都應該檢查每個人的知識水平。

我的學生總是以他們的愚蠢和出人意料的機智讓我驚訝。 幸運的是,聰明才智更常見。

我想寫更多,但即便如此,表格還是出來了。 我會很高興地回答所有問題。 我以各種可能的方式歡迎任何批評,只是一個請求——在評論中對彼此更加寬容。 這是一篇好文章。

來源: www.habr.com

添加評論