I Love Python. I Learn Python. I Teach Python. I Am a Python.

2014/07/05

教小孩 學 Python 程式語言,用 中文 及 英文。(00)

教小孩 學 Python 程式語言,用 中文 及 英文。

前言:

2014年 4月,
應邀去小兒子的學校分享了 4 小時的程式設計經驗,
https://speakerdeck.com/renyuanl/teaching-teenagers-to-coding



後來學校老師提及是否有發展成正式課程的可能,
我想了一下,在網路上東拼西湊,加上自己的見解,

就規劃出以下大約 24 節 的課程進度。

如果你對這個 課題 或 課程 有興趣, 歡迎 留言 連繫。








大家都來 學 寫程式,可能嗎?

Coding for all – is it possible? 


這不是現在進行式,但越來愈多人認為確有其必要!
越來越多的 中小學生 開始有了以 Scratch 為基礎的 程式設計課程 的經驗,
也體會了何謂寫程式。

那麼,下一步呢?

 Python 

無疑是公認的最佳選擇!

但很重要的一點是,

如何【不】「揠苗助長」!


我喜歡寫程式,但也很清楚,寫了一支充滿小蟲的程式,
以及隨之而來的除蟲過程,實在也滿挫折的,
在沒有充分心理準備之前,這種經驗確實會讓很多人卻步!

可能要優先避免的是數學風格的程式教學,
如果學生本身就不是很喜歡數學的話!

還要認知到,每個學生的學習速度有快有慢及軌跡各不相同。

動畫以及科學模型應該有幫助,但切記那也絕非萬能。

這些年來我發現要培養成一位程式師唯一之道就是「持續不斷」的寫程式。

一個可行的策略是像學習傳統語言閱讀那樣的「分級學習」。 

一個級數學過了之後,學習成果穩固了,才進到下一級。

目前,我們採取的教材嘗試把進度分為三級:
  • Level 1
    • 基本變數、決策、迴圈、鍵盤輸入、簡單視窗輸出介面
  • Level 1.5
    • 龜 作圖
  • Level 2 
    • 複雜的資料型態(含列表、字典)、滑鼠(含觸控)輸入、複雜的視窗介面
  • Level 3 
    • 物件(類)導向 (OOP) 方法、專案(遊戲)程式設計 







Python Basics

Ch.1 - Python, IDLE & Your First Program:
  •    >>> Meet the programming language you are going to learn about.
    • 看看你將要學的程式語言:Python
  •    >>> Meet IDLE which will help organise and run your code easily.
    • 最簡潔的 Python 編輯、解譯器:IDLE
  •    >>> Check that your computer is set up correctly.
    • 檢查、測試電腦的Python學習環境的設定
  •    >>> Write and run your first program.
    • 第一支程式
    • print('Hello, world!')
      
      印= print
      印('你好,世界!')
      
      

Ch.2 - Some text, some maths & going loopy:
  •  >>> Learn how to do some more with texts.
    • 對「文字」做一些「處理」

      print('I know it.\nYou didn\'t know.')
      印= print
      印('甲乙丙丁\tあいうえお\nabcd\tαβρδ\n')
      
      
  • >>> Get Python to do some maths for you.
    • 做一些「數學」
  • >>> Learn about how loops work.
    • 學一點「迴圈」的概念
  •    >>> Learn lots of useful operators.
    • 多學一些數學及文字的「運算子」
Ch.3 - Readable code and My8Ball Game:

  •    >>> Write and save a Python file using Script Mode.
    • 用劇本模式寫 Python 程式,並存起來。
  •    >>> Learn how to write clear readable code.
    • 學習寫「明白易懂」的程式碼
  •    >>> Run a Python file.
    • 「跑」一支 Python 程式
  •    >>> Learn about how to get user input.
    • 學習如何取得 程式使用者 的 輸入
  •    >>> Learn about if and else clauses.
    • 學習條件子句: if, else
  •    >>> Write a short game called my8Ball.
    • 仿寫一支小遊戲程式,「我的8顆球」

Here is a movie of this chapter's project: my8ball.py


Ch.4 - Functions:

  •    >>> Learn about functions .
    • 函數(式),一組特定功能的程式碼。
  •    >>> Write your own functions.
    • 寫自己定義的函數。
  •    >>> Create a number guessing game.
    • 創作一個「猜數字」遊戲。

Here is a movie of this chapter's project: myNumber.py



Ch.5 - MyEtchASketch:

  •    >>> Learn how to use the tkinter library.
    • 學習使用 tkinter 函數庫 
  •    >>> Make your own Etch A Sketch game.
    • 自己做一個 Etch A Sketch 遊戲
  •    >>> Learn how to put an application in its own window.
    • 學習把應用程式放在它自己的視窗中
  •    >>> Learn how to attach functions to keyboard presses.
    • 學習把函數和鍵盤的按鍵連結起來

Here is a movie of this chapter's project: myEtchaSketch.py
Here is a movie of a two player version: ourEtchaSketch.py




2 則留言:

  1. 如果你對這個 課題課程 有興趣, 歡迎 留言 連繫。

    回覆刪除
  2. 您的用中文寫程式的理念很棒,不僅華人小孩受益,
    某些「失學(程式語言)」的華人成年人應也可從中獲益。

    回覆刪除