Responsive image

第 12 期電腦科學概論 & 程式設計思維入門共學營

computer-science

目標對象

  1. 買了一堆程式設計書籍和線上課程但覺得內容過多無法消化的學習者
  2. 非資訊相關科系但對於程式設計和電腦科學/計算機概論有興趣的一般民眾
  3. 想要自學程式設計和電腦科學但不得其門而入的自學者
  4. 具備基礎電腦操作能力但想要建立基本程式設計觀念和撰寫簡單生活應用的學習者
  5. 從事 PM 產品經理或是 UI/UX 使用者經驗研究但對於電腦背後運作邏輯有興趣的專業工作者
  6. 曾經或正在自學程式設計卻因為沒有導師和戰友可以交流討論,最後放棄的學習者
  7. 本共學營不適合:已經掌握基礎程式設計觀念和電腦科學基礎及專案開發能力的同學

預期收穫

  1. 建立基本電腦科學和程式設計基本觀念,打好未來學習程式語言相關課程基礎
  2. 學習電腦科學和程式設計背後運作的邏輯,當家人朋友甚至小孩問你時不會驚慌失措
  3. 累積 4 大專題作品實作經驗,建立基本資訊應用能力
  4. 學習如何撰寫個人技術文章,強化記憶並養成技術文章部落格寫作習慣
  5. 認識一群志同道合的戰友和同學,組成讀書會或共學團隊
  6. 透過導師及同學解惑去除自學程式單打獨鬥的學習盲點
  7. 建立未來自學程式設計和跨領域自學能力並對未來自學程式設計方向更加了解

事前準備

  1. 本共學營因涉及學習範圍較廣,雖無基礎可以學習但若有 Python 或其他程式語言基礎會更容易學習,若無則需要多花時間在課程和自我學習上。需要具備基本電腦操作能力和中英文閱讀查找資料能力(若為完全初學者建議可先從另外一門 Python 程式設計入門共學營打好基礎)
  2. 請安排共學營期間至少一週約有 6-12 小時(根據學員程度不同所需時間不同)可以撰寫作業任務和學習相關內容(共 8 + 4 週 24 堂,含 4 週期末專題)
  3. 本共學營採線上進行,準備一個可以上網的電腦,不限作業系統(課程主要將以 Windows/MacOS 講解,但會補充 Linux 操作方式)就可以隨時隨地學習
  4. 本共學營會使用 Scratch、C 語言、Python、JavaScript 輔以 App Inventor 和 SQL 等技術講解,本課程著重廣度而非深度,希望讓學員對於電腦科學和程式設計相關應用知識有全面性的入門認識,成為每個人的計算機概論和程式設計入門課程
  5. 請先註冊全球最大程式設計程式碼分享平台 Github 個人帳號

詳細內容介紹


目錄大綱

