Creative Software Project (English) - 105 Academic Year

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

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.)

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

For perfect learning results, please buy textbooks!

Instructor(s) College of Electrical and Computer Engineering Prof. Xue-Cheng Wang
Course Credits 3 Credits
Academic Year 105 Academic Year
Level Junior
Prior Knowledge 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.
Related Resources Course Video   Course Syllabus   Course Calendar  

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

課程目標

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