SDSU Emerging Technology
Fall Semester, 2004
    Lecture Notes Index     Next     
© 2004, All Rights Reserved, SDSU & Roger Whitney
San Diego State University -- This page last updated 31-Aug-04

CS 683 Emerging Technologies Fall Semester, 2004 Doc 1 Introduction


Reading Assignment

Crash Policy


Warning about the course – Bleeding edge

Course Contents

Continuation-based Web Servers

Mobile Computing (JMEE)

Object-Relational Mapping

Application Framework


Copyright ©, All rights reserved. 2004 SDSU & Roger Whitney, 5500 Campanile Drive, San Diego, CA 92182-7700 USA. OpenContent ( license defines the copyright on this document.

Reading Assignment

CSS - For Thursday Sept 2

CSS Tutorial: Starting with HTML + CSS at:

Chapter 2 of by Håkon Wium Lie and Bert Bos at:

Dave Raggett’s Intro to CSS at:

Crash Policy

The crash list is ordered by seniority.

Crashers with the most graduate credit from SDSU will be accepted first

If there are more students tied at the top of the crash list than there are available seats, students will be selected at random from the top of the list

Role of the crashers will be taken each class period. Crashers attending all classes will be given priority over all crashers that do not attend all classes

Crashers must submit an unofficial SDSU transcript to prioritized on the crash list

If you have not submitted a transcript at the time students are let into the course, you will not be prioritized

Students given an add code have a limited time to use the add code. (See time line below)

Students that do not use their add code in the allotted time will not be allowed to use that add code and will lose their priority in the crash list for this course.

When students will be added

If there is room in the course students will be added in class on

Students not in attendance at the class are assumed not interested in crashing the course and their spot in the class will be given to someone else

Students added Sept 7 must use the add code by noon Friday Sept 10

Students added Sept 14 must use their add code by noon Thursday Sept 16

Students added Sept 16 must use their add code by noon Monday Sept 20


Graduate status

Must know Java

You will be writing the following things in Java

I assume you have some database experience

You will be installing & using

As a student in an advanced graduate computer science course I assume that you can handle this

If you don’t have a good Java IDE you should start using

In dealing with CSS you will find the

Firefox -

Java & Smalltalk

We will look at several technologies implemented in Smalltalk

We will also cover similar technologies in Java

Students can select which technology to work with

Student should be able to read Smalltalk


I do not give extra credit assignments

Grades in the course will be based on

There will be between 3-5 assignments

Each assignment is given a numerical score

Assignments are averaged to get a course score

Course score is used to determine the course grade

CS 683 is an advanced graduate course

If you dealing with new culture and educational system taking an advanced graduate course may be a bad idea

Warning about the course – Bleeding edge

Leading edge is called the bleeding edge

This course will cover a lot of material

Presentation of material will be rough

This course will be a lot of work

Don’t fall behind

Course Contents

Applications in Complex World

We will look at

Continuation-based Web Servers

Seaside – Smalltalk based

Cocoon – Java, Javascript based

GUI applications started in 1970’s

Web application development violate GUI best practices

The begging of Continuation-base Web servers

Simple Seaside Example

Complete Smalltalk Source

renderContentOn: html 
   html title: 'Continuation Example'.
   html heading: 'The First Page'.
         anchorWithAction: [self tryMe]
         text: 'Start'
   | name count message |
   name := self request: 'Your name'.
   count := 1.
   message := name , ' ready to stop yet? '. 
   [self confirm: message , count printString]
        whileFalse: [count := count + 1].
   self inform: 'Good bye'.

Java pseudo Code

renderContentOn(WAHtmlRenderer html) {
   html.title(”Continuation Example”);
   html.heading(”The First Page”);
   html.anchorWithAction( tryMe, “Start”);
tryMe() {
   String name = request(”Your name”);
   int count = 1;
   String message = name + “ ready to stop yet”;
   while ( !confirm( message + count) ) {
      count = count + 1;
   inform( “Good bye”);

Java Struts & Seaside Comparison

Simple Web log implementation

Designed by Java programmers to compare Java Frameworks

Contrast Java Struts implementation and Seaside implementation

Java Struts Seaside
Development Time ~1 Week ~6 hours

Mobile Computing (JMEE)

Mobile computing devices are everywhere

Cell Phone development in San Diego

Computer Chips are in many items

Object-Relational Mapping

Many applications use databases

Object-oriented programming is now common

Need to translate between objects and database tables

JDBC is a low level connection to database

GLORP & Hibernate translate between objects & tables

Hibernate Write Example

Transaction tx= session.beginTransaction();
Cat princess = new Cat();

Application Framework

Some think that EJB & J2EE are too complex

Applications are complex enough


1.Using Firefox or a similar tool view the CSS of

You might find the Web Developer Toolbar useful.

2. Using Firefox or a similar tool find the html error in

3. Using Firefox or a similar tool find the deprecated elements in

4. Using your Java IDE (or Eclipse if you do not already have a Java IDE) implement a stack and write JUnit tests for the stack.

See for documentation about using JUnit.

See to download JUnit

See Using JUnit With Eclipse IDE and

    visitors since 31-Aug-04     Next