Monday, August 25, 2008

Project 2

Due Date: Wednesday, 17 September

Objectives

Project team formation

Description

Your job is to form a project team of size three. There will be several group projects later in the term, and it is important to have the teams ready on time. Only in exceptional cases will teams of size other than three be permitted.

Each team member will receive the same grade for a group project. At the end of the semester, however, each student will have the opportunity to comment on the relative contributions within their team. If significant disparity of contribution to group projects is reported, adjustments to students' final course grades may be made.

Submission

To submit this project, please send me email (exactly one message per team) with the names and email addresses of the team members.

Project 1

Due Date: Wednesday, 3 September

Objectives

Familiarity with

  • Software installation process
  • Aptana Studio
  • Aptana document templates
  • Synchronization between workspace and public web folder

Description

Your job is as follows:

  1. Install the software for this course, especially if you are doing your work outside the departmental labs. You are encouraged to discuss any issues you encounter on the mailing list.
  2. Familiarize yourself with Aptana Studio.
  3. In Aptana, go to Windows > Preferences > Aptana > Editors > HTML and change the initial HTML file contents to
    <?xml version="1.0" encoding="utf-8"?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head>
    <title>XHTML 1.1</title>
    </head>
    <body>
    </body>
    </html>
  4. Create a new Aptana default web project called, say, HelloAptana.
  5. Within this project, create at least one (X)HTML page. The initial page content should be exactly the skeleton shown above, otherwise you did not successfully change the initial file contents.
  6. Add some content to your page(s). You may find this reference useful.
  7. Right-click on the HelloAptana project node in the project explorer and create a new synchronize connection. Under remote, choose SFTP, then enter the information corresponding to your Linux account and course folder. Important: below your course folder, you need an explicit folder corresponding to your project folder.
  8. Right-click on the HelloAptana project node and upload the project.
  9. To verify that synchronization was successful, view your project through its public URI by appending HelloAptana to your course folder's URI.

Submission

To submit this project, please send me email with the URI of your project folder.

Project 0

Due Date: Friday, 29 August

Objectives

Familiarity with

  • Course mailing list
  • Linux account
  • Existing Apache web server
  • Personal folder for public web pages

Description

Your job is as follows:

  1. Subscribe to the mailing list for this course. Be sure to review any prior messages on the list. Very importantly, if the name under which you have registered for this course is not apparent from your email address, be sure to include your real name in your subscription request.
  2. Make sure your Linux account works. Otherwise email the lab manager (with a copy to me).
  3. Log in to your Linux account and create a folder called public_html in your home folder. Make sure your home folder and the public_html folder are readable only by you but executable by anyone. Use the chmod command if necessary:
    chmod 711 ~
    chmod 711 ~/public_html
  4. Make up any secret string (consisting of any combination of at least seven letters, numbers, dashes, or underscores). This string will become a secret between you and myself and must not be shared with anyone else. As a subfolder of your public_html folder, create a folder whose name is equal to that secret string, and as a subfolder thereof, create a folder called 424. We will now refer to this folder as your course folder. (In case the secret string ever gets compromised, immediately make up a new one, rename the corresponding folder, and inform me.)
  5. Using a web browser, view your course folder at its public location (URI):
      http://webpages.cs.luc.edu/~yourid/yoursecret/424

Submission

To submit this project, please send me email with the URI of your course folder.

Tentative course schedule

This week-by-week course schedule is tentative. It is likely to evolve as we progress through the semester. In particular, we will probably move up the material on JavaScript and cover additional client-side technologies toward the end of the semester. We may also study some concurrency concepts.

Week 1
  • Introduction and overview
  • Motivation: rich internet applications (RIA), web 2.0
  • Overview of Dynamic HTML (DHTML) = XHTML + CSS + DOM + JavaScript
  • Course software
  • Projects
  • References
Week 2
  • Overview of content markup languages: XML, XHTML, WML, VoiceXML
  • Main XHTML content elements
  • Separation of content from styles: CSS
Week 3
  • XHTML content and the Domain Object Model (DOM)
  • Prompting users for input: forms
Week 4
  • Client-side executable content: Java applets, Active X, JavaScript, Flash
  • Event model: DOM elements as event sources, JavaScript functions as event listeners
  • Dynamic HTML (DHTML) = XHTML + CSS + DOM + JavaScript
Week 5
  • Event model (cont.)
  • Selenium IDE for automated in-browser system testing
Week 6
  • Event model: using links as event sources
  • DHTML summary
  • Content syndication
  • AJAX overview
Week 7
  • JavaScript object and event models
Week 8
  • JavaScript object model
Week 9
  • JavaScript object model
Week 10
  • Review of IE6 issues
  • Dojo JavaScript toolkit: intro (PDF)
  • Dojo model-view-controller architecture: tutorial
Week 11
  • Recap of Dojo MVC architecture
  • AJAX and the Dojo bind method (now in DojoAjax example)
  • Overview of remix/mashup architectures
  • JSON (JavaScript object notation)
Week 12
Week 13
  • Guest lecture on Google Web Toolkit (GWT)

Course Objectives

  • Understanding of architecture and mechanisms underlying web 2.0
  • Development of applications with rich, highly usable browser-based interfaces
  • Integration of content and functionality from multiple sources (remixes and mashups)
  • Exposure to good practices in the development of client-side web applications

Friday, August 22, 2008

Software required for this course

These software packages are or will soon be installed for you in the CS labs. All of it is either open source or otherwise freely available and runs on the three major platforms (Windows, Linux, Mac OS X). You are encouraged to install it on your home computer as well.

We will install additional software such as JavaScript libraries as needed.