開營介紹
1 課程活動進行方式
2 作業任務提交方式
3 Markdown 語法入門教學
4 社群共學討論方式
5 課程活動獎勵方式
6 規劃你的學習計劃
7 總結
電腦硬體與軟體及數位資料表示
1 計算機/電腦簡史
2 數位邏輯判斷
3 數位資料表示法
4 隨堂練習:網頁 RGB 顯示顏色
5 隨堂練習參考解答:網頁 RGB 顯示顏色
6 ASCII、Unicode 編碼系統
7 隨堂練習:取出字串對應碼
8 隨堂練習參考解答:取出字串對應碼
9 電腦組織架構 & 馮紐曼模式
10 電腦如何執行程式?
11 總結
運算思維與流程圖(Scratch)
1 運算思維概論
2 什麼是程式設計?
3 學習流程圖(Flow Chart)
4 隨堂練習:判斷成績及格小程式
5 隨堂練習參考解答:判斷成績及格小程式
6 Scratch 環境介紹
7 使用 Scratch 認識程式邏輯:循序處理(sequence)
8 使用 Scratch 認識程式邏輯:變數宣告(variable)
9 使用 Scratch 認識程式邏輯:使用者輸入(input)
10 使用 Scratch 認識程式邏輯:輸出畫面(output)
11 使用 Scratch 認識程式邏輯:條件判斷(conditional control)
12 使用 Scratch 認識程式邏輯:重複迴圈(loop)
13 使用 Scratch 認識程式邏輯:事件處理(event handle)
14 使用 Scratch 認識程式邏輯:函式(function)
15 隨堂練習:Scratch 判斷成績小程式
16 隨堂練習參考解答:Scratch 判斷成績小程式
17 總結
程式語言概論 I(C 語言)
1 C 語言基礎概念
2 第一個 C 語言程式
3 隨堂練習:第一個 C 語言程式
4 隨堂練習參考解答:第一個 C 語言程式
5 C 語言變數與輸出函式
6 隨堂練習:印出使用者名字
7 隨堂練習參考解答:印出使用者名字
8 C 語言資料型別
9 C 語言字元與字串
10 隨堂練習:字元與字串
11 隨堂練習參考解答:字元與字串
12 C 語言運算子與運算元
13 隨堂練習:運算子與運算元
14 隨堂練習參考解答:運算子與運算元
15 C 語言計算運算子
16 隨堂練習:計算運算子
17 隨堂練習參考解答:計算運算子
18 C 語言輸入運算子
19 隨堂練習:輸入函式
20 隨堂練習參考解答:輸入函式
21 C 語言 if else 條件判斷
22 隨堂練習:判斷年齡
23 隨堂練習參考解答:判斷年齡
24 總結
程式語言概論 II(C 語言)
1 重複迴圈(loop)概論
2 隨堂練習:for 迴圈
3 while 迴圈
4 隨堂練習:while 迴圈
5 do...while 迴圈
6 隨堂練習:do...while 迴圈
7 迴圈中斷 break
8 隨堂練習:迴圈中斷 break
9 迴圈中斷 continue
10 隨堂練習:迴圈中斷 continue
11 無窮迴圈
12 switch 判斷
13 隨堂練習:switch 判斷
14 陣列(array)概論
15 隨堂練習:陣列操作
16 指標(pointer)概論
17 隨堂練習:指標概論
18 函式概論
19 隨堂練習:函式操作
20 總結
Python 程式概論、變數與運算式
1 Python 程式概論
2 Python 世界都是物件
3 隨堂練習:將字串物件轉成大寫
4 註解
5 變數(variable)
6 隨堂練習:輸出變數位址
7 變數命名
8 隨堂練習:變數命名
9 Python 基本資料型別
10 型別轉換
11 隨堂練習:資料型別
12 螢幕輸入輸出
13 隨堂練習:螢幕輸入輸出
14 運算式
15 運算子與運算元
16 隨堂練習:運算子與運算元
17 總結
Python 字串物件與容器物件
1 Python 字串物件
2 隨堂練習:字串物件操作方式
3 Python 可變物件(mutable)和不可變物件(immutable)的差異
4 隨堂練習:動手試試看可變物件(mutable)和不可變物件(immutable)的差異
5 Python 容器物件
6 Python tuple 容器物件
7 隨堂練習:tuple 容器物件
8 Python list 容器物件
9 隨堂練習:list 容器物件
10 Python set 容器物件
11 隨堂練習:set 容器物件
12 Python dict 容器物件
13 隨堂練習:dict 容器物件
14 C 語言 struct 結構
15 隨堂練習:C 語言 struct 結構
16 總結
流程控制(control flow)與迴圈(loop)
1 流程控制基礎
2 Python 條件判斷基礎
3 隨堂練習:循序執行
4 Python 語法:if else
5 Python for 迴圈基礎
6 隨堂練習:for 迴圈
7 for 迴圈取出 list 元素
8 隨堂練習:for 迴圈取出 list 元素
9 隨堂練習:for 迴圈 enumerate
10 for 迴圈取出 dict 元素
11 隨堂練習:for 迴圈取出 dict 鍵
12 隨堂練習:for 迴圈取出 dict 元素 items
13 Python while 迴圈
14 隨堂練習:while 迴圈
15 無窮迴圈
16 break 使用方式
17 隨堂練習:break 使用方式
18 continue 使用方式
19 隨堂練習:continue 使用方式
20 FAQ 常見問題
21 總結
函式(function)、類別與物件
1 Python 函式基礎
2 Python 自定義函式
3 隨堂練習:自定義函式
4 全域變數與區域變數
5 隨堂練習:全域變數與區域變數
6 Python 常用內建函式
7 隨堂練習:Python 常用內建函式
8 Python 類別基礎
9 Python 自訂類別
10 隨堂練習:Python 類別基礎
11 Python 套件/模組基礎
12 自定義 Python 模組
13 自定義 Python 套件
14 隨堂練習:自定義 Python 套件/模組
15 使用內建和第三方套件/模組
16 隨堂練習:使用內建和第三方套件/模組
17 總結
使用模組套件與環境設定
1 Python 開發環境建置
2 安裝 Anaconda
3 使用 Terminal & Command Line Prompt (CMD)
4 Windows 作業系統 CMD
5 MacOS / Linux 作業系統終端機
6 常用指令碼
7 Windows 和 MacOS/Linux 常見指令對照
8 使用 pip 管理第三方套件指令
9 使用 Jupyter Notebook
10 使用 Visual Studio Code
11 環境設定常見問題
12 總結
基礎資料結構概論
1 資料結構基礎概念
2 陣列(array)
3 隨堂練習:陣列(array)
4 鏈結串列(linked list)
5 隨堂練習:鏈結串列(linked list)
6 佇列(queue)
7 隨堂練習:佇列(queue)
8 堆疊(stack)
9 隨堂練習:堆疊(stack)
10 樹(tree)
11 圖形(graph)
12 總結
基礎演算法概論
1 演算法基礎概念
2 演算法的定義
3 時間複雜度(Time Complexity)
4 空間複雜度
5 遞迴演算法(Recursion)
6 隨堂練習:遞迴演算法(Recursion)
7 排序演算法(Sort)
8 泡沫排序(Bubble Sort)
9 隨堂練習:泡沫排序(Bubble Sort)
10 選擇排序(Selection sort)
11 隨堂練習:選擇排序(Selection sort)
12 循序搜尋(Sequential Search)
13 隨堂練習:循序搜尋(Sequential Search)
14 二分搜尋(Binary Search)
15 隨堂練習:二分搜尋(Binary Search)
16 總結
作業系統與檔案系統基礎
1 作業系統概論
2 CPU 中央處理器管理
3 Memory 記憶體管理
4 Input/Output 週邊裝置管理
5 常見作業系統
6 File 檔案管理
7 Python 檔案處理
8 Python 開關檔案
9 Python 讀取檔案
10 隨堂練習:讀取檔案
11 Python 寫入檔案
12 隨堂練習:寫入檔案(覆寫)
13 隨堂練習:寫入檔案(寫到最後)
14 終端機指令列基礎
15 Windows 和 MacOS/Linux 常見指令對照
16 總結
網路概論與 Web 網頁應用基礎
1 網路服務是如何運作的呢?
2 OSI 參考模型和 TCP/IP 模型
3 隨堂練習:終端機網路指令操作
4 HTTP 通訊協定基礎
5 隨堂練習:HTTP 網路請求
6 Web 網頁基礎概論
7 HTML 基礎概論
8 CSS 基礎概論
9 隨堂練習:HTML/CSS 基礎
10 JavaScript 基礎概論
11 隨堂練習:JavaScript 基礎
12 總結
資料庫基礎與 SQL 入門
1 關聯式資料庫概要
2 關聯式資料庫的架構
3 繪製 ER 實體關聯模型圖
4 SQL 基本概要和分類
5 CREATE 建立資料庫/資料表
6 DROP 刪除資料庫/資料表
7 ALTER 修改資料表結構
8 INSERT 插入資料
9 SELECT 查詢資料
10 UPDATE 更新資料
11 DELETE 刪除資料
12 隨堂練習:透過 SQL 語法新增股票資料
13 總結
Mobile App 行動應用專案實作 I
1 Mobile 行動應用開發基礎
2 App Inventor 簡介
3 App Inventor 開發環境介紹 I
4 App Inventor 開發環境介紹 II
5 App Inventor 開發環境介紹 III
6 App Inventor 實作程式功能
7 使用模擬器測試
8 總結
Mobile App 行動應用專案實作 II
1 顯示清單元件與清單顯示器、Dictionaries
2 微型資料庫
3 抓取網路資料
4 JSON 資料格式基礎
5 開放資料專案實作:功能和使用者介面設計
6 主要程式邏輯設計
7 總結
JavaScript 網頁應用專案實作 I
1 JavaScript 程式語言概論
2 JavaScript 開發和執行環境
3 隨堂練習:JavaScript 程式語言概論
4 變數與運算子
5 隨堂練習:變數與運算子
6 陣列與物件
7 隨堂練習:陣列與物件
8 條件判斷
9 隨堂練習:邏輯判斷
10 重複迴圈
11 隨堂練習:重複迴圈
12 函式
13 隨堂練習:函式
14 總結
JavaScript 網頁應用專案實作 II
1 DOM API 基礎概論
2 DOM API 選擇器使用
3 隨堂練習:DOM API 基礎
4 事件(event)處理基礎
5 隨堂練習:事件(event)處理基礎
6 定時器 setTimeout、setInterval
7 隨堂練習:定時器 setTimeout、setInterval
8 JavaScript Web 小遊戲專案實作
9 隨堂練習:介面設計
10 程式邏輯設計
11 隨堂練習:程式邏輯設計
12 總結
Python 桌面應用程式專案實作 I
1 Python 桌面應用程式專案實作概論
2 在 repl.it 雲端編輯器使用 tkinter
3 本機電腦開發使用 tkinter 模組 I
4 本機電腦開發使用 tkinter 模組 II
5 本機電腦開發使用 tkinter 模組 III
6 本機電腦開發使用 tkinter 模組 IV
7 隨堂練習:Hello World 第一個桌面應用程式
8 建立按鈕元件和監聽事件處理
9 隨堂練習:建立按鈕元件和監聽事件處理
10 更新屬性值
11 隨堂練習:更新屬性值
12 輸入框元件
13 隨堂練習:輸入框元件練習
14 群組化與元素定位方式
15 隨堂練習:群組化與元素定位方式
16 總結
Python 桌面應用程式專案實作 II
1 BMI 專案規劃
2 建立 BMI App 主視窗
3 BMI 專案實作:基本程式架構設計
4 隨堂練習:建立主視窗
5 建立 BMI App 元件
6 隨堂練習:建立 BMI App 元件
7 建立 BMI App 事件處理
8 完整專案程式碼
9 隨堂練習:建立 BMI App 事件處理
10 總結
Python 資料處理應用專案實作 I
1 Python 檔案操作概念複習
2 Python 讀取檔案
3 Python 寫入檔案
4 with as 檔案操作
5 隨堂練習:with as 檔案操作
6 CSV 檔案操作
7 寫入 csv 檔案
8 隨堂練習:寫入 csv 檔案
9 讀取 csv 檔案
10 隨堂練習:讀取 csv 檔案
11 Excel 檔案操作
12 寫入 excel 檔案
13 隨堂練習:寫入 Excel 檔案(指定欄位)
14 隨堂練習:寫入 Excel 檔案(使用 list)
15 讀取 excel 檔案
16 隨堂練習:讀取 Excel 檔案
17 JSON 檔案操作
18 寫入 JSON 檔案
19 隨堂練習:寫入 JSON 檔案
20 讀取 JSON 檔案
21 隨堂練習:讀取 JSON 檔案
22 總結
Python 資料處理應用專案實作 II
1 學習環境準備
2 Python 資料處理應用專案實作 I
3 Python 資料處理應用專案實作 II
4 Python 資料處理應用專案實作 III
5 Python 資料處理應用專案實作 IV
6 Python 資料處理應用專案實作 V
7 專案完整程式碼
8 隨堂練習:Python 資料處理應用專案實作
9 總結
期末專題與課程回顧
1 課程整合與回顧
2 期末專題規劃
3 未來學習地圖
4 總結

講師介紹


happycoder | 營運團隊 @ HappyCoder 自學程式設計學院

我們希望透過自學程式設計的方式培養學員擁有:學習跨領域知識的自學能力、數位工作力、運算思維以及解決問題的能力。讓學員在面對未來科技快速變遷和競爭激烈的職場環境中擁有更好的適應能力,成為更好的自己!




FAQ 常見問題

  1. 課程購買後即可於平台存續期間不限次數重複觀看使用
  2. 本課程開放問答與社群討論功能,歡迎使用與講師和創作者交流討論
  3. 支持更多優質內容,請尊重創作者智慧財產權