Course Description
This course is targeted at those who are interested in programming but have not learned anything in this area before. We chose the C programming language because it is the most widely used in the world. All course lectures will be given in computer labs. In each lecture, students are expected to learn the designated material, complete some small tasks, and upload to our server to get points. Attendance is mandatory (could be done online if Covid-19 is not contained). If you register in this course, you are expected to GET UP BEFORE 8AM TWICE A WEEK and spend SIGNIFICANT AMOUNT OF TIME studying and writing programs. For those who could not register but wish me to sign, please show up in our class for the first two weeks. We only have very limited seat for those who wish to add this course, so there is no guarantee that you could add this course.

請注意:這是早八的課程,而且課程內容很繁重,如果沒有決心花很多時間學習,或是無法早起的同學,請勿修習此課程。本課程絕對不是輕輕鬆鬆就能拿高分的課程,需要相當程度的投入。

課程方式是全上機,每次上課每位同學都要些一至數個小程式(等於每堂課點名),同學必須在指定的時間內完成當日課程內的小程式才算得分。課程分為 lecture 以及 lab兩種,lecture的課程教師會用大約30m分鐘至一小時講述概念,剩餘的時間要用這些概念完成一個小程式。Lab則是以前一次lecture的內容引申出一個稍微複雜一點的程式,可能以文字敘述或是教師簡短講述題目,同學們要剩餘的時間完成。lecture 以及lab會交替進行,每週各一次,這些 lecture 跟lab 的內容關係緊密連貫,所以如果同學某一次 lecture 沒在指定的時間內做完,也沒有利用其它時間盡快補上進度的話,之後的lecture/lab一定做不出來,那麼大概有很高的機率最終要退選了。所以沒有決心花很多時間的同學,我們不建議你選這門課程。

關於加簽:因為名額非常稀少,所以請要加簽的同學先跟我聯絡,完成前兩週所有的課程要求。高年級跟外籍生優先,其餘同學若太多要加簽我們以抽籤決定。


Textbooks
No required textbooks. We will use our own slides.
無指定教科書,上課的投影片即可

Reference Books
Kernighan, Brian W.; Dennis M. Ritchie (February 1978). The C Programming
Language (1st ed.).
Englewood Cliffs, NJ: Prentice Hall. ISBN 0-13-110163-3.


Labs 100%
請注意本課程是全上機實習!

Syllabus

1. Introduction.
2. Variables, data types, and operators.
3. Flow of control and functions.
4. Flow of control II and I/O
5. Pointers and arrays. Basic sorting
6. User-defined datatypes.
7. Advanced pointers. Stacks and Queues.
8. Dynamic memory allocation.


9. Classes and objects, Member functions/variables
10.Constructors
11.Friend functions
12.Class Inheritance



Evaluation
Labs: 30% + Assignments: 35% + Quiz: 20% + Final 25%
(Subject to change if Covid-19 is not contained)

Course webpage
on eLearn