課程資訊
課程名稱
網站資料庫程式設計
Website Database Programming 
開課學期
105-2 
授課對象
共同教育組  
授課教師
陳 琨 
課號
CSX2003 
課程識別碼
H03 02030 
班次
01 
學分
1.0 
全/半年
半年 
必/選修
選修 
上課時間
星期三10,A,B(17:30~20:10) 
上課地點
普202 
備註
Intensive courses。初選不開放。密集課程。第1-6週上課,第一堂未到視同放棄,自備筆電,基本能力課程,。基本能力課程。
總人數上限:30人 
Ceiba 課程網頁
http://ceiba.ntu.edu.tw/1052CSX2003_01 
課程簡介影片
 
核心能力關聯
本課程尚未建立核心能力關連
課程大綱
為確保您我的權利,請尊重智慧財產權及不得非法影印
課程概述

Node.js 是 Ryan Dahl 基於 Google 的 V8 引擎於 2009 年釋出的一個 JavaScript 開發平台、開放原始碼、跨平台的、可用於伺服器端和網路應用的執行環境。
由於Node.js以單執行緒執行,使用非阻塞I/O呼叫,這樣既可以支援數以萬計的並行連線,又不會因多執行緒本身的特點而帶來麻煩。眾多請求只使用單執行緒的設計意味著可以用於建立高並行應用程式。
MongoDB 是種 NoSQL 資料庫,將資料儲存為一個文件,資料結構由鍵值(key=>value)成對組成。MongoDB 文件類似於 JSON 物件,欄位值可以包含其他文件,陣列及文件陣列。由於採用JSON格式儲存資料,可以完美的與 Node.js 結合,大大提升資料表示的可能性,同時相符於前端開發對於資料需求的格式,有效的資料格式規劃,將可大大降低開發複雜度,並有利於網路資料上的交換。

*每週進度及教學內容概述*
第1週
 Node.js 介紹與開發環境安裝
 Node.js 模組機制及 NPM 的使用
 Github 的基本使用
第2週
 瞭解網頁伺服器的運作
 利用 Node.js撰寫簡單的靜態網頁伺服器
 如何將 Web 應用程式佈署到 Azure 主機上
第3週
 瞭解 NoSQL 資料庫
 資料庫的四大基本功能 CRUD
 如何將 MongoDB 發佈至 Azure主機上 的 DocumentDB
第4週
 以記帳本為例開發 Web API - 1
第5週
 以記帳本為例開發 Web API - 2
第6週
 成果發表

本堂課會提供每位學生一個 Azure 帳號使用,於發放日至 6/30 之間可免費使用 

課程目標
1.搭配前端網站課程,讓學生能瞭解整個網站前端與後端的開發流程
2.培養學生完成開發後端的能力以及學習資料庫的使用
 
課程要求
*加選規則*
1.非電機資訊學院學生優先加選。
 * 本課程的設計是讓更多非本科系的學生能接觸到程式設計,在人數有限的情況下,才會如此限制,希望能照顧到更多非本科系。
2. 能確定每次上堂課都能參與,並且樂於在上課時與老師及其它同學互動優先。
3. 如選課人數過多,確定要選的同學先簽名,最後再由老師根據HW0的成績寄信發授權碼

*HW0 要求*
1.註冊 Github 和安裝 GitHub Desktop
2.註冊 Microsoft 帳戶,才能在下週上課前幫忙開通 Azure 主機
 *未註冊的同學請使用 hotmail 或 gmail 申請
 *目前使用學校信箱註冊會有問題
3.利用 Node.js 撰寫 Hello Word,並且將程式碼發佈至 Github 上

*上課時會使用的軟體*
作業系統:Windows 7 以上
瀏覽器:Google Chrome (https://www.google.com/chrome)
編輯軟體:Visual Studio Code (https://code.visualstudio.com/)
編譯程式:Node.js v7.5.0 (https://nodejs.org/en/)
版本控制:GitHub Desktop (https://desktop.github.com)
資料庫:MongoDB 3.4.2 (https://www.mongodb.com/) 
預期每週課後學習時數
 
Office Hours
 
指定閱讀
待補 
參考書目
書名:不一樣的Node.js:用JavaScript打造高效能的前後台網頁程式 第二版
作者:錢逢祥, 蔡政崇, 林政毅
出版社:松崗
出版日:2015年11月23日
ISBN:9789572244753
語言:中文繁體
參考網址:http://www.books.com.tw/products/0010697535
 
評量方式
(僅供參考)
 
No.
項目
百分比
說明
1. 
上課參與 
20% 
在課堂與老師的互動; 最後一堂課參與合照; 上台 Demo 
2. 
隨堂練習 
10% 
於上課現場完成者,下課後不再收此練習 
3. 
回家作業 
35% 
完成老師指定作業  
4. 
期末報告 
40% 
最後經老師認可,具資格參加CS+X期末發表的組別,期末報告成績為A; 若參加期末發表會獲得獎項,則期末報告成績為A+; 其餘依照完成度斟酌給分 
 
課程進度
週次
日期
單元主題
第1週
2/22  1. Node.js 介紹;2. Visual Studio Code 的使用;3. Github 的基本使用 
第2週
3/01  1. Node.js語法練習;2. 如何將 Web 應用程式佈署到 Azure 主機上; 
第3週
3/08  1. 瞭解Web Server的運作;2. 利用 Node.js撰寫簡單的靜態網頁伺服器 
第4週
3/15  1. 瞭解 NoSQL 資料庫; 2. MongoDB 的使用; 3. 在AZURE上設定mongoDB 
第5週
3/22  以記帳本為例開發 Web API 
第6週
3/29  期末報告