課程介紹
1.使學生了解軟體發實務基本知識及意義(知識); 2.能具備軟體開發實務之技能及應用(技能); 3.能具備軟體開發人員之專業態度(態度);
課程活動
-
1.2021秋冬班
-
需繳交, 2021-09-14 1.1 ex1 程式語言排名& Blockly實作
-
閱讀 > 1 分鐘 1.3 軟體開發實務0907
-
閱讀 > 15 分鐘 1.4 2021程式語言排名與類C語言
15:52
-
需繳交, 2021-09-21 1.5 ex2 C++函式與Colab
-
閱讀 > 34 分鐘 1.6 用Google Colab雲端玩C++測Fibonacci費式數列
34:13
-
閱讀 > 1 分鐘 1.7 軟體開發實務Cpp_colab
-
閱讀 > 36 分鐘 1.11 C++13星座與Lookup table
36:06
-
需繳交, 2021-10-05 1.13 ex3 文字版13星座
-
閱讀 > 11 分鐘 1.14 淺談vcpkg安裝opencv realsense2
11:36
-
需繳交, 2021-10-12 1.16 ex4 測試vcpkg與簡易opencv
-
需繳交, 2021-10-19 1.18 ex5 selectRoi
-
需繳交, 2021-10-26 1.20 ex6 boost::multiprecision
-
需繳交, 2021-11-09 1.22 期中作業
-
閱讀 > 34 分鐘 1.23 當代C++實作矩陣乘法
34:48
-
需繳交, 2021-11-09 1.24 ex7 矩陣乘法+operator*
-
需繳交, 2021-11-23 1.26 ex8 卷積應用於影像
-
需繳交, 2021-11-30 1.28 ex9 ROIs
-
閱讀 > 8 分鐘 1.29 簡易C++文字檔fstream讀寫
08:50
-
需繳交, 2021-12-07 1.30 ex10 讀取coco.names
-
需繳交, 2021-12-14 1.33 ex11 yolo
-
需繳交, 2021-12-21 1.35 ex. DARKNET+yolov3+yolov4
-
需填寫, 2021-12-31 1.36 2021課程問卷
-
需繳交, 2021-12-30 1.37 期末影片
-
-
2.程式語言&程式開發軟體2020年程式語言排名。老師少年時學C語言,到現在都還很受用。觀察兩項不同網站排名,用; {的主流程式語言C, C++, Java排名都在前五。Python也在很前面。至於其他的,COBOL因covid-19疫情躍升,Arduino如以程式語言視之,在IEEE Spectrum也進入前十大。網頁用的JavaScript也進入前十大。如果要問老師,學哪種最好,當然要先看目的,也要用適當的開發工具IDE,C/C++就建議用Visual Studio, Code::Blocks, vsCode, Eclipse等等等。有好的工具,才容易上手(對於想要同時兼修Unix技能的,另當別論,不過還是建議用vim,要比vi好,至少指令對了,顏色會對)
真正零基礎的初學者,建議可從支援Blockly技術的Scratch, app inventor 2開始(傳統程式語言畢竟還是語言,以免一開始挫折感太大,弄半天也只會Hello world,始終無法進入程式的本質,還弄壞胃口) https://www.youtube.com/watch?v=71k_oVmxeAY&list=PLYRlUBnWnd5J7BR_o0gJ4NgY1dHXjnzMP
類C的程式語言最好要學,目前都還是主流語言,老師寫程式會考慮效能,偏好用C加上一些C++(老師目前未見有人宣稱C++的所有用法都很會用的):
https://www.youtube.com/watch?v=1yAnzYirwVY&list=PLYRlUBnWnd5LJDTpR1wWNwE6eFeaNFg_L
如果要兼顧ui, 網頁程式,當然可選C#,要比Java易學:
https://www.youtube.com/watch?v=yYWaCr4oXq4&list=PLYRlUBnWnd5IVbYBhvLNuBNUYfSIM2uMN
有了類C的程式語言的基礎後,像是python, R有需求就學。像是python,好學也好用。-
閱讀 > 1 分鐘 2.2 2020年程式語言排名
-
閱讀 > 15 分鐘 2.7 學C語言不會落伍
15:17
-
3.要會自訂函數軟體開發要會模組化,就從自訂函數開始
-
閱讀 > 5 分鐘 3.1 簡易Blockly C++實作傳值函數bmi
05:27
-
閱讀 > 1 分鐘 3.2 模組化與eXtreme Programming
-
需繳交, 2020-09-21 3.3 ex2 請寫一個帶有函數或副程式的C++程式
-
-
4.例外處理&C++ complex class軟體開發要處理例外,只要是系統有輸入,即使僅是數字的輸入,就可能有例外。透過簡易的解一元二次方程式,在程式的層面先引入C++的exception。要學會使用try catch, throw exception。如果要完整解一元二次方程式,C++的complex class就能派上用場(Java核心並無此數學支援,要自己寫)至於if-else if-else,這已經是老生常談。
-
閱讀 > 23 分鐘 4.1 Blocky C++解一元二次方程式,例外處理
23:48
-
閱讀 > 1 分鐘 4.2 CPP解一元二次方程式
-
閱讀 > 1 分鐘 4.3 CPP解一元二次方程式含共軛複數解
-
分數 > 70, 2021-01-02 4.4 if-else &例外處理的程式測驗
-
需繳交, 2020-10-05 4.5 ex3. 解一元二次方程式,用例外處理d<0、流程圖
-
閱讀 > 15 分鐘 4.6 Visual C++算一元二次方程式含共軛複數解
15:25
-
閱讀 > 14 分鐘 4.7 改寫C++ complex複數類別輸出多載算子與數學用法一致
14:46
-
需繳交, 2020-10-05 4.8 ex4 修改程式,加上共軛複數根的處理
-
-
5.C++& openCVOpenCV(Open Source Computer Vision Library),越來越強大,是一個跨平台的電腦視覺函式庫,推進電腦視覺的研究,強調不重新造輪子。由intel發起開發,以BSD授權條款發行,可以在商業和研究領域中免費使用。OpenCV可用於開發即時的圖像處理、電腦視覺以及圖型識別程式。OpenCV用C/C++編寫,主要介面也是C/C++語言,所有新的開發和演算法都是用C++介面。也有整合CUDA的GPU介面。
-
閱讀 > 7 分鐘 5.2 win 10上安裝openCV 4 並設定路徑
07:01
-
閱讀 > 8 分鐘 5.3 微軟vcpkg C++管理套件軟體安裝 boost套件為例
08:33
-
閱讀 > 23 分鐘 5.4 簡易openCV攝影機videoCap cmake C++專案
23:10
-
閱讀 > 1 分鐘 5.5 使用C++ openCV的Mat處理圖片
-
閱讀 > 14 分鐘 5.6 使用C++ openCV操作Raspberry PI攝影機
14:17
-
閱讀 > 21 分鐘 5.7 Visual C++使用openCV處理影像變綠、負片
21:32
-
需繳交, 2020-10-12 5.8 ex5 秀彩色圖與簡易影像處理
-
6.一個圖卡遊戲專案該有什麼
-
閱讀 > 4 分鐘 6.1 C++使用shuffle洗牌陣列
04:08
-
閱讀 > 22 分鐘 6.2 C++ openCV用resize處理大小不一格式不同的圖檔
22:02
-
需繳交, 2020-10-19 6.3 ex6.一陣列resize的圖檔
-
閱讀 > 23 分鐘 6.4 C++ openCV隨機排列 shuffle 一陣列圖以及RGB色階
23:40
-
需繳交, 2020-10-26 6.5 ex7 一陣列圖檔加上shuffle
-
需繳交, 2020-11-10 6.7 ex8 RGB色階洗牌
-
閱讀 > 1 分鐘 6.8 split & merge
-
-
7.openCV C++與多個ROIselectROIs就是選取多個ROI,要搭配C++ vector使用,vector可視為可變化長度的陣列,而不是數學上的向量!!!老派的程式設計師就用指標配置記憶體空間,vector算是C++比較新的用法,新的C++套件大多會採用C++較新的用法,老牌舊版的大概還是以C語言為主,多數程式設計師會用push_back添加資料到尾端,配置記憶體的事就一併處理了,這裡提供的範例也是這樣做。C++ STL vector用法很多元,語法可參考http://eclass.uch.edu.tw/media/6935/
-
閱讀 > 12 分鐘 7.1 opencv C++選取ROI並以綠階處理
12:34
-
閱讀 > 23 分鐘 7.2 Opencv C++選取12星座圖ROIs並以resize、著色處理
23:52
-
閱讀 > 19 分鐘 7.3 C++ STL中的vector介紹與程式示範(含2維陣列表達法)
19:26
-
需繳交, 2020-11-23 7.4 ex9. 練習selectROI
-
閱讀 > 10 分鐘 7.5 精要版用C++ vector表達2D陣列
10:01
-
需繳交, 2020-11-29 7.6 ex10 vector與2D陣列
-
需繳交, 2020-12-07 7.8 ex11 selectROIs
-
-
8.邁向電腦視覺之辨識就使用openCV的dnn,附圖裡還有深度資訊,那個部份本課不玩。model檔(二進位)、prototxt檔(Json格式)老師提供,就不用自己訓練。搭配cv::VideoCapture,學會用webCamera取影格資料。可能還需要一點C++的fstream,讀樹狀資料結構的Json格式文件C++也有外掛。
-
閱讀 > 1 分鐘 8.2 model檔、prototxt檔
-
閱讀 > 1 分鐘 8.3 VideoCapture & dnn範例
-
閱讀 > 26 分鐘 8.5 Visual C++讀寫utf-8編碼有正體漢字的CSV檔
26:33
-
需繳交, 2020-12-14 8.7 ex12 3D模型辨識
-
閱讀 > 8 分鐘 8.8 簡易C++文字檔fstream讀寫
08:50
-
閱讀 > 15 分鐘 8.9 C++自定class、運算子重載與寫檔輸出
15:48
-
需繳交, 2020-12-21 8.10 ex13 fstream+class
-
9.AI著色這張檔案舊照片是黑白的,會是彩色的可是用AI著色。一樣是用caffemodel,軟體改自opencv範列,當中的程式改自openCV的基於richzhang研究結果的範例,當中訓練好的model與prototxt出自於此。保留原程式架構,以一般C/C++語法改寫,以C++的try-catch處理例外exception&,並將圖檔名以原生陣列裝,將圖檔對應的cv::Mat做適度cv::resize,並以for loop處理。處理的圖檔包含黑白、彩色照片。
-
閱讀 > 14 分鐘 9.2 opencv::dnn C++ AI程式把黑白照片變彩色
14:01
-
分數 > 60, 2021-01-02 9.3 測驗:簡化colorization_learn.cpp
-
需繳交, 2020-12-28 9.4 ex14 AI著色,黑白變彩色
-
閱讀 > 17 分鐘 9.5 非同步化async、 openCV銳利化處理AI影片著色C++程式
17:08
-
需繳交, 2021-01-02 9.6 加分作業