Creative Software Project (English) - 105 Academic Year

軟體創意專題 (English) - 105學年度

本課程是由 國立陽明交通大學電機工程學系 提供。

This course aims at developing software projects usable in real-world, and focuses on "learning by doing," "team work," and "research/startup oriented." We will cover fundamental and advanced development tools (git, ROS, OpenCV) in C++ or Python through "Duckietown," an open course "MIT 2.166 Autonomous Vehicles." Students are also welcome to form own teams and propose software projects (Android etc).

(This course is taught in English.)

課程用書:
1. Refactoring: Improving the Design of Existing Code, Martin Fowler.
2. Introduction to Autonomous Robots, Nikolaus Correll, 2015.

為求學習成效完美,請購買課本!

授課教師 電機工程學系 王學誠老師
課程學分 3學分
授課年度 105學年度
授課對象 大學3年級
預備知識 This course involve a fair amount of programming.
 Students who took probability, linear algebra, image processing,
 and computer vision are encouraged to join, but not required.
課程提供 課程影音   課程綱要   課程行事曆  

週次課程內容課程影音
單元1 Introduction to Creative Software Project線上觀看
單元2 Self-­driving Car Related Projects線上觀看
單元3 Assitive Technology Related Projects線上觀看
從視障者的日常生活,尋找創意解決方案 (1/2)線上觀看
從視障者的日常生活,尋找創意解決方案 (2/2)線上觀看
單元4 Duckietown Architecture線上觀看
單元5 Duckietown Line Detector Python & CV線上觀看
單元6 Python Tutorial & Lane Filter線上觀看
【助教報告】
單元6 Duckietown Outreach
線上觀看
【助教報告】
單元6 Jupyter shortcuts
線上觀看
單元7 Lane Filter:Bayes’ Filter線上觀看
【期中報告】
Group name:pacman
Topic:Auto Parking
Group member:洪禎浩、李奕欣、鄭景文
線上觀看
【期中報告】
Group name:topbot
Topic:自動跟隨式搬運機器人
Group member:歐彥宏、梁端凱、舒建傑、梁譯升
線上觀看
【期中報告】
Group name:duckroach
Topic:Duckiebot controller
Group member:何登昇、廖品崴、邱冠彰
線上觀看
【期中報告】
Group name:ffffteam
Topic:自動停車系統
Group member:郭翊慶、蔡承縉、邱泓諭、盧昱彰
線上觀看
【期中報告】
Group name:hercules
Topic:Tiny Waiter
Group member:郜漢光、呂宗哲、張碩文
線上觀看
【期中報告】
Group name:sokoban
Topic:Laborer for U
Group member:林昂陽、徐湘權、唐英瀚、徐玠
線上觀看
【期中報告】
Group name:littlecar
Topic:抓蟲機器車 and Roadside assistance robot
Group member:陳炯勛、曾思榮、林展維、陳怡君
線上觀看
【期中報告】
Group name:agribot
Topic:農業機器人
Group member:李云漢、呂紹篁、葉鎧瑋
線上觀看
【期中報告】
Group name:carryou
Topic:自動推車
Group member:陳冠宏、蔡秉燊、吳昇彥、徐傳恩
線上觀看
【期中報告】
Group name:buyme
Topic:救難小英雄
Group member:黃子桓、林彥廷、沈依儒、王郁馨
線上觀看
【期中報告】深入報告與討論線上觀看
單元10 Object Detectors線上觀看
【助教報告】
單元10 Object Detectors
線上觀看
單元11 Path Planning線上觀看
【助教報告】
單元11 Path Planning
線上觀看
單元12 Problem Formulation線上觀看
【助教報告】
單元12 Problem Formulation
線上觀看
單元13 Duckietown Unit Test線上觀看
【助教報告】
單元13 Duckietown Unit Test
線上觀看
【實際測試】
單元13 Duckietown Unit Test
線上觀看
單元14 Duckietown Description線上觀看
【助教報告】
單元14 Duckietown Description
線上觀看
【實際測試】
單元14 Duckietown Description
線上觀看
【期末報告】
Group name:buyme
Topic:救難小英雄
Group member:黃子桓、林彥廷、沈依儒、王郁馨
線上觀看
【期末報告】
Group name:carryou
Topic:自動推車
Group member:陳冠宏、蔡秉燊、吳昇彥、徐傳恩
線上觀看
【期末報告】
Group name:agribot
Topic:農業機器人
Group member:李云漢、呂紹篁、葉鎧瑋
線上觀看
【期末報告】
Group name:littlecar
Topic:抓蟲機器車 and Roadside assistance robot
Group member:陳炯勛、曾思榮、林展維、陳怡君
線上觀看
【期末報告】
Group name:littlecar
Topic:抓蟲機器車 and Roadside assistance robot
Group member:陳炯勛、曾思榮、林展維、陳怡君
線上觀看
【期末報告】
Group name:sokoban
Topic:Laborer for U
Group member:林昂陽、徐湘權、唐英瀚、徐玠
線上觀看
【期末報告】
Group name:hercules
Topic:Tiny Waiter
Group member:郜漢光、呂宗哲、張碩文
線上觀看
【期末報告】
Group name:ffffteam
Topic:自動停車系統
Group member:郭翊慶、蔡承縉、邱泓諭、盧昱彰
線上觀看
【期末報告】
Group name:duckroach
Topic:Duckiebot controller
Group member:何登昇、廖品崴、邱冠彰
線上觀看
【期末報告】
Group name:topbot
Topic:自動跟隨式搬運機器人
Group member:歐彥宏、梁端凱、舒建傑、梁譯升
線上觀看
【期末報告】
Group name:pacman
Topic:Auto Parking
Group member:洪禎浩、李奕欣、鄭景文
線上觀看
課程回顧線上觀看

