## Welcome to ### 107-2 Ric's Web Programming Class --- ### 課程緣起 * Open source movement, modern web techniques, global software business trends… 這些似乎都跟電機系的課... 沒有關係? * 即使是熱門如 AI, 如果沒有工程技術的配合,也是無法真正對我們的生活造成 impacts --- ### BUT... * (Disclaimer) 網路的技術實在是進步太快了!我也無法完全的 follow 到,而我也沒有那麼多時間去寫網頁練習 * 如果你期待這門課會像 DSnP (資料結構與程式設計) 那樣有完整的教材、我可以隨時回答你的各種問題,那你可能是走錯棚了... --- ### So... 這學期如果要修這門課,正確的心態應該是: * 跟著課程進度「自學」 * 多多參與討論(physically or in FB group) * 課前 readings 以及 homeworks 務必要能跟上 * 請每堂課都帶筆電過來 (Linux or Mac OS is required) --- ### 以培養「全端工程師」為目標: 包含前端介面、後端伺服器、資料庫、甚至是 web/internet admin 的基本觀念 --- 去年的 final project list ([details](https://www.facebook.com/groups/NTURicWebProg/)) ![](https://i.imgur.com/IwlxZ56.png) --- ### 上課方式 -- Example-Driven Lecture 根據每週的 topic 會有一個 example, 上課時會帶大家把這個 example 從 0(or some 殼子) 做到過半完成,剩下的部分會變成大家回家的練習或是作業 --- ### Syllabus (1/5) | Date | Contents | Examples | | ----- | -------- | -------- | | 02/20 | Class Introduction <br> Intro to HTML+CSS | Homepage | | 02/27 | Intro to JavaScript | Image Viewer | | 03/06 | More on JavaScript | TODO List (pure JS) | | 03/13 | More on JavaScript + p5.js + Git Flow | Flappy Bird (on github) | --- ### Syllabus (2/5) | Date | Contents | Examples | | ----- | -------- | -------- | | 03/20 | Classes in JS <br> Intro to React.js | Simple Blog Page <br>in React | | 03/27 | More on React.js | TODO List | | 04/03 | **Spring Break** | (React) Calculator | | 04/10 | More on React.js <br> React Router | Mini Blog Page | --- ### Syllabus (3/5) | Date | Contents | Examples | | ----- | -------- | -------- | | 04/17 | Promise / Async-Await <br> HTTP/Express/Middleware <br> Cloud + VM | Mini Blog Server | | 04/24 | Node.js + Database | Complete Blog Page | | 05/01 | **F8 (no class)** | **N/A** | | 05/08 | Midterm Practice | TBA | --- ### Syllabus (4/5) | Date | Contents | Examples | | ----- | -------- | -------- | | 05/15 | npm / Babel / Webpack / Oauth | Complete Blog Service | | 05/22 | Redux + GraphQL | Mini Social Network | | 05/29 | More on Database and Data Analytics | TBD | | 06/05 | Project Design / Testing | TBD | --- ### Syllabus (5/5) | Date | Contents | Examples | | ----- | -------- | -------- | | 06/12 | Open-Source Project: Bottender.js | Chatbot | | 06/19 | **Final Exam Week (no class, no exam)** | **N/A** | | 06/26 | **Final Project Presentation** | **N/A** | --- ### 評分方式 * Practice: 10% * Homework: 30% * Midterm Practice: 20% * Final Project: 40% **Final score will be linearly adjusted based on overall performance** --- ### Practice (10%) * 一般較簡單的課堂 examples,約 6 ~ 8 個 * Deadline: 9pm on Sunday * Practice 就是 practice, 本身不被評分 * 同學互相給 comments,TA 會挑選一些認真的 comments 給 bonus points * 學期 practice score (10%) 會根據 bonus 來做調整 (e.g. 6 ~ 10) --- ### Homework (30%) * 大約 3 ~ 4 個階段性比較完整的 in-class examples * Deadline: default at 9pm on Tuesday * TA 批改 & 評分 (hopefully 會先給評分標準) * (Maybe) 會挑一些做得比較好的給大家做參考 --- ### Midterm Practice (20%) * Individual work * 題目自訂 (但會有些規定) * 05/08 課堂 demo (視人數而定) --- ### Final Project (40%) * Team project (原則上是 1 ~ 3 人一組) * 分數原則上是以組為評分單位,但會考量 individual contributions * 06/26 Final Project Presentation (視人數而定) --- ### 作業抄襲? Well, 除非太明顯助教一眼就看出來, 否則我懶得抓抄襲了。 作業抄襲沒有學到東西,就算拿到分數, 也是你的損失。 --- ### 修課 or 旁聽? * 不開放旁聽 * 基本上如果沒有跟上所有的 assignments, 旁聽也只是浪費彼此的資源 * 線上其實已經有非常豐富的教學資源 --- ### 修課 or 旁聽? * 那我應該要修課嗎? * 跟 DSnP 一樣,這門課沒有考試,但會有像海浪一樣的作業每週來襲 * 課程前後有連貫,如果無法全學期 commit, 建議不要來修課,免得到時候還要來停修 --- ### 加選方式 * 呃,因為一些作業失誤,本來這門課是二類選修 (i.e. 需要授權碼),後來變成三類選修(註),所以真心想要修課的人請自行上網選修吧... ps. 第三類選修:教師有設定修課人數上限,擬修課學生上網登記後,教務處於網路加選期間,依各課程之剩餘名額進行四次分發作業。 --- ### 課程 (websit & Ceiba & FB) * 課程講義:https://ric2k1.github.io/ * Ceiba:應該是不會用... * FB 討論版:https://www.facebook.com/groups/NTURicWebProg/ --- ## End --- ## 附註一:請立即完成 Github 帳號開設 --- ### 1. 使用 ntu 信箱辦理 [GitHub](https://github.com/) 帳號 * 已用 NUT e-mail 使用 GitHub 者,go to 2 * 申請 Github Education較方便(才能免費使用 private 功能) * 日後還可以綁定其他常用信箱 * 已有 GitHub帳號者請新增 NTU Mail 並暫時將他設為主要信箱 --- ### 2. 使用此帳號申請 [學生版附加功能](https://education.github.com/) * 點選右上角 Join Github Education * 勾選 Student/Individual account * 勾選 ntu 信箱 * 在 How do you plan to use Github? 填寫 “For NTU Web Programming Lecture” * 點選 Submit Request (通常需要一到三天時間) --- ### 3. 開設本課程專用之 Repository (repo) * 請將 repo 命名為 WebProg2019 * 請將 repo 權限設定為 private * 若命名或者權限有任何問題,將可能導致作業0分,請務必注意 --- ### 4. 將助教以及老師加入該 repo 的協作者 (Collaborator) * 助教的帳號為:cjs840312 * 老師的帳號為:ric2k1 --- ### 5. 填寫 repo form, 以利作業批改 * [Repo Form](https://goo.gl/forms/16FSJ0UW2xPCgD7t2) * github repo url 請填 SSH --- ### 6. 加入 FB 社團 * 為了分享 project 以及參與討論,請加入 [Ric's Web Programming Class FB 社團](https://www.facebook.com/groups/NTURicWebProg) --- ## 附註二: ## HW + Practice Policy --- 每份作業請根據以下格式 在 **WebProg2019** 開設底下的目錄: * 例如: * HW1/ * HW1/own/ * HW1/review/ --- **own/** 目錄是用來存放自己寫的作業 請務必在 deadline 前將作業 push 到該目錄,助教會在 deadline 剛過就把你的作業 clone 回來 --- (For Practice 作業) 助教會隨機把另外一位學生的作業 push 到 **review/** 目錄,請在 review deadline 之前將你的 comments 用 [markdown 格式](https://markdown.tw/) 寫到 **comment.md** 檔案內 助教之後會再把大家寫的 **comment.md** 放至被 reviewed 的同學的 **own/** 目錄底下
{"metaMigratedAt":"2023-06-14T20:15:41.095Z","metaMigratedFrom":"YAML","title":"Class Intro","breaks":true,"slideOptions":"{\"theme\":\"league\",\"transition\":\"fade\",\"slidenumber\":true}","contributors":"[{\"id\":\"ae1d234d-f143-4cee-92b5-e303abdd6d82\",\"add\":153,\"del\":153},{\"id\":\"752a44cb-2596-4186-8de2-038ab32eec6b\",\"add\":5478,\"del\":93}]"}
    2899 views
   owned this note