Closed mdecourse closed 6 years ago
在 2017 年 Spring 的計算機程式課程, 從簡單的 Python3 與 ANSI C 著手, 並且利用 PyGame 製作可以用 Python3 程式控制的 2D 圖形物件, 但是由於每週只有兩個小時, 且大部分大一夜間部學員, 白天負責與電腦及網路操作較無關聯的汽車維修工作, 下班後進到電腦教室上程式課程時, 除了面臨中文與英文打字的挑戰外, 還要面對許多英文資料的考驗, 因此成效有限.
2018 年 Spring 在車輛工程系夜間部大一的計算機程式, 預計採抽象性較低的 3D 動態模擬環境 V-rep 作為引導工具, 並且以電腦程式控制下的汽車運行 (例如: https://vimeo.com/251747802), 說明計算機程式在無人車駕駛的過程中如何應用. 此一課程規劃所採用的汽車自主駕駛場景來自 https://github.com/eligoldweber/DriverlessCarSimulation , 所有控制程式都以 Lua 編寫.
Lua 是目前較流行的計算機程式語言中, 唯一源自南半球 (巴西) 的電腦語言, 以簡潔高效著稱, 整體程式語言以 ANSI C 格式編寫, 在 Windows 10 環境中編譯所的到的 lua.exe (47KB), luac.exe (825KB), lua53.dll (239KB) 與 liblua.a (313KB), 總容量只佔約 1.5 MB, 由於可嵌入 C++/C 程式中運行, 且容量小執行速度快, 經常被用於動態模擬系統中解譯調控或設定, 如 V-rep 或許多電玩套件.
此一計算機程式課程預計從簡單的 Lua 程式語法說明開始, 採用 https://github.com/mdecourse/vecp2018/tree/gh-pages/lua 中的中文及英文教材, 並且讓學員可以利用這些程式語法, 控制 https://github.com/mdecourse/vecp2018/tree/gh-pages/lua/DriverlessCarSimulation 中的汽車模擬場景.
在介紹 Lua 程式語言的過程, 也可以介紹如何利用 http://www.msys2.org/ 與 https://www.python.org/ 中的 Windows 10 C++/C 與 Python3 程式環境, 製作 Windows 10 64 位元環境下的可攜程式系統, 將系統放入 32 GB 規格 USB 3.0 以上的隨身碟, 啟動後可從 https://github.com/lua/lua 取得最新的原始碼, 並以 MSYS2 編譯出所需的 lua.exe, luac.exe, lua53.dll 與 liblua.a 檔案.
規劃至此, 計算機程式課程共導入簡單的 Lua 程式語法與應用, Windows 10 環境下的可攜程式套件製作, 以及利用 MSYS2 了解簡單的 ANSI C 程式編譯與應用.
在學員利用 Lua 控制 https://github.com/eligoldweber/DriverlessCarSimulation 場景運作的同時, 由於 V-rep 除了內嵌 Lua 程式系統外, 也透過 Remote API 讓 Python3 程式可以跨網路操控場景中的汽車, 因此若時間與學員的忍受度許可, 還能夠利用隨身 USB 系統中的 Python3 解譯器, 了解簡單 Python3 程式的應用.
總結以上所述:
2018 Spring 在車輛工程系夜間部一年級計算機程式課程中, 希望以走馬看花的心情介紹下列內容:
計算機程式語言相關技術, 在無人車模擬環境中, 該如何應用, 其中必須了解許多 Lua 程式語法, V-rep 基本架構與操作, 計算機程式與虛擬感測器之間的配合運作.
在介紹 Lua 程式語言的進階課程內容, 是介紹如何自行製作 Windows 10 環境下的可攜程式環境, 採用 MSYS2 自行編譯 Lua ANSI C 程式原始碼, 自行打造 Lua 程式環境.
最後若行有餘力, 則可以再介紹如何利用隨身程式系統中的 Python3 程式環境, 跨網路操控課程內容 1 中的無人車場景與各式感測器, 讓場景中的多部無人車可以接受來自多台電腦中的 Python3 程式模擬, 充分了解實際應用中, Lua, C++/C 與 Python3 等計算機程式語言, 是如何在虛擬環境中整合應用.
課程規劃結束
以下則說明 Javascript 中的 anonymous function 用法:
http://markdalgleish.com/2011/03/self-executing-anonymous-functions/
2017 Spring 計算機程式: http://mde.tw/2017springvcp/blog/2017spring-ve-cp.html