一、 課程說明 (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 an intelligent web 2.0 application 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, web
development, and web intelligence. In the fundamental part, a primer to some
important programming languages other than C/C++, such as Java, 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
web development part, we will show the design alternatives of the architecture
of a web site and explain the modern way to implement web 2.0. Finally, to see
how the knowledge learned from the first two parts can be applied to solve real
problems, in the web intelligence part, we will go through a case study on how
to convert the raw web data 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/
HTML & CSS
[4] Head First HTML with CSS & XHTML
Javascript
[5] JavaScript: The Good Parts
[6] http://www.sencha.com/products/core/manual/index.php
Google App Engine
[7] http://code.google.com/intl/en/appengine/docs/
WEB INTELLIGENCE
[8] 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 WEB DEVELOPMENT
5.HTML and CSS
6.DOM model and Javascript
7.Java Servlet
8.Dynamic pages
9.AJAX - the sword of web 2.0
PART-IV WEB INTELLIGENCE
10.Understanding your data
11.Learning from user interactions
12.Smart tagging (if time allows)
13.Search engine – what Google does for us? (if time allows)
14.Making recommendations (if time allows)

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