課程名稱 |
(中文) 程式設計(一) (英文) Computer Programming |
開課單位 | 資訊經營學系 | ||
課程代碼 | N1251 | ||||
授課教師 | 王永心 | ||||
學分數 | 3.0 | 必/選修 | 選修 | 開課年級 | 大一 |
先修科目或先備能力: | |||||
課程概述與目標:以Java語言培養學生編程能力。 | |||||
教科書 | P. Deitel and H. Deitel, 2015, "Java How to Program, Late Obejcts Version," 10 ed., Pearson. ISBN: 1292019360 | ||||
參考教材 | 張子庭,JAVA程式設計藝術(第十版)(國際版),出版商:全華。ISBN13:9789862803431 | ||||
圖書館電子書 | http://www.airitibooks.com/detail.aspx?PublicationID=P20120927007 |
課程大綱 | 學生學習目標 | 單元學習活動 | 學習成效評量 | 備註 | ||
週 | 單元主題 | 內容綱要 | ||||
1 | 電腦、網路與Java簡介 | ● Computer organization ● Machine vs Assembly vs High-level languages ● Programming and Java ● A typical Java development environment ● First program in Java |
● 能述敘計算機組織之六大單元 ● 區別各種不同階層的語言 ● 能說明Java語言的特性 ● 能操作Java開發環境之基本功能 |
|
||
2 | Java應用程式介紹;輸入/輸出與運算子 | ● printf() ● Data types ● Applications: I/O and OPs ● Memory concepts and variables declaring ● Arithmetic OPs ● Equality and relational OPs |
● 能完成含有簡單輸入/出的程式 ● 能了解printf常用格式參數 ● 能了解為什麼要有資料型態 ● 能了解記憶體配置與能於程式中宣告變數 ● 能運用算術運算及關係運算於編程 |
|
|
|
3 | 類別、物件、方法與字串的介紹 | ● Introduction ● Instance Variables, set Methods and get Methods ● Primitive Types vs. Reference Types ● Account Class with a Balance ● Floating-Point Numbers and Type double |
● 能宣告類別、變數與建立物件並將類別的行為實作成方法 ● 能呼叫物件的方法並令其執行工作 ● 瞭解基本型別與參照型別之差異 ● 瞭解如何使用建構子來初始化物件 ● 能表示與使用含小數點之數字 |
|
|
|
4 | 控制敘述:if ... else | ● Algorithms ● Pseudocode ● Control structures ● if single-selection statement ● if ... else double-selection statement |
● 瞭解基本的解題技巧 ● 能設計出簡單問題的演算法,並以虛擬碼表示 ● 能活用if和if ... else敘述於程式設計 |
|
||
5 | 控制敘述:while | ● while repetition ● counter-controlled repetition ● sentinel-controlled repetition ● nested control statements ● compound assignment OPs , ++ and -- ● primitive types |
● 能運用while結構於編程 ● 能區別計數器控制與哨兵控制迴圈之不同 ● 能運用巢狀結構於編程 ● 能區別遞增、遞減運算子出現位置不同之差別 ● 能分辨Java的基本資料型態之特性 |
|
|
|
6 | 控制敘述:for | ● designing counter-controlled repetition ● for repetition statement ● examples using the for statement ● debugging in repetition statements |
● 能設計出計數器控制的迴圈 ● 能活用for迴圈 ● 能運用單步執行於迴圈除錯 |
|
||
7 | 控制敘述:do ... while | ● designing sentinel-controlled repetition ● do ... while repetition statement ● break and comtinue statements ● more examples of repetition statements |
● 能設計出哨兵控制的迴圈 ● 能活用do ... while迴圈 ● 能辨別break與continue是如何改變迴圈流程 ● 能適當運用多種迴圈結構於編程 |
|
|
|
8 | 控制敘述:switch | ● switch statement ● the effect of a switch statement with or without break statement ● logical operators ● structured programming summary |
● 能活用switch ... case ● 能辨別 break 對 switch 的效果 ● 能區別 &, && 及 |, || 之不同 ● 能靈活運用控制結構於編程 |
|
||
9 | 期中考 | ● Midterm Exam | ● 驗證前半學期的學習成果 |
|
|
|
10 | 方法:深入探討 (I) | ● program modules in Java ● static methods, static fields ● class Math ● declaring methods |
● 能了解什麼是程式模組化 ● 能了解類別方法與類別變數之特性 ● 會運用Java提供的數學函式 ● 能自行宣告方法於編程 ● 能將模組化概念實踐於編程 |
|
||
11 | 方法:深入探討 (II) | ● method-call stack ● argument promotion and casting ● Java API packages |
● 瞭解方法呼叫堆疊如何支援方法的呼叫 ● 瞭解什麼是傳值呼叫 ● 瞭解關於引數提升及強制轉型 ● 會呼叫Java提供的API於編程 |
|
|
|
12 | 方法:深入探討 (III) | ● case study: secure random-rnuber generation ● scope of declarations ● method overloading |
● 會產生亂數來實作遊戲應用 ● 能辨別宣告的有效範圍 ● 能運用方法多載於編程 |
|
||
13 | 陣列 (I) | ● primitive types vs reference types ● introduction to arrays ● declaring and creating arrays ● examples using arrays |
● 能辨別基本與參考型態之差異 ● 能解釋為什麼需要陣列 ● 能宣告並配置陣列 ● 能善用陣列於編程 |
|
|
|
14 | 陣列 (II) | ● examples using arrays ● processing the array index out of bounds exception and the negative array size exception ● passing arrays to methods |
● 能運用陣列當作編程時的資料結構 ● 能處置使用陣列時所發生之常見例外 ● 能分辨基本型態與參考型態的傳值呼叫於引數傳遞時之差異 |
|
|
|
15 | 陣列 (III) | ● multidimensional arrays ● variable-length argument lists ● using command-line arguments |
● 能宣告、配置、運用多維陣列當作編程時之資料結構 ● 會使用可變長度的引數列 ● 會將命令列引數讀入到程式中 |
|
||
16 | ArrayList | ● class Arrays ● introduction to Collections and class ArrayList |
● 能活用Java提供的Arrays類別方法,進行常見的陣列操作 ● 能活用Java提供的ArrayList類別,操作可動態調整大小之類陣列資料結構 |
|
|
|
17 | Integration practices | ● Integration practices of this semaster | ● 能將本學期所學整合運用於編程 |
|
||
18 | 期末考 | ● Final Exam | ● 驗證整學期的學習成效 |
|
|
教學要點概述: |