課程目標

This course aims at developing software projects usable in real-world, and focuses on "learning by doing," "team work," and "research/startup oriented." We will cover fundamental and advanced development tools (git, ROS, OpenCV) in C++ or Python through "Duckietown," an open course "MIT 2.166 Autonomous Vehicles." Students are also welcome to form own teams and propose software projects (Android etc).

 

課程章節

章節 章節內容
單元一Introduction to Creative Software Project
單元二Self-­driving Car Related Projects
單元三 Assitive Technology Related Projects
單元四Duckietown Architecture
單元Duckietown Line Detector Python & CV
單元六 Python Tutorial & Lane Filter
單元七Lane Filter:Bayes’ Filter
單元十Object Detectors
單元十一 Path Planning
單元十二 Problem Formulation
單元十三Duckietown Unit Test
單元十四Duckietown Description


課程書目

1. Refactoring: Improving the Design of Existing Code, Martin Fowler.
2. Introduction to Autonomous Robots, Nikolaus Correll, 2015.


課程參考資料

1. http://duckietown.mit.edu/
2. http://news.mit.edu/2016/self-driving-cars-meet-rubber-duckies-0420

 

評分標準

學期作業
Students will work in teams, with 2-3 people who have diverse background for collaborative efforts in hardware and software. Each team can choose either 1) a challenge in “Duckietown” or 2) your choice of project to be useable for at least one real person (client).

考試狀況
There will be midterm/final presentations and in-class quiz/discussions.

評量方法
Class Participation, In Class Quiz, Problem Sets (10%)
Midterm Presentation (30%)
Final Presentation (30%)
Project Report & Demo Video (30%)

本課程行事曆提供課程進度與考試資訊參考。

學期週次
上課日期
參考課程進度

第一週

2016/09/12
  • Introduction to Creative Software Project
第二週2016/09/19
  • Projects Related Self-driving Vehicles
第三週2016/09/26
  • Projects Related to Assistive Technology
第四週2016/10/03
  • Duckietown System Diagram; Git Tutorial; Middleware: ROS & LCM
第五週2016/10/10
  • Holiday (doing Lane Following at Home)
第六週2016/10/17
  • Line Detector & Ground Projection Packages; OpenCV
第七週2016/10/24
  • Lane Filter Package; Python & C++ Code Reading
第八週2016/10/31
  • Refactoring: What is it and why you should refactor
第九週2016/11/07
  • Midterm: Project Presentation
第十週2016/11/14
  • Refactoring: find where you should refactor 
第十一週2016/11/21
  • Code Review
第十二週2016/11/28
  • Software Testing
第十三週2016/12/05
  • Project Session (1) Team 1 to 4 
第十四週2016/12/12
  • Project Session (2) Team 5 to 8 
第十五週2016/12/19
  • Project Session (3) Team 9 to 12 
第十六週2016/12/26
  • Footwear Transport Challenge 
第十七週2017/01/02
  • Holiday 
第十八週2017/01/09
  • Final Exam/Presentation