CS363WP-Syllabus - 3.1.12

advertisement
College of Liberal Arts and Sciences
Computer Science Department
Spring 2010
Assistant Professor
Sheldon X. Liang, Ph.D.
CS 363 Web Programming
(Dynamic Web page Programming)
Contact Information
Dr. Sheldon X. Liang
Office: WC 204 Office Hours
Phone: 626-815-5319 TR:4:30PM – 5:30PM
Email: xliang@apu.edu MWF: 1:30PM – 2:30PM
CS363 Web Programming
Page 1
CS363 Web Programming
Page 2
UNIVERSITY INFORMATION
Statement of Mission and Purpose
Azusa Pacific University is an evangelical Christian community of disciples and scholars who seek to advance
the work of God in the world through academic excellence in liberal arts and professional programs of higher
education that encourage students to develop a Christian perspective of truth and life.
Department Mission
The Department of Computer Science at Azusa Pacific University offers undergraduate degree programs in
computer science and computer information systems; provides general education computer literacy courses for
our student community and support courses for mathematics majors; prepares students for graduate study and
success in their chosen careers; and seeks to assist students in applying their knowledge and skills in service to
society based on an understanding of Christian truth and values.
Degree Program
The Computer Science major offers a solid foundation in computer science and is directly applicable to current
problems in society and industry. The Bachelor of Science in Computer Science prepares students for graduate
work in computer science or for careers in fields such as computer programming or software engineering. The
Bachelor of Arts in Computer Information Systems provides an educational foundation for students planning a
career in the analysis, design, and implementation of information systems.
CS363 Web Programming
Page 3
FAITH INTEGRATION
Deepening our culture of faith integration in the academic realm calls for an application of faith to our
work based on unity in essentials, diversity, freedom in non-essentials, and in all things charity.
Excellence in theologically informed reflection is paramount to an integration of faith within the
context of academic disciplines, professional programs, and lived practice, in order to advance the
understanding of Christian higher education and to develop moral leaders who will impact the world.
My soul pants for you, O God
For the Lord is good and His love endures forever;
His faithfulness continues through all generations
-- Psalm 100:5
Reflection and Application:
I will give you every place where you set your foot, … your territory will extend
-- Joshua 1:3-4
You are students at APU who seek to advance the work of God in the world through academic
excellence in (Computer) Sciences. Great dedication to the study of material of this course will
empower you to program web-based applications. You might be overwhelmed with plentiful content and
rigorous details, yet be strong and courageous because your territory will extend.
Keep in mind God loves you
For the Lord is gracious, his mercy is everlasting, and His truth is from generation
to generation. To what end? We have been transformed from being in bondage as
servants to the liberty of being children of God. For this reason, let us honor Him
by using our intellect to excel at conducting Computational Resources with
gladness.
“If you use the original World Wide Web program, you never see a URL or have to deal with HTML.
That was a surprise to me - that people were prepared to painstakingly write HTML."
Tim Berners-Lee (British Physicist of the World Wide Web (WWW). b.1955)
CS363 Web Programming
Page 4
COURSE INFORMATION
Course Description
This course is the study of website development, emphasizing Web-based programming using open source
software including Apache Server, PHP, Linux, XHTML, CSS, JavaScript and DHTML, MySQL, and others.
Included are the concepts, principles, procedures, methods, tools, and techniques used in the development and
management of Internet websites. This includes the design, construction, implementation, testing, and
maintenance of complex websites using cutting-edge tools. Sites are developed on the Linux platform. Each
student makes assigned presentations, develops small Web projects, serves on a development team, and
implements part of one major term project.
Textbook:
[1] The Web Warrior Guide to Web Programming by Xue Bai
[2] Programming the World Wide Web by Robert W. Sebesta
Total Credits:
Prerequisites:
Co-requisites:
3 - 2x1.5 hr Lecture in Spring 2010
CS 225 Fundamentals of Computer Science
Fond of systematic approach, and self motivated
Diligent in asking and working cooperatively
Enjoying learning graceful and thoughtful things
Class Information:
Lecture  (1/11/2010 ~ 5/14/2010)
===============================================
TR:
Place:
8:05AM ~ 9:30AM
WCamp226
Instructor Information:
Name:
Office:
Phone:
Email:
Homepage:
Sheldon X. Liang, Ph. D.
WCam 204 (Bldg 1)
(626) 815-5319 (Voice) / 5323(Fax) / 5310(Dept)
xliang@apu.edu
http://www.apu.edu/clas/faculty/xliang/
Required tools:
Visual Basic, Java-Scrip and PHP Script (all installed in CS Lab)
In addition, students must have Internet access for downloading course files from Instructor’s home page.
Also the Internet browser is needed for printing all course and assignments.
CS363 Web Programming
Page 5
COURSE ROADMAP
Objective-Driven Teaching & Learning (ODTL)
The course’s prime objective is to develop students’ computational thinking skills in a managerial approach. As
J. M. Wing writes, “Computational thinking is a fundamental skill for everyone, not just for computer scientists”
(Communication of the ACM, March 2006/Vol. 49, No. 3). Broadly speaking, why the student needs to come to
college is to develop problem-solving competence. Since problem solving forms part of thinking, the
development of thinking skills mainly motivates college education.
Specifically, CS363 Web Programming promises to incorporate the management of web-based resources, and
their application into a systematic approach in order to help develop students with cyber managerial thinking
skills. In addition, how to wisely apply all kinds of computational recourses to applications is especially
discussed in a web-based programming paradigm.
The ODTL will be demonstrated in following two ways:
1.
Objective-Driven Course Offering (Teaching): ODTL specifies the relationship between the development
of thinking skills and understanding via examples. The former is based on problem solving with questions
in connection with factual knowledge, comprehension and application; the later is to teach the unknown
through the related materials, that is, the student learn something unknown from something known to them.
The following figure and table are used to address the questions students may have while studying, and the
relatedness between the unknown concepts and the known. And the teaching approach is from the simple to
the complex contents:
Problem-solving
Generalized objectives
Thinking Skills
Specialized objectives
Examples or analogies
The known to unknown
Developing
Understanding
2.
Evolvable Questions
Cyber Management Thinking
-How to organize documents in
a web-based way
Presentation Tier: responsible to
present documents in
hierarchical way
XHTML: web page design
Relative Techniques
-How to make web-based
documents interactive
-How to process dynamic web
pages on a local computer
-How to process dynamic web
pages on the server side
Process Tier: responsible to
sophisticatedly process
interactions between GUI
controls and web pages, and
perform data process
Event-driven programming
- Visual Basic
-How to connect web pages to a
database
Data Tier: responsible to connect
database to web pages
Client-side process
- Java & Java-Script
Server-side process
- PHP Scripts
- MySQL: Data Connectivity
Objective-Driven Course Receiving (Learning): ODTL tresses the transformation of education from
information to formation, namely the transit of information to comprehensive formation (trans-formation
for short). The trans-formation, which combines course objectives with comprehensive tasks in education
(including lectures, labs, discussion, assignments, etc.) as inputs, brings out the desired outcomes as a
whole.
CS363 Web Programming
Page 6
Objective-Driven Learning Outcome
In order to motivate and activate the students to achieve the objectives, we employ plenty of teaching-learning
activities, such as lectures/discussions in class, labs/projects in laboratory, readings/assignments out of class,
homework at home, and midterm and final exams. So by the end of this course, students should be able to:
 Build a base of Web Programming
 Connect programming concepts with facts
 Solve web-based process problems in programming
 Develop skills and abilities in web-based information systems
