Fall Semester 2006


Mon Dec 11
Things we worked in class last Thu: more Javascript examples, server-side state with CGI/DBI.

Sun Dec 10
Click here for next week's individual appointments.

Fri Dec 8
Code from Chapter 13 in the text:

Thu Dec 7
This is what the lab last week should have amounted to.

Fri Dec 1
Here's the jsp that I said I'd post.

Wed Nov 29
Final Exam is in LH102 5:00-7:00 p.m., Thurs., December 14.

The survey was unanimously in favor of a project-oriented final.

Here's the source for an older SQL set of notes.

Tue Nov 28
The final version of the servlet discussed in class today.

Tue Nov 21
Here's the program developed in class today.

Here's where you can play with it.

Notice that it generates a shuffled list, then extracts elements one by one, untilit runs out of them.

Wed Nov 8
Half of the individual feedback messages have been sent, the other half is being sent now.

The demo server now contains basic instructions for all things you need to turn in.

Basic general overview message sent to the class distribution list.

Tue Nov 7
Example of project guidelines from the past.

Wed Nov 1
Date: Wed, 1 Nov 2006 14:28:51 -0500 (EST)
From: Adrian German <dgerman@cs.indiana.edu>
To: A348/A548 Fall 2006 Distribution List <dgerman@indiana.edu>
Cc: Shakila Shayan <sshayan@cs.indiana.edu>, Adrian German <dgerman@cs.indiana.edu>
Subject: a348/a548 update


Dear A348/A548 Friends,

Welcome to the month of November. I will be distributing/returning exams
tomorrow in class, if you want to come and pick them up. Tomorrow we will
also look at one of the most exciting of the more recent web technologies
OpenLaszlo, http://www.laszlosystems.com/ and click on OpenLaszlo 3.3, in
the right bottom of the main window, to read about it.

OpenLaszlo is an application development suite, that comes with a language
based on Javascript and XML. Using a combination of Javascript and XML, any
so-called AJAX application runs in a browser and can connect asynchronously
to the server to collect more data than can be displayed in the current web
page. Google was the first to popularize this strategy with their Gmail and
Google maps applications. However Microsoft Internet Explorer already had
the XMLHttpRequest object in its version 5, and seasoned developers were
making use of this technology in various specific ways already.

OpenLaszlo applications produce DHTML (Javascript and XML) as an AJAX app.
or can compile into a Flash file. Essentially you can produce Flash output
without having to use Flash to develop the code.

There are many uses for this technology (in addition to the fact that it
looks good on the web): you can write animations, play MP3 files, create
e-commerce applications, develop web services clients, etc.

This presentation is not included in the text, it's in the category of
what we add new to A348 every semester (every semester something's brand
new in A348/A548 and this semester this section is it).

This is the right time in the course to discuss it too, since it is
based on Javascript (which we have started yesterday,) and relies on
Tomcat for server-side support. We will install Tomcat next week so we
can program Java servlets and JSP, so it's good to see that Tomcat has
other uses in addition to those that we had already planned.

See you tomorrow. If you have any questions or need any help please let
me know. Tomorrow I will also distribute semester projects guidelines.

... Adrian

Sat Oct 28
E-mails with midterm grade reports, project guidelines going out tonight.

Thu Oct 26
Basic Homework Three approach (using Access, you need to switch to MySQL and Perl DBI).

Here's also a basic python/cgi discussion with mysql access from python/cgi.

