電腦與問題解決 曾憲雄 教授 辛文義 老師
基本理念 課程精神:瞭解電腦與問題解決 課程核心:問題描述、分析與演算法 課程目標 : 課程實施:利用實例練習與課堂活動,引導學生學習 建立學生對電腦與問題解決的正確觀念 培養學生利用電腦解決問題的能力 激發學生繼續學習程式設計的興趣 課程實施:利用實例練習與課堂活動,引導學生學習
主要內容 時數: 10 (二學分) / 26 (四學分) 內容: 電腦解題概論 電腦解題程序 演算法概論 *電腦解題實作 (基礎程式設計) (*電腦解題複雜度分析)
電腦解題概論 電腦解題簡介:介紹電腦解題基本精神 垂直式邏輯思考 循序漸進的流程 電腦解題在各領域之應用:介紹日常生活中各領域如何應用電腦解決問題,簡單說明其解題流程,以帶出演算法的觀念。例如:網路資料搜尋、火車訂票、MP3音樂轉檔、志願分發、包含輾轉相除法在內的各種離散型數學計算、科學實驗設計等。
電腦解題程序 問題分析:導引學生分析問題,包括輸入規範、輸出規範、輸入與輸出對應關係、邊界條件等之探討。 解題方法設計:以常見的電腦解題策略解說如何構思解題方法。透過不同解題策略之介紹及分析,培養學生進一步學習程式設計、演算法等相關資訊科學主題之興趣。 測試與修正:包含測試資料的設計及測試方法的說明,並介紹各種錯誤的偵測及修正。
演算法概論 演算法特性:介紹演算法的有限性、明確性等特性。 演算法表示方法:先介紹輸入、輸出、處理步驟、及條件判斷等基本元件,再介紹如何透過基本元件之組合呈現解題程序。藉由基本元件的組合介紹循序、選擇、重複等結構,並視需要介紹模組化概念。本單元之介紹可使用流程圖、虛擬碼等方式。 *資料結構與演算法 演算法與電腦解題
演算法概論 演算法特性 演算法表示方法 *資料結構與演算法:介紹變數的概念,包括基本資料型態及其在電腦內部的儲存方式,並視需要介紹一維陣列結構;最後應說明如何結合資料結構和演算法進行電腦解題。 演算法與電腦解題:介紹演算法與電腦解題的關係。
電腦解題實作 電腦解題工具介紹:介紹解題實作工具。軟體的操作介面或環境宜儘量簡單,可考慮使用可動態顯示演算執行過程的軟體,或者使用簡單的劇本語言或模擬軟體。更可以考慮使用可程式化機器人系統、物件導向式語言、函式化語言、網頁程式設計語言或交談式繪圖語言等多元化且生動活潑的電腦解題工具。
電腦解題實作 電腦解題工具介紹 解題實作:實際使用電腦進行解題。宜運用相關軟體輔助,讓學生追溯(trace)解題程序的執行過程。透過實例進一步的演練,讓學生體會諸如由上而下(top-down)、由下而上(bottom-up)、反覆精煉(iterative refinement)等常見的電腦解題策略。
基礎程式設計 得參考選修科目「資訊科學」中的「基礎程式設計」教材綱要內容 。 概論 基礎觀念 流程控制 陣列 模組化程式設計※
電腦解題複雜度分析 演算法效能分析:分析影響演算法效能的各項因素,包括演算法執行所需時間、儲存空間等,並視學生學習情形導入複雜度分析及離散數學的基本概念。 電腦解題限制:使學生瞭解電腦解題也有其限制。介紹各種可能限制電腦解題的因素,包括問題之不可計算、無法有效量化、使用資源太多等。
提醒您 在電腦解題概論應強調演算法垂直式邏輯思考的精神,以及循序漸進的解題流程,除引導學生分析問題、設計解題步驟及說明解題策略外,亦應搭配日常生活實例呈現完整的解題過程 演算法介紹宜舉與學生日常生活、學習等相關之實例,避免過於繁複或不具實用性的演算法,以激發學生學習電腦解題的興趣
提醒您 電腦解題實作軟體的操作介面或環境宜儘量簡單,學生容易取得;可以考慮使用視覺化模擬軟體、可程式化機器人系統、物件導向式語言、函式化語言、網頁劇本語言或交談式繪圖語言等多元化且生動活潑的電腦解題工具 基礎程式設計應強調程式設計的概念,並避免過度拘泥於特定的程式語言或開發工具
時數規畫建議:10節 電腦解題概論1節 電腦解題程序2節 演算法概論3~6節 電腦解題實作 1~4節 介紹電腦解題精神與應用 引導學生分析問題、設計解題方法及了解測試修正的程序 演算法概論3~6節 演算法基礎知識的養成,介紹演算法的特性及表示方法、與電腦解題的關係 電腦解題實作 1~4節 電腦解題工具的使用與問題解決的實際演練
時數規畫建議:26節 增加資料結構、基礎程式設計與複雜度分析。期使學生能夠深究演算法之外,並獲得更多電腦解題實作的機會。 演算法概論3~8節 演算法基礎知識的養成,介紹演算法的特性及表示方法、資料結構與電腦解題的關係 電腦解題實作 2~4節 電腦解題工具的使用與問題解決的實際演練 基礎程式設計12~17節 學邏輯思維、問題解決與培養學生程式設計的正確觀念;電腦解題複雜度分析為選授單元,讓學生了解效能分析與限制條件。
為什麼要學程式設計? Seymour Papert (創立Logo)- 培養學生邏輯規劃、問題解決等能力 程式設計過程中的邏輯推理、抽象思考等是所有學習過程都會牽涉到的 只有學習應用軟體是不夠的,唯有瞭解螢幕背後的運作機制— 程式設計的基本概念,才能把應用軟體用得更好。(4R- pRogramming、Reading、wRiting、aRithmatic) 重點不是學程式設計,是學邏輯思維、問題解決
問題解決參考教學工具 (Mini-language/Microworld concepts) LOGO Lego Mindstorms Lego Mindstorms Simulator (LMS), Kara (http://www.swisseduc.ch/compscience/karatojava/kara/), Karel the Robot… Alice (http://www.alice.org) Scratch (http://scratch.mit.edu/) StageCast Creator (http://www.stagecast.com/) Game Maker (http://www.yoyogames.com/make)
Lego Mindstorms
CMU 的Alice
MIT的Scratch