內容目錄

上一個主題

數獨(Sudoku)基礎知識

下一個主題

課程計畫

本頁

「邏輯」是甚麼?

對一個開始學習去探索這個世界的學子而言,邏輯是最重要的工具之一。

最基礎的邏輯就是二分法,也就是「是」與「非」,或者在電腦科學裡面的「0」與「1」。這是人類在認知上、與他人溝通上的最小分類方法。所以學習邏輯對中小學生而言是非常重要的,因為這是所有知識的基礎,也是所有信仰的基礎。

如果依某一特定的角度、在某一特定時候,你無法判斷某個事物是「是」或「非」、或者「存在」或「不存在」,那你就是不了解這個世界,同時你也不了解你自己。

從解數獨來學習邏輯

學習邏輯可以變成一件有趣的事情,如果我們能夠從遊戲中去學習的話,而數獨就是一種很好玩的遊戲。我們可以列舉很多以數獨來學習邏輯的優點:

  • 它的規則相當簡單, 任何一個人能夠在5分鐘內了解它。

  • 它又夠複雜,它可以有多達數十億種的組合。

  • 它可以分各種不同的困難程度,來讓不同程度的人都能使用。

以學習 Python 程式設計來學習邏輯

學習一種電腦語言是一種很直覺的方法來學習邏輯。Python 是一種直譯式電腦語言,提供一種簡便的方式來實作程式的設計。你可以在下面官方網站來取得該電腦語言的所有資源: https://www.python.org/。我們從其 FAQ<https://docs.python.org/3/faq/general.html> 中剪輯一段來說明為何 Python 適合程式設計的初學者:

問題:

對一個程式設計初學者而言,Python是否是一個好選擇?

解答:

是的。

現在學生開始學習程式時,還是在使用傳統的電腦語言,如 Pascal, C, C++。但這是有點古板了,學生應該得到更好與更簡單的方法來開始他們的程式探索,而 Python 就提供了這些特點。它擁有非常簡單及一致的文法結構,以及大量的標準程式庫,最重要的是,它讓學生能夠將心思放在解決問題的程式設計技巧上,而不是在電腦科學的細節上。使用 Python,學生可以很快地學習程式設的基本知識,如回圈(loops)、程序(procedures)。甚至在第一堂課,就可以讓他們嘗試使用自訂的物件。

一個從來沒有程式設計經驗者,一開始就使用靜態式電腦語言(如C等)似乎是不自然的。它讓學生必須先去了解電腦複雜的內部結構,使整個課程緩慢下來。 學生必須學習如何使用電腦的角度來思考、解決問題及設計界面。雖然就長期目標而言,學習靜態式電腦有其必要性與利益性,但對初學者而言,大可不必將程式設計的門檻弄得那麼高。

Python擁有很多優點來當作學習程式設計的首選電腦語言。就如同 Java,它擁有大量的標準程式庫,可以讓學生在課堂上去實作一些專案,而這些專案都可以是一些實用的應用程式,而不是簡單的加減乘除四則運算。同時,使用這些標準程式庫可以讓學生學習程式的再利用。其他豐富的第三方模組也非常好用,如 PyGame,都可以直接拿來讓學生使用。

Python是一個互動式的直譯器,可以讓學生直接邊撰寫程式邊測試。它可以讓你在一個視窗邊寫程式,而在另外一個視窗執行與測試這些程式碼。

這個程式庫的特點

這世上已經有太多的數獨遊戲或者學習程式,有些是為了娛樂,有些是為了數學的研究,而此專案則是專注在邏輯的學習上。而且,這裡的邏輯是專門以人的角度為出發點,而不是電腦科學的角度。所以這個專案有以下特點:

  1. 讓人們學習「邏輯」 的基本精神。

  2. 它「不是」要成為一般性的程式設計課程。

  3. 它「不是」要成為嚴謹的數學研究。

  4. 探索解數獨的方法是以人的角度,而「非」電腦科學角度。

  5. 讓人們自己去發現解數獨的方法,並且以自己的文字來命名它。( 這雖然不在此 Python Package 裡面,但必須將此安排在課程裡面。)

  6. 讓人們能夠學習 Python 程式設計以時做學生們自己探索出來的方法。

  7. 學習以物件導向程式設計(OOP)來求解數獨。OOP方法可以比擬為人的思考與行為角度。