Figure 1 illustrates the relationship between primary objective that is mapped into specified IDEA object, and
outcomes through ODTL.
IDEA Objective
Problemsolving
Managerial
thinking
Relative
techniques
1. Gaining factual
knowledge
Comprehensive Tasks
ODTL
2. Learning fundamental
principles
4. Developing specific
competencies
5. Acquiring skills in
working with others at a
team
Lectures
Discussion
Readings
Assignments
Lab/Projects
Due dates
Learning Outcome
Learning essence of w programming
 Web-based documents
 Client-side programming
 Server-side programming
Connecting facts
 XHTML vs presentation
 Scripts vs process
 Database connectivity
Developing skills and abilities
 Comprehension and application
 Cyber management approach
 Analysis and evaluation
Learning to function in team roles
 Project teamwork
 Submission & responsibility
 Humility & handiness
Figure 1. Course Roadmap & Content, Objectives & Expectations
Course Content (Input)
The course content focuses on managing and applying web-based resources over-the-networking from a
cyber managerial perspective. This covers underlying principles of operating systems, and systematic approach
and deep programming techniques. Combined with course objectives, characteristics of web programming
restrain emphasis on the core content to study.
Obviously according to figure 2, there are two basic approaches for interactive web pages: client-side
process and server-side process over-the-networking. Deep understanding of web programming helps to
broaden programming skills, and strengthen the ability of managing useful information on an online basis.
There are three tiers of major parts that compos Web-based Information Systems: presentation, process, and
data connectivity. Presentation tier is responsible to present information in a browser, process tier to perform
interactions between web pages and database, while data tier to retrieve or store data from/to a database. The
students in this class will be enthused to grasp the essence of Web Programming by walking through following
sections, including:
 Introduction to web-based information systems
 Web-based documents
 Event-driven programming techniques
 Both side process, and
 Data connectivity
