CS4173 > Mats
> Assig. #3
J. Blustein
Assignment 3: Stateful Calendar, Part 1
To gain experience with saving state using cookies and simulated
GET
-protocol forms, in preparation for a realistic
WWW-based calendar system
in a later assignment, and to improve working knowledge of the
following WWW technologies:
- Cascading Style Sheets for colour selection and layout,
form
s and related protocols,
- the HTML 4 &
XHTML 1 table model, and;
to gain at least familiarity with the following technologies:
- cookies,
- saving state with forms,
- servlets (at least theoretically), and
- the CGI
protocol
- Assigned
- 02 Mar.
- Due
- 08 Mar. (at 5p.m.)
Create a webpage that uses server-side programming (in the language(s)
of your choice) to
- create a one month calendar for any single month between the years
1799 and 9999
- give the user a simple way to view the next and previous
months recursively, i.e. from every month the user
will be able to jump to the previous or next month
- record the current month and year so that the next time the user
visits the webpage that same month and year will be displayed.
-
our program must be able to record and use the data in two ways:
- using cookies (if the user's browser supports them), and
- by simulating
GET
if it does not support
cookies
See the form
s and Cookies examples, the staff of
the Learning Centre or your prof.
You do not need to become a Perl expert for any
assignment in this course. You do not need to use Perl for any
assignment in this course.
The Ask Dr. Math FAQ:
Calendar and Days of the Week webpage has lots of details
about how to compute leap years and days of the week that you will
need for your assignment.
- Use the CGI Debugging Advice
- Use only valid XHTML 1
- You may ask for the month number (e.g. 2
for February) instead of the name. It is more difficult to deal
with names.
- Use CSS to
format the calendar
- See the
text-align
and
border-collapse
properties in particular
- You might also want to read the how to centre example
- Compare your calendar with those produced by the Unix
cal(1) program
- If the browser you have chosen does not work well with external
CSS referred to in dynamically generated
XHTML then embed the CSS
rules in the
head
of the XHTML
document instead.
Marking Breakdown
Two ways of keeping state
- cookies
- URL rewriting
- cookie detection
- pasrsing GET data
|
45% |
Correct calendar |
5% |
Complexity and style of layout |
10% |
Error-checking and robustness of code |
20% |
Use of CSS |
10% |
Readability and comments |
10% |
Deductions |
invalid XHTML |
−30% |
not conforming to level
“A” of WAI's WCAG |
−15% |
Bonus |
conforming to level
“AAA” of WAI's WCAG |
+5% |
-
You will be submitting an entire directory of files electronically.
-
The files you submit must all be in a directory named
3-state
.
-
Your initial webpage must be named
3-state.html
.
-
You may name the other files whatever you like.
-
Be sure that your name and student number are in all program source
code files and XHTML pages.
-
turn in all the files in your 3-state
directory using the submit program on
torch.
-
You will be submitting an entire directory of files electronically.
-
The files you submit must all be in a directory named
3-state
.
-
Your webpage must be named
3-state.html
.
-
You may name the other files whatever you like.
-
Be sure that your name and student number are in all program source
code files and XHTML pages.
-
Be sure that your webpage clearly says which browser and version it
is intended for. If the marker doesn't know which browser to use
and your program doesn't work on the browser he/she chooses then
your program does not work and you will lose many marks.
-
turn in all the files in your 3-state
directory using the /opt/bin/submit program on
torch.
- Before you run the program, make sure that your current directory
is the parent of the directory you will be submitting.
For example, if your assignment is in your
~/cs4173/3-state/ directory then use cd
to make ~/cs4173 your current directory before you run
submit.
- When submit prompts you for a file or directory name,
input
3-state
.
- Version:
- 02 March 2005
- Previous:
- (none)
- CS 4173 Prof.:
- J. Blustein
<jamie@cs.dal.ca>
-
-