以前因為電腦硬體貴、記憶體少、執行效率差,所以程式語言的語法規定就要一大堆,這樣才能讓寫出的程式有效率的執行,例如,Visual Basic、C/C++、C#、Java等語法規定就一大堆,尤其C/C++規定更是多,所以其執行效率也特別高。但是目前硬體的記憶體便宜了,執行速度也提高了,小小的一支智慧型手機,其功能與記憶體都超過10年前的桌上型電腦。Python之所以能異軍突起,主要就是硬體功能與效率提高了,所以,資料型態已經簡化、語法包容性提高、且提供很多高階資料處理函式與套件,使的程式設計師要分流了,要分為應用程式類與編譯器設計類,若是前端的應用程式類,那就大量用這些高階套件,少許的程式就可完成以前專業程式設計師一兩星期的工作。至於進階的高階套件的內部程式,則交由編譯器設計師了。Python就如同現在的手機照相機,只要簡單按鍵,竟然可以完成以前專業攝影師使用專業相機所拍出的效果,所以非常適合作為全民程式設計入門教材。適逢108課綱,國、高中、大學程式設計通通改為必修,所以就撰寫這本書,作為全民程式設計入門教材。
其次,本人程式設計著作與教學30 年,經由不斷的修正再修正,累積很多程式設計教學經驗,所以本書特色如下:
1. 內容豐富。本書共14個單元、涵蓋基本語法、基本輸出入、決策、迴圈、繪圖、高中數學應用、串列、函式、類別、檔案、視窗程式設計、動畫、遊戲與107~108最新APCS術科試題。
2. 程式來龍去脈很清楚。大部分的電腦書都是文字敘述完,就跑出一長串程式,讀者根本喘不過氣。本書則是一面說明、一面寫程式,所以程式的來龍去脈特別清楚。
3. 具有充分的範例。本書使用大量範例闡述程式指令與運算思維,學生觀摩這些範例,就能慢慢體會程式設計的方法。
4. 充分的自我練習。學程式設計不是一直聽老師解說,而是需要不斷練習,不斷練習自己排除錯誤,所以本書想出很多與範例非常相近的自我練習讓學生練習,希望老師一定要放手讓學生作,學生也不要指望老師幫您解答,只有不斷練習才會進步;也不要認為前面簡單就不作,因為這樣您不會基本除錯。短時間作不出來也不要氣餒,反覆思考就會有靈感。
5.跨領域教學。程式設計已經不是資訊科技老師的私有領域,它已經是所有學生、所有老師的工具。例如,本書有很多數學運算、數學函式圖形輔助教學、電腦輔助測驗等範例,各科老師只要學習一點簡單程式設計,就可以改寫程式應用在自己的教學領域。
6. 字體適中。體認老師因長年不斷教學準備,眼睛大多老花了,所以本公司不惜成本,將字體放大,希望能減輕老師的負擔。
7. 本書標示『※』屬進階單元,請任課教師依照上課時數衡量,學生第一次自習時可先跳過。
其次,這本書由我高師大程式設計啟蒙老師,也是一路指導與提攜的溫嘉榮教授審定,溫老師也提供很多大一學生程式設計的瓶頸與困境、及很多程式設計的運算思維與基本素養,經過不斷的討論與修訂,相信本書非常適合作為高中、大學學生的程式設計入門教材。此外,本書使用高中數學或較進階的應用,也都已經標上『※』,所以也可以作為國中生程式設計教材。
最後,本人雖然程式教學與著作超過30 年,快樂與熱情不變,儘管不斷的重複讀稿,但還是無法避免一些錯誤,企盼讀者閱讀本書時,將所見的錯誤、疑問、或不容易瞭解的地方郵件給我,如下表,我每年都會選出與抽出回函,贈送我的其他著作,在此先特別致謝。其次,我也會在泉勝網站刊登本書勘誤表。
洪國勝2019/11/18 僅序於彰化竹塘
www.goodbooks.com.tw
推薦序言
資訊科技日益千里,過去的人們只要學習人類語言,就像:台語、國語、英語和其他鄉土語言。為了適應未來資訊社會的需要,現在的學生都必須至少學習一種電腦語言,就像 Scratch 或 Python…甚至是C語言。有鑑於環境需求殷切,學校、教育機構和民間社會團體陸續投入這一個電腦程式語言的教育使命,在學校、在教室、甚至在網路上開設程式語言課程。在諸多的程式語言中,一般人很難去了解每一種語言的特質,應該去學習哪一種語言? 經過一般的論述,應該有一個默契就是國小學Scratch,國中以後就可以開始學Python,因為他是現有程式語言中最容易學習。所謂高階語言就是語法和人類的母語接近,有些指令語法你甚至不用學過就可以了解就可以大約它在做什麼?執行哪些任務? Python可以說是現在初學者最佳的選擇。
國勝老師在高職任教30年,擁有豐富的教學經驗,特別是他在大學期間參加過國內舉辦的資訊硬體設計競賽榮獲全國第一名,天賦異秉,加上認真努力,培養英才無數。近年將寶貴的經驗著作成書,希望能夠嘉惠後學,著作從基礎程式語言到專業程式語言,專業涵蓋面廣,還有硬體介面都有獨到的論述。這一本著作集程式語言叢書的精華,由淺入深,有許多實際的範例,可供初學者入門學習,也可以讓要參加 APCS -大學程式設計先修檢測的學生有一個準備的管道,獲取更高的成績,是一本優良著作,值得大家選用。
溫嘉榮