CS363 Web Programming
Page 7
Figure 2. Course Roadmap & Content, Objective & Expectation





Section 0. Introduction to Web-based Information Systems
Web-based documents (HTML)
Event-driven programming (interaction via GUI)
Both side process (client, server, data connectivity)
Section 1. Web-based documents and organization
Web-based document in XHTML
Basic text markup
Lists, tables, and forms
Section 2. Event-driven programming
Creating the User Interface for a solution
Using VB controls
Programming in VB
Section 3. Both side process
Client-side programming (Java+JavaScript)
Server-side programming (PHP Scripts)
Communication between web pages (XML)
Section 4. Data Connectivity
Connecting data to web pages (PHP)
MySQL
Project programming
(1W)
(4W)
Lab-1: ‘Ugly’ personal resume
Lab-2: ‘Pretty personal resume
(2W)
Lab-3: GUI for selling popcorn
(6W)
Lab-4: GUI for selling popcorn
Lab-5: Interactive Webpage
Lab-6: PHP for selling popcorn
(2W)
Group programming project
CS363 Web Programming
Page 8
REQUIREMENTS, GRADING AND POLICIES
Requirements
There will be diverse comprehensive tasks of promoting a success of teaching and learning for this course.
Assignments and lab practice are very helpful in developing the problem solving ability using the programming
language.
1. Class Notes
[4%]
Taking notes is considered helpful in your study. Therefore you are encouraged to prepare a notebook for
handouts, assignments, and any inspirational notes presented in the class. Also, preparing, planning and drafting
the projects (PPA) play an important part in programming projects. This is considered grace credit.
2. Attendance and participation
[10%]
It is critical to take attendance into account as a requirement, because “participation means performance”.
3. Weekly Reading Reflection Journals (WRJ)
[journal template]
[16%]
Each student shall keep a log of time spent on reading the text on a week-by-week basis and then submit a
journal weekly. Total of turn-in WRJ is up to twelve. According to the WRJ template, the WRJ includes
following items:
 Your name, a heading, and time period (i.e. 6/25 – 6/30)
 Readings assigned to you, including chapter, and topic
 Thoughts while reading the appointed text
 Questions that arise while reading the text
 Reflections on the content (related to the content)
4. Individual Programming Projects (IPP)
[30%]
IPPs stress the application of the knowledge to solving the specific problems, and help the deep
understanding of principles. These are six IPAs required to complete individually by providing a hyperlink to
the instructor.
 Webpage-1:
‘Ugly’ Personal Resume
 Webpage-2:
‘Pretty’ Personal Resume
 GUIpage-3:
VB GUI for selling popcorn
 JavaForm-4:
Java GUI for selling popcorn
 JScriptForm-5: Java-Script Interactive Webpage
 PHPForm-6:
PHP webpage for selling popcorn
5. Group Programming Project (GPP)
[40%]
The GPP is required the students to work in groups. This stresses the application of the knowledge to
solving the mostly-real problems, and helps to deepen web programming on the server. The project group is
also required to be careful to plan the project first and then to program the project in a cooperative approach.
Since the well-planned project plays an important role in contributing to the success of the project, the
evaluation of the project includes:
 CLD: Careful Layout Document with emphasis on hierarchical documents
