Wednesday, January 27, 2010

Tentative course schedule for Spring 2010

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
  • Projects
  • References
Week 2
  • Course software 
  • Overview of content markup languages: XML, XHTML, WML, VoiceXML
  • Overview of Dynamic HTML (DHTML) = XHTML + CSS + DOM + JavaScript
  • 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
  • ACM presentation
  • Event model (cont.)
  • Selenium IDE for automated in-browser system testing
Week 6
  • Event model: using links as event sources
  • DHTML summary
  • Content syndication
Week 7
  • AJAX overview
Week 8
  • ACM presentation
  • Test 2
Week 9
Week 10
  • Review of IE6 issues
  • 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
  • Test 3
  • Mashing up using JSON versus XML
Week 13
  • Test 3 discussion
  • Lightning talks on emerging client-side technologies
Week 14

Project 1

Due Date: Sunday, 31 January


Familiarity with
  • Software installation process
  • Eclipse
  • Mercurial (hg)
  • Synchronization between workspace and public web folder using hg


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 Eclipse and the JavaScript project support.
  3. In Eclipse, create a new JavaScript project called, e.g., HelloJavaScript.
  4. Within this project, create at least one (X)HTML page; be sure to choose XHTML 1.0 Strict as document type.
  5. Add some content to your page(s). You may find this reference useful.
  6. Open the page(s) in the various ways available within Eclipse: HTML editor, text editor, web browser, web page editor.
  7. Right-click on the HelloJavaScript project node in the project explorer and share with Mercurial using Team > Share Project..., then choose Mercurial, then press finish.
  8. Log in to and navigate to your course folder created in project 0
  9. Create a subfolder with the same name as your project.
  10. Now cd into the subfolder and run hg init. Then run pwd and take note of the result. 
  11. Finally, set up an auto-update hook by creating the file (still in the subfolder) .hg/hgrc with content 
  12. [hooks]
    changegroup = hg update
  13. Back in Eclipse, right-click on the HelloJavaScript project node and Team > Push the project to URL ssh:// You should now see one or more files in that remote subfolder. (Every time you add new local resources, be sure to commit them locally before pushing them to the remote repository.)
  14. To verify that remote publishing was successful, also view your project through its public URI by appending HelloJavaScript to your course folder's URI.



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

Thursday, January 21, 2010

Project 0

Due Date: Monday, 25 January


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


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):


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