--- title: 2020 KGHS i2trc2 Summary --- ###### tags:`2020KGHS` `i2trc2` # 2020 KGHS i2trc2 26th (下) ## 基礎程式組 ### 積點/作業/專題/分組 - [這學期的大綱](https://hackmd.io/H78OgFzuSqqldBHU18s3zg) - [積點兌換表](https://hackmd.io/@yencheng/Hy-NzY3Pw) - [Processing 下載連結](https://processing.org/download/) - [作業上傳雲端連結](https://drive.google.com/drive/folders/1Dx0QwdEB9QKXfB5Bz9QmLoLSgkYG3yAV?usp=sharing) - 每個禮拜都會有作業喔,大家記得交 ww - 2021/2/26 1. 填寫分組名單 (2 人一組)。 2. **作業 A**: 回去下載 processing,試著把上學期的基礎語法跟 processing 的繪圖函式結合起來,做個簡易動畫。 - 2021/03/12 1. **作業 B**: [題目說明](https://hackmd.io/KNPRNo8yTlGLeZMt3nQ4Jw#Practice) 每個人都要做喔! 2. **作業 C**: 額外的練習: 設計一個小遊戲 - 可以用滑鼠操控球球 - 場上會出現隨機的小球 - 當球球碰到小球的時候,把小球吃掉並且長大 - 隨機再出現另外一顆小球 - 2021/04/09 (已延期) 1. **作業 D**: 填寫各組遊戲發想 2. **作業 E**: 將之前寫的遊戲用物件導向的方式重寫 - 2021/04/16 (第一次 ==check point==) 1. **作業 F**: 改寫作業或 [範例](https://hackmd.io/c4-FuL-hQ6Oi69YR8QCVOw#%E6%96%B0%E5%A2%9E%E5%85%B6%E4%BB%96%E6%96%B9%E6%B3%95-method) ,新增 `BigBall` 跟 `SmallBall` 類別 2. 到 [作業上傳區](https://drive.google.com/drive/folders/1Dx0QwdEB9QKXfB5Bz9QmLoLSgkYG3yAV?usp=sharing) 繳交各組目前為止的專題成果 (資料夾名稱請用**專題題目**),需至少包含以下功能,或同等進度 30% : - 程式架構(程式邏輯)規劃 - 大概寫一下,大概要如何設計物件,物件包含哪些**資訊(變數)或方法(函數)** - 可以的話可以稍微畫一下**流程圖**,幫助理解程式運作原理 - 你可以用任何方法去解釋程式要如何運作(打字或紙本都可以) - 完成後,到各組的[分組名單](https://hackmd.io/H78OgFzuSqqldBHU18s3zg#Team-1-Example)新增一個 `程式架構` 的選項 - 主要遊戲角色出場,應達到基本控制能力 - 部分遊戲物件 - 2021/04/23 - **作業 G**: 製作 Agar 遊戲,[作業要求](https://hackmd.io/tsB-kydvSpiqtHK6ZTC4Yg#Agar) - 用 Array 裝小球物件 - 移動時,周圍小球動,主角不動 - 大家記得去填寫 [分組名單](https://hackmd.io/H78OgFzuSqqldBHU18s3zg#Team-1-Example) ### Slides - [Summary](https://hackmd.io/@yencheng/S1w6XbOb_) - [Coordinate System and Shapes](https://hackmd.io/@i2trc2/Bkqc-fV-_) - [Color](https://hackmd.io/@yencheng/Hk5mhNFWO) - [Interactivity](https://hackmd.io/KNPRNo8yTlGLeZMt3nQ4Jw) - [物件導向 (觀念)](https://hackmd.io/@yencheng/BksOTWNbd) - [物件導向 (實作)](https://hackmd.io/c4-FuL-hQ6Oi69YR8QCVOw) - [Array](https://hackmd.io/tsB-kydvSpiqtHK6ZTC4Yg) - [Queue/Stack](https://hackmd.io/@i2trc2/rJVehgaDO) ## 關於 Python 加課的部分 <!-- [下學期](https://hackmd.io/@yencheng/SJSEWVpyO) [opencv](https://hackmd.io/@cy0802/B1xNtVa1O) --> ### Slides [聯課的講義喔喔喔](https://hackmd.io/x9JQEmDVS8OIMqIhwHcVmw) ## 關於 Arduino 加課的部分 ### Slides - [第一次加課](https://hackmd.io/JA-ZMt6zSOWvADLMdndXJg) - [ES-LUX 工作坊](https://hackmd.io/Bbf-0JMgQQOZVy_CtvrZkA) - [ES-LUX 專案原始碼](https://github.com/sciyen/ES-Lux/tree/master/Lux-starter) # 2020 KGHS i2trc2 26th (上) ### For everyone - [Dev安裝教學](https://hackmd.io/@cy0802/HJDdLTnBP) - [Coding Style](https://hackmd.io/@yencheng/r1TkPPxdP) ### Something interesting - [IOCCC](https://zh.wikipedia.org/wiki/%E5%9B%BD%E9%99%85C%E8%AF%AD%E8%A8%80%E6%B7%B7%E4%B9%B1%E4%BB%A3%E7%A0%81%E5%A4%A7%E8%B5%9B) - Best use of python - IOCCC 2018, [video](https://www.youtube.com/watch?feature=youtu.be&t=75&v=6Ak1DC1uBuc&app=desktop) - Donut-shape C code, [video](https://www.youtube.com/watch?v=DEqXNfs_HhY), [Source](https://www.dropbox.com/s/79ga2m7p2bnj1ga/donut_deobfuscated.c?dl=0) - [The 25th IOCCC Winners](https://www.ioccc.org/2018/whowon.html), [wiki](https://zh.wikipedia.org/wiki/%E5%9B%BD%E9%99%85C%E8%AF%AD%E8%A8%80%E6%B7%B7%E4%B9%B1%E4%BB%A3%E7%A0%81%E5%A4%A7%E8%B5%9B#cite_note-4) - 如何讓程式印出來的字串有顏色: [Source 1](https://wenyuangg.github.io/posts/linux/terminal-color.html), [Source 2](https://notes.burke.libbey.me/ansi-escape-codes/) - [Colored printf](https://hackmd.io/G6c31fi9T2ONKwbSkNqlnA) ## 基礎程式組 ### 積點/作業/專題 - [積點兌換表](https://hackmd.io/@yencheng/Hy-NzY3Pw) - [作業上傳雲端連結](https://drive.google.com/drive/folders/1BZPtwmAKW-QW0Rk6r3PsPDa5kdKy91WE?usp=sharing) - **作業繳交期限**: 下次社課之前。 - **作業繳交方式**:每次社課會有一個對應日期的資料夾,請大家 1. 新增自己名字的資料夾(在對應的日期內) 2. judge 完、成功之後 3. 把自己的檔案(程式碼)丟到雲端 - [學期 Project](https://hackmd.io/@yencheng/BJ9rqcKFP) ### Slides - [Lecture 0 寫程式可以幹嘛?](https://docs.google.com/presentation/d/16Bj4oVcHBShnE_mTIDW0399Y7z6mzUVYprjvNLU8LEg/edit?usp=sharing) - [Lecture 1 那些很簡單卻常被忽略的先備知識](https://docs.google.com/presentation/d/1wCfD1SybxD00Tf5XxSVPweJB6NABcRIsrt4erM4iAHk/edit?usp=sharing) - [Lecture 2 關於程式的三大基礎概念](https://hackmd.io/@yencheng/2020KGHS_01#/) - [Lecture 3 案例探討與練習](https://hackmd.io/@yencheng/HJe0C6HPD) - [Lecture 4 Array and Pointer](https://hackmd.io/@yencheng/B1etxjwFD#/) - [Lucture 5 Character Array](https://hackmd.io/@yencheng/ByM91M3qw) - [練習 1: b006: Hello, XXX! (**)](http://www.tcgs.tc.edu.tw:1218/ShowProblem?problemid=b006) - [練習 2: b010: b010: 編碼破解](http://www.tcgs.tc.edu.tw:1218/ShowProblem?problemid=b010) - [練習 3: b011: 字裡玄機](http://www.tcgs.tc.edu.tw:1218/ShowProblem?problemid=b011) - [課堂練習 4: strlen()](https://hackmd.io/@yencheng/ByM91M3qw#/5) - [課堂練習 5: strcmp()](https://hackmd.io/@yencheng/ByM91M3qw#/5https://hackmd.io/@yencheng/ByM91M3qw#/6) - [課堂練習 6: strstr()](https://hackmd.io/@yencheng/ByM91M3qw#/8) - [Project 進度](https://hackmd.io/@yencheng/ByM91M3qw#/6) - [Lecture 6 Sorting](https://hackmd.io/@yencheng/SyJy5fLsv) - [Lecture 7 Project Guildance](https://hackmd.io/@yencheng/ByaQ6H0jP) - [Homework1 Review](https://hackmd.io/@yencheng/H1M-8cxhw) - [Lecture 7 Advanced Syntax](https://hackmd.io/@yencheng/rkAyAuP3v#/) - [期末測驗](https://forms.gle/RA6MFUfk2pUF6Adt6) - 一共五題及三題加分題,請在社課時間完成測驗表單,未做完的題目請在 12/27 (日) 中午 12:00 前上傳至 [這裡](https://drive.google.com/drive/folders/1BZPtwmAKW-QW0Rk6r3PsPDa5kdKy91WE?usp=sharing) - 建議先挑比較有把握的題目寫 ## 關於 Python 加課的部分 ### 安裝教學 - Python - 下載安裝檔 [Python 3.7.9](https://www.python.org/downloads/release/python-379/): 用 Windows 的人可以用 [installer](https://www.python.org/ftp/python/3.7.9/python-3.7.9-amd64.exe) 用 Mac 的人可以用 [mac installer](https://www.python.org/ftp/python/3.7.9/python-3.7.9-macosx10.9.pkg) - 安裝時一定要點選 **Add Python 3. to PATH** - [參考教學1](http://letmegooglethat.com/?q=vscode+%E4%B8%8B%E8%BC%89) [參考教學](https://medium.com/python4u/python%E5%AE%89%E8%A3%9D%E6%95%99%E5%AD%B8-3878c0d7a469) :::warning **Python 安裝疑難排解** 1. `pip install` 總是出問題 可能原因:安裝到太新版本的 python ,試試 `python -V` 或是 `python3 -V` 建議安裝 3.9 以下版本 **解決方法**: 1. 重裝 python (建議) 2. 從 [這邊](https://www.lfd.uci.edu/~gohlke/pythonlibs/) 找到對應的套件跟版本,然後找到下載的 wheel file 執行以下指令 (檔名換成對應的 wheel filename) ```bash pip install wheel_file.whl ``` ::: - VScode VScode 是功能強大的編輯器,支援多種語言及彈性的擴充功能 - 下載 [VScode](https://code.visualstudio.com/) - 建議安裝 python extension ,安裝完後,在左上角有一個綠色旗標,按下去之後就可以執行。 ### Slides - [Lecture 0 Introduction](https://hackmd.io/@yencheng/BkcuQD6vw) - [Lecture 0.1 pipenv](https://hackmd.io/@yencheng/r1yzqakKv) - [Lecture Google Colab](https://hackmd.io/@yencheng/rJmgbtA5v) - [Lecture 1 Syntax - Variables](https://hackmd.io/@yencheng/SkRYWi6DD) - [Lecture 2 Syntax - Control Flow](https://hackmd.io/@yencheng/Byuy66RPw) - [Lecture 3 語法練習 + Data generating](https://hackmd.io/@yencheng/H1mAMf0cv) - [Numpy introduction](https://hackmd.io/@yencheng/HJvAzyxYv) - [Lecture 4 Matplotlib](https://hackmd.io/@yencheng/HkSfZz0qD#/) - [Lecture 5 Grab data from open datasets](https://hackmd.io/@yencheng/BJYkq8Low) - [Colab](https://colab.research.google.com/drive/1p1dfcoaMwH5cD9WfbM2Lp67zvmu70IcI?usp=sharing) - [Lecture 6 Game Simulation](https://hackmd.io/@yencheng/S1E21HAoP) ## 關於 Arduino 加課的部分 ### 安裝教學 - Arduino IDE - [Downloads](https://www.arduino.cc/en/Main/Software) 進入後,windows 使用者建議選擇 `windows installer` ,他也有提供 mac 版本, Donate 頁面時選擇看起來比較不起眼的 **Just Download** 即可下載 ### Slides - [Lecture 0,1,2,3,4](https://drive.google.com/file/d/1ul9vrO5kntP3Jl8lLsrv-hiK01VJWgDu/view?usp=sharing) - [Example Code](https://drive.google.com/drive/folders/1nZul7oOvkNdwY0ONQvjwP9vyP6tPyRTL?usp=sharing) --- #### [Lecturer Intro](https://docs.google.com/presentation/d/1ACzhWRWw4sprH1kBmiXdLbr5yn8CsrEb23oF5NT3TsU/edit?usp=sharing)