CISC474 Project P03, Spring 2007

Introduction

Today's group activity has four purposes:

  1. Find your group's common free time. You'll find out when your group members have common free time during the week to work on group activities outside of class. Groups that do this early have a much better chance of long-term success.
  2. Use static HTML to build a web page. Understanding static HTML is a necessary first step to understanding web applications.
  3. Introduce the common free time problem. Several people who know their schedules, need to determine when they can schedule a meeting together. Today we are solving this problem by hand—later this problem will form the basis of a web app that we build.
  4. More group interaction. I'll soon be asking you to choose a group leader. Today, as you work, see if you can determine who would be best in that role.

If you get all that done, you'll be introduced to HTML validation.

Your Tasks for P03

Step 1: Look at the sample output page P03_G11.html

This page is an example of what you need to produce for your group.

Step 2: Choose one member of the group that is familiar with how to make web pages using hand coded HTML on copland.

Hopefully, at least one member of each group already knows how to make a web page under your ~/public_html directory on copland. (Perhaps all of you know!)

Choose this person to be your webmaster for today's activity. Have that person use SSH Secure Shell Client to log in to the composers (either copland or strauss). The web master should continue with the remaining instructions under step 2, while the rest of the group continues with step 3.

The web master should:

  1. Create a directory ~/public_html/cisc474, and make it readable on the web.

  2. Copy the file /www/htdocs/CIS/474/pconrad/07S/proj/P03/P03_G11.html into that directory, renaming it as P03_Gnn.html (where nn is replaced with your group's number.)

    Note: The use of nn here signifies that if your groups number is less than 10, you should use a leading zero, e.g. P03_G05.html, not P03_G5.html. This convention may be used again in this course. Please "pick up" on this notation so that I don't have to explain it every time it occurs.

  3. Replace the names and card numbers with the ones from your group. You may use the Wiki page CISC474_07S_NumberedTeams as a source of information.

  4. Come up with a single letter to stand for each of your team members names, using either first names or last names—which ever makes the names unique.

    Note for Spring 2007: Team 4 will face a challenge, since two team members have first names starting with E, and last names starting with S. You'll figure something out, I'm sure. Perhaps you can come up with some nicknames, or use some other symbol?

  5. Edit the second half to indicate your choice of "key" for the four team members. Then, rejoin your team members, who hopefully have come up with the data by now for the table you are going to build (all except your information.) Read over the instructions for step 3, and then join your group at Step 4.

 

Step 3: Come up with the table (for everyone except the web master)

While the web master works on Step 2, the rest of you need to work on coming up with data for a table similar to that shown on the page P03_G11.html. You are going to work together to come up with the data you'll need.

Your webmaster for today's activity will catch up with you when he/she is finished with the HTML coding, and in step 4, you'll incorporate his/her data. Finally, in step 5, you'll put everything together up on the web.

Step 3a: Some General Instructions

First, understand what we are doing

The purpose is to come up with times that each of you is "generally available" for a group meeting—not that you will always meet at those times, but that you don't have any regular weekly obligation that would, in general, prevent you from ever meeting then.

Obviously, everyone's schedule varies slightly from week to week, because of things like doctor's appointments, dates, concerts, meetings you've set up with professors, varying work schedules, etc.

But there are also things that are the same every week, and it is good to have a baseline to start from.

What we are not doing

We are not coming up with a schedule that obligates you to always keep a certain block of time free. This is just a tool to help your group schedule meetings.

How to decide whether to include a particular block of time.

If you are uncertain about whether you are going to be free at a certain time, it is up to you whether to list that block as available or not available. Ask yourself the question: which answer will be most helpful to my group?

Step 3b: Global Constraints

You should first come up with a set of "global constraints". For example, you may decide, as a team, that you will

These are only suggestions—you may find that you have a bunch of night owls on your team, and you are happy to work until 2am, but don't want to ever start before noon. You may find that you need to avoid a certain time during the week due to religious observances, or NFL games, or whatever. The particular global constraints will depend on your team.

Global constraints help, because you can avoid having to do any computing for a whole section of the weekly schedule. However, keep in mind that the global constraints are NOT here as a "loophole" for you to avoid doing any work. You should leave at least 40 hours during the week "unconstrained" as the time during which you will calculate schedules for your group.

On the example schedule, you can see that the global constraint we established was to compute a schedule only for 8-5PM, Monday through Friday.

Step 3c: Write down a summary of everyone's schedule

Each group member should, subject to the global constraints, write down his/her schedule in a format similar to that used in the section of the example page P03_G11.html under the heading "Raw Data". You can use either the "free time" format, or the "busy time" format—whichever makes most sense to you.

You'll need to store this in the "Raw Data" section of your P03_Gnn.html page, so write it out somehow so that you convert it into HTML.

This is the point where you want to reconnect with your web master, and

Step 4: Construct Availability Matrix

Now come up with the availability matrix for your group, similar to the third part of the example page P03_G11.html.

You'll eventually need to code this in HTML, but you may first want to make a rough draft first on paper, on a blackboard, or with a spreadsheet program such as Excel. Here's a suggested process:

Step 4a: Determine the time breaks,

Determine the complete list of time intervals that you are going to need in the left column of your final table. Essentially, you need to list all the times that appear in anyone's calendar on any day of the week, sorted from earliest to latest.

Step 4b: Make a rough draft of the availability matrix

Using the left column of times from step 4a, put a column in your matrix for each day of the week, and start fill in in the letters. It may be easiest if each group member fills in her/her own letters.

Step 4c: Code in HTML

You can do a view source on P03_G11.html to see how it is done.

Step 4d: Verify correctness

Have each team member verify the results.

Step 5: Post a link to your results on WebCT

On the discussion board marked P03, add a posting with the subject line Gnn, where nn is your group number. In your posting, indicate:

  1. The URL for your group's P03 submission (this also indicates who the webmaster was)
  2. Who participated (list their UD email addresses)
  3. Who was absent or did not participate

Note that anyone who did not participate will have to make up the assignment at a later date, by taking the P03_Gnn.html file constructed by the web master, copying it to his/her website, and adding in his/her information. Late penalties may apply.

Grading: 50 pts

Due: End of class, 11am Monday 02/19/07

If you don't finish in class, finish up by email.
If results are posted by 3PM Tuesday 02/20/07,
no late penalties apply.

When Finished