Of course you need to have a database set up (here's the minimal example shown here).

Also: a very short detour on using Python for web scripting.

Tue Oct 24
This week we work on Homework Five.

The lab will help with Homework Three.

Wed Oct 18
Sent today to the distribution list:

Date: Wed, 18 Oct 2006 12:32:36 -0400 (EDT)
From: Adrian German <dgerman@cs.indiana.edu>
To: A348/A548 Fall 2006 Distribution List <dgerman@indiana.edu>
Subject: A348/A548: midterm exam tomorrow


Dear A348/A548 friends:

The midterm is in class tomorrow: open-book, no laptops or electronic 
devices but bring whatever you want to bring (source code, print-outs
etc., anything you think you need to refer to).

The exam is individual work, so you can't communicate with anybody.

The exam will ask you to solve a problem like the examples we worked
in lab last week (page 66 in the text) or yesterday in class (posted
on What's New?, all four versions).

You will turn in the design in class, in written form, pseudocode or
flowchart, or actual code. Your choice: PHP or CGI, with sessions or
hidden fields. The design needs to be complete, without any ambiguities,
that is, it must be such any programmer could start coding without having
to make any design choices, only coding and implementation choices. If you
are in doubt, try to provide as much actual source code as possible.

We will collect the blue books and will give them to you in lab, where you
will have to implement your design. You need to match as much as you can  
the design you submitted in writing. If there are mistakes: fix them. If  
all is well with your design you will be the first to know. When you are
done (hopefully by the end of lab) post your implementation in protected. 
After lab we collect the blue books and grade them. The grade for the exam
is 60% the written test, 40% the coding in lab. The grades should be up by
Monday next week. Also, in about a week your should finish implementing   
the exam problem in all ways we studied so far: PHP, CGI with state on the
server or on the client side.

I will start sending individual messages now. I encourage everybody in the
class to come to the exam, and take it, no matter how far behind you might
think you are. There's still plenty of time for anything and everything.  

Please let me know if you have questions or concerns.

If you received this message in error (you dropped, or appear on my list
by mistake) or if you otherwise want me to remove your address from this
list please let me know.

... Adrian

Tue Oct 17
The programs we developed in class today:

The last one will be revisited next Tuesday (we finished it completely at 2:19pm).

Mon Oct 16
Midterm Exam on Thu in class.

Homework Two and Four are past due.

Homework Five and Three are to be turned in.

Thu Oct 12
Some older lecture notes with help for Homework Three/Five:

Program to be discussed in lecture today (source code).

Sample midterm transformations:

They will be discussed in lab today and tomorrow.

Wed Oct 11
Sample midterm on page 66 of the text: program (source code).

Lab this week will show you how you write it and transform it in four different ways.

Mon-Tue Oct 9-10
Notes updated as we approach the Midterm Exam (next week, Thu).

Wed Oct 4
Let's make Lab Seven based on 11.3 (page 74).

Lab Six plan:

a) go in your mysql as admin and change the password, get out
b) go in with the new password, create account for you, log out
c) go in as you and create a database, plus one table in it
d) insert, delete data in the table, describe then drop the table
e) log out, write a program to re-create the table
f) write and ru program to insert data from file into table
g) go into mysql and run queries on the data in the table
h) write two cgi scripts that use embedded sql to post query output
i) say this is all we need to get started with homework five

j) first clue on homework five: 11.1 (p. 67) explain, run
k) second clue on homework five: 11.2 (p. 69) explain, run

I will provide the code so you can cut and paste perhaps with some
changes or maybe in this format (see entry for Oct. 28 below):

http://www.cs.indiana.edu/classes/a348-dger/fall2004/whatsnew.html

Homework Three, Four and Five to be posted tonight along with a few
more web notes. Also, I need to contact students to make sure they're
aware of the midterm coming up.

I will discuss the old midterm next week, so we're entirely aware of it (p. 66). 

... Adrian

Tue Oct 3
Programs developed in class today: one, two.

At this stage the difference between server-side and client-side state maintenance should be clear.

Tue Sep 26
Lecture notes for today. Website will be updated tonight.

Thu Sep 21
I am afraid I won't be in this morning, I am not feeling well.

I will come straight to lecture and will be available after it.

Wed Sep 13
Here's my ~.bashrc file:
bash-3.00$ cat ~/.bashrc
EDITOR=nano
export EDITOR

MYSQL_HOME=/nobackup/dgerman/mysql
export MYSQL_HOME

PATH=/usr/local/gnu/bin:/bin:$PATH:/home/user1/mysql/bin
export PATH

PATH=/l/jdk/bin:$PATH
export PATH

JAVA_HOME=/l/jdk1.5
export JAVA_HOME
CATALINA_HOME=/u/dgerman/apache-tomcat-5.5.17
export CATALINA_HOME
CLASSPATH=.:$CATALINA_HOME/common/lib/servlet-api.jar:~/programs/jdbc/mm.mysql-2.0.2-bin.jar
export CLASSPATH

bash-3.00$ 
Set up the password protected directory as indicated in the text.

Use this to start your password file:

dgerman:UIaTPpE.ZpwHw
You can enter my protected folder with lbird/dribl (shown in the book).

The other password you should not know. You can create new users, too.

Wed Sep 13
Shakila's office hours:
Thursday 2:15pm-3:15pm LH201D
Wednesday 11:00am-12:00 LH201D
Here's the program we ended yesterday's class with:

#!/usr/bin/perl

use CGI;

$q = new CGI; 

print $q->header, $q->start_html; 

$score = $q->param('score'); 
$message = $q->param('message'); 

if ($message) {
  $score += 1;
  $message = "You have clicked me $score times. "; 
} else {
  $score = 0;
  $message = "You have clicked me $score times. ";   
}

print qq{
$message 
<p> <a href="?score=$score&message=$message">Click me!</a> 
}; 

print $q->end_html; 

Tue Sep 12
Lecture notes for today very important, posted.

Thu Sep 7
Here's an idea of what Homework Two will need to be like

Wed Sep 6
Check to see if your lab assignment one is accessible or not here.

To make your archive available:

chmod ~ 711
chmod 755 ~/public
chmod 644 ~/public/whoa.tar.gz

Tue Sep 5
We start CGI/Perl today.

Reading assignment for this week: pp. 21-32 in the text.

Thu Aug 31
Individual network ports assigned and posted today.

Wed Aug 30
Lecture and lab notes for this week posted.

In lab we start installing Apache and practice with Unix (Linux).

Tue Aug 29
silo accounts created, first lecture today in LH102.

Here's how our class appears in the IU Course Browser.


Updated by Adrian German for A348/A548