一、 課程說明 (Course Description)
This course presents hands-on labs for students in the software aspect for
students to be familiar with software development process and techniques. The
class follows a mainstream aiming to build a full-function Android app with the
server running in the cloud using popular platforms (e.g., Google App Engine)
and open source libraries (e.g., Apache Maven, ExtJS, Apache Lucene, etc.).

The class is divided into three parts, namely, the fundamentals, app
development, and data-driven intelligence. In the fundamental part, a primer to
some important programming languages other than C/C++, such as Java, XML, Regex,
HTML/CSS, and Javascript, will be given. We will highlight the concept of OOP
and the advantages of different languages to help student make correct decisions
when writing a big code. Handy tools such as Eclipse, CVS/SVN, will also be
covered to get students familiar with project-based and team-based development.
In the app development part, we will explain how to implement an Android app.
Finally, to see how the knowledge learned from the first two parts can be
applied to solve real problems, in the data-driven intelligence part, we will go
through a case study on how to convert the raw data collected from app users
into human-sensible intelligence.

Basic understanding of C/C++ programming language and data structure is
required.

二、 指定用書 (Textbook)
[1] Lecture Notes

三、 參考書籍 (References)
Eclipse
[1] http://help.eclipse.org/helios/index.jsp
JAVA
[2] Head First Java, 2ed
[3] http://download.oracle.com/javase/tutorial/
Android
[4] http://developer.android.com/develop/index.html
Google App Engine
[5] http://code.google.com/intl/en/appengine/docs/
DATA-DRIVEN INTELLIGENCE
[6] Collective Intelligence in Action


四、 教學方式(Teaching Method)
Lecture and Lab

五、 教學進度(Syllabus)
PART-I FUNDAMENTALS
1.Tools and environments that increase your productivity
2.Java – why another language?
3.Team development and version control
4.Let’s start a project – on the web this time
PART-II APP DEVELOPMENT
5.HTTP interfacing
6.Java Servlet
7.Android development
PART-IV DATA-DRIVEN INTELLIGENCE
8.Understanding your data
9.Learning from user interactions
10.Smart tagging (if time allows)
11.Search engine – what Google does for us? (if time allows)
12.Making recommendations (if time allows)

六、 成績考核(Evaluation)
Midterm Exam 15%
Final Exam 15%
Labs 40%
Term Project 30%