***本課程為 16+2 課程,將於第十六周完成期末考,第十七周&第十八周則進行期末專題實作。***

[課程概述 Course Description]
1. 延續計算機程式設計一,繼續鍛鍊程式能力
2. 透過實作來認識資訊工程基礎知識與技術
* 修課學生必須具備基本C語言程式能力

The course “Introduction to programming II” has two goals. First, it drills
the programmability of students via more practices and examples. Second, it
introduces the basic knowledge and concepts of computer science through programming.
Students who want to take this course should be familiar with basic programming in
C.

[指定用書 Text Books]
無 All the materials will be offered in the eeclass system.

[授課大綱 Syllabus]
1. How to write faster programs? ----- Data structure and algorithms

2. How does a computer run programs? ----- Complier and computer system

3. How to represent and manipulate data? ----- Coding and data formatting

4. How to write big programs? ----- object oriented programming and windows
programming

5. How to make programs smarter? ----- AI and computer gaming


[授課形式 Teaching Method]
每周四節課,平均每兩周: 六節課教室講課 + 兩節課 Lab

Four hours per week. On average, for every two weeks: six hours lecture in classroom
and two hours lab in computer room (Friday).

[成績考核 Evaluation]
1. Online judge labs (8%) — every two weeks
2. One written exam (10%)
3. Two midterm online exams (15% + 15%)
4. One final online exam (25%)
5. Projects (27%) 
- Mini project I (Calculator): 9%
- Mini project II & hackathon (Allegro game (OOP)): 6%
- Final project (Allegro game (OOP)): 12%