[10%]
 WVD: Well-planned VISION document with emphasis on event-driven response
[10%]
 Server-mounted Project Demonstration
[10%]
 PLD: Project Legacy Document with emphasis on lesson taken
[5%]
 Peer Evaluation of cooperative work
[5%]
CS363 Web Programming
Page 9
Grading for the Course
 Grades will be assigned based on the following weights:
individual: 60%, group: 40%
Evaluation and grading items
%
Class Notebook (Grace credit 40 pts)
4%
Class attendance & participation (100 pts)
10%
WRJ: Weekly Reading Reflection Journal (8 * 20 pts)
16%
IPP: Individual Programming Projects (6 x 50%)
30%
GPP: Group Programming Project
CLD: Careful Layout Document (100 pts)
10%
WVD: Well-planned VISION Document (100 pts)
10%
5
Server-mounted Project Demonstration (100 pts)
10%
PLD: Project Legacy Document (50 pts)
5%
Peer evaluation of cooperative work (50 pts)
5%
TOTAL
100%
No.
1
2
3
4

Letter grades will be assigned using the following scale:
93%
A
90%
A-
87%
B+
83%
B
80%
B-
77%
C+
73%
C
70%
C-
67%
D+
63%
D
60%
D-
At the discretion of the instructor, grades may be curved. However, no student will receive a grade less
than that prescribed by the above schedule.
Expectations for the Course
“High achievement always takes place in the framework of high expectation” (by Jack Kinder). You will
suggested to spend a great deal of time working on (project) assignments, and you will be responsible for the
programming content in this course. The most important rule for this course is that you cannot get behind in
your work!! Always stay up to date with the material in this course. Make succeeding in this course a
priority.
NOTE: The instructor reserves the right to tailor the following policies as needed, within the requirements
established by the official APU handbooks and guidelines.
Honor System and Academic Honesty
It is expected that students will not have given nor received unauthorized aid in any work that is submitted
for a grade in this course. Please refer to and carefully read the policy on academic honesty and plagiarism
online for this syllabus. Note the penalties for such behavior in the course. On every assignment, I reserve
the right to discuss the nature and origins of your work with you prior to awarding a grade on the work.
Attendance
Because this is a lecture-directed discussion course, attendance in class is critical to your success in this
course. You are expected to be present and on time each day we meet. You are responsible for
announcements made in class concerning material covered, assignments, changes in the syllabus or due
dates, or anything else pertinent to the course.
Preparation and Participation
It is imperative that you work on a consistent basis. This applies to both the day-to-day work to prepare for
class as well as the more long-term work such as the assignments and programs. You should keep a wellorganized record of your study notes, completed problems, and problems in progress for future reference.
You must understand that a great deal of your learning in this course must occur on your own. It is your
responsibility to do the preview assignments, read the text, do the problems, be prepared for class, and to
seek help as needed.
Due Dates
All due dates for the course will be strictly enforced. It is expected that all assignments will be turned in by
the due date. No late work will be accepted without prior approval from the instructor.
Internet and Student Email
CS363 Web Programming
Page 10
Most of the materials and information for this course will be posted to the course home page.
Students are expected to check the course home page daily since the course schedule and assignments
will be posted on this home page. Students are also expected to use the e-mail as the instructor will
frequently send e-mail messages to the entire class.
Graded Work and Visual Studio Environment
I expect your very best work on all graded assignments. All course programming and writing should adhere
to the writing guidelines and principles established in prerequisite courses. The assignments, quizzes, and
labs will require you to code solutions to programming problems. It requires explanations of all significant
steps taken in the solution of a problem.
The grading of the assignments will be based on the quality of the coding, the quality of the programming
content, and the logical organization of the writing.
Students will be required to use word processing / Visual Programming Environment for the assignments.
Following are some specific writing guidelines for this course.
1. For the Preview Assignments, you may choose to either provide well-written work using pen or pencil.
Please use loose-leaf paper, rather than the fuzzy stuff from a spiral bound notebook. Submissions with
more than one page must always be stapled (with one staple in the upper left corner), not paperclipped
or otherwise connected.
2. For problems on the assignments, be certain that a statement of the problem you are solving is included
before you begin your solution. Ideally, you will provide this in your own words. In all cases, the
solution of the problem must be given in context so that anyone reading the problem knows what the
question is without access to the original problem statement.
3. In every graded assignment, reasoning counts! While “the” answer is important, I consider how you
found your answer even more important. In every graded response in the course (assignments and
exams), you are expected to document your reasoning and demonstrate an argument that justifies your
conclusion.
4. On any assignment, if you collaborate with peers, please clearly indicate their names on the paper
next to the relevant problems or ideas in which they were involved. See the statement on academic
honesty for permitted forms of collaboration.
5. Overall, the expectation is that, in every assignment, you will strive to implement the professional
programming standards that we teach and learn in our class. In each case, your very best work is
expected. If you have any questions about how to present an idea or result, I would be glad to discuss
that with you at any time prior to when the assignment is due.
Academic Integrity Policy
NOTE: The instructor reserves the right to tailor the following policies as needed, within the requirements
established by the official APU handbooks and guidelines.
Honesty, Integrity and Professional Ethics
Academic dishonesty includes:
Assignment and Cheating Policy:
For details, please go to website: http://cs-linux.cs.apu.edu/~sliang/Fall2009/CS225/Syllabus/ReqCS225Syllabus.htm
Reservation of Rights
The instructor reserves the right to change this syllabus, at his/her sole discretion, at any time, and without
prior notice. The contents of the current undergraduate catalog are incorporated herein by reference. In the event
of a conflict between this syllabus and the undergraduate catalog, the undergraduate catalog shall have
precedence.
CS363 Web Programming
Page 11
TENTATIVE COURSE SCHEDULE
0. Useful tools
[0.1] XHTML Validator
[0.2] TryIt Editor
2. Web Documents
[2.1] XHTML Tutorial
[2.2] Soft Lookup
3. Java-Script
[3.1] Java-Script
[3.2] JScript.NET
4. Server-side PHP
[4.1] Beginners PHP
Bai: W-Programming
W# Reading
Day
Handouts
Due Dates
Topics
Section 0. Introduction to Web-based Information Systems [1W]
01/12
01/14
1
Section 1. Web-based Documents and Organization (XHTML) [4W]
2
[2.1]
3
4
[2.2]
5
01/19
01/21
01/26
01/28
02/02
02/04
02/09
02/11
WebPage-1
Lab-1: Template
WRJ#1
WebPage-1
2
WRJ#2
WebPage-2
Lab-2: Template
Basics of XTHL, document structures
Basic Text Markup
Images and Hyperlinks
‘Ugly’ personal resume
Lists & Tables
Forms
‘Pretty’ personal resume
WebPage-1
Section 2. Event-Driven Programming (Visual Basic) [2W]
6
7
Bai 5.13~5.18
Bai 5.18~5.23
02/16
02/18
02/23
02/25
Creating the User Interface for a Solution
WRJ#3
GPage-3
Lab-3: Template
Using VB controls
GPage-3, WRJ#4
GUI for selling popcorn
Section 3. Both Side Process (Java, JScript, PHP Script) [6W]
8
9
10
11
Bai 13.1~13.16
Bai 13.1~13.37
[3.1]
[3.2]
03/02
03/04
03/09
03/11
03/16
03/18
03/23
03/25
Exploring the Java language
WRJ#4
JForm-4
Lab-4: Template
Using GUI objects to program I/O
GUI for selling popcorn
Java-Script: Client-side process
WRJ#5
JSForm-5
Lab-5: Template
JSForm-5, WRJ#6
Java-Script: Client-side process
Interactive Webpage
Easter Vacation (March 27 ~ April 5)
12
13
[4.1]
Bai 17.1~17.18
04/06
04/08
04/13
04/15
PRJ Planning (tmp)
PHP: Server-side programming
WRJ#7
PHPForm-6
Lab-6: Template
JSForm-6
PHP: Server-side programming
PHP for selling popcorn
Section 4. Data Connectivity (Access to Files and Database) [2W]
14
15
16
Bai 3.1~3.18
Bai 18.1~17.15
04/20
04/22
04/27
04/29
Basics of XML
PHP-Data connectivity
Guidance of Final
IDEA
Final on May 4 (7:30am~9:30am)
WRJ#8
PRJ Documents
Project Demonstration
Class Notes
Download