IT
220 Web
Technologies
Syllabus
Fall 2004
Instructor:
Margaret Menzin menzin@simmons.edu
Office: tel: x2704
physical office: S209
Home tel: 781-862-5107
(not after 10 p.m. unless
it is an emergency)
Office Hours: I am here MWF from 7:30 –8:00 a.m. and
Mon
11:00-1:30 and 3:00-4:30+
Wed
12:30-3:30
Fri 11:00-4:30
+/- except during lunch at
Bartol
Please
give me a “heads up” if you plan to come during lunch.
Note:
There is no class on Friday Sept. 17, 2004 because of the Jewish
Holiday.
This
class will
be made up at a time to be determined by us.
Texts: For HTML and CSS: Xeroxed Notes
For JavaScript: above plus "JavaScript - Concepts and Techniques" by Tina Spain McDuffie; published by Franklin Beedle For Web Services: "Executive Guide to Web Services" by Marks & Werrell; published by Wiley "Web Services Essentials" by Cerami; published by O'Reilly For XML: Learning XML - 2nd edition - published by O'Reilly written by Erik T. Ray - ISBN 0-956-00420-6
Note that XMLSpy, the tool we will use in the last part of the course, is available for a 30day free trial.
Do NOT download it before we are ready to start on that topic.
Expectations:
This
is an intermediate level course which introduces you to important
cutting-edge
technologies that make the web so useful across many different kinds of
computers and systems. Wherever possible we will use the current
standard tools
in the IT industry. Because this is very
new material we will use books aimed at IT professionals rather than
text
books. This, in itself, is a valuable
experience for you. This is all very
cutting-edge and it should be a lot of fun! I hope that, by reading
professional documentation, books, and newsletters, you will also learn
how to
learn about new technologies as they develop.
The
course should be both a lot of fun and a goodly amount of work. There is a lot of material, but it is
not
intrinsically overwhelmingly difficult.
Also, there is ample opportunity for you to be creative. I have tried to pre-load the work (heavier at
the start of the semester; lighter at the end), but since this is a new
course,
the schedule is a little less firm than it might otherwise be.
I expect you to be present for all classes and laboratories. The labs are a very important part of the
course, and, by now, you are experienced enough in computing to know
that there
is no substitute for hands on experience with the material.
Likewise, projects are to be handed in on the due date, unless an
extension has
been granted well in advance of the due date.
In general, it is easy to get a hold of me, and I am happy to help you
with
debugging (if your work is properly commented.) Indeed,
I recommend that after you stare at a
bug for 15 or 20 minutes, you seek help.
There are lots of times when someone else can see your error
(and you
would see hers) faster than you can. I
also encourage you to work together unless you are specifically told
that a
project is to be individual. Not only is
it more fun to work in groups, but everyone learns more.
Finally, knowledge of this material, because it is very current, will
be useful
in looking for internships and jobs.
Let’s
go!
Accommodations for
Special Needs:
Reasonable
accommodations will be provided for students with documented physical,
sensory,
systemic, cognitive, learning, and psychiatric disabilities. If you
have a
disability and anticipate that you will need a reasonable accommodation
in this
class, it is important that you contact the Academic Support Center
Director at
617-521-2471 early in the semester. Students with disabilities
receiving
accommodations are also encouraged to contact their instructors within
the
first 2 sessions of the semester to discuss their individual needs for
accommodations.
Grading:
Each
major
assignment or project or test counts equally towards the grade. Smaller assignments will have “points” as
indicated. In team projects grades are assigned based on both how the
team as a
whole does with the problem and how your team-mates assess your own
contribution.
Schedule(spreadsheet)
IT220_spreadsheet.html of classes
and labs
Unit 1 - HTML,
JavaScript, and
Client-Side Programming.
In
the
first part of the course we will focus on technologies that allow
people on
various computer systems to all call upon the same computer to do
things for
them. Of course, as you have all used
browsers like Internet Explorer and Netscape, you are all familiar with
how
easy it is and how you can access your favorite site whether you are on
a PC, a
Mac, or on a workstation. The underlying
technology here uses an agreed upon method for encoding information
(Unicode),
HTML (the mark-up language for web pages), and JavaScript (a very
straight-forward programming language).
As you already know how to program in one language (Java if you
took
CS112, or JavaScript if you took CS101) it will take us only 3-4 weeks
to
breeze through this material. Our emphasis
here will be somewhat different from CS101, as we will spend much less
time on
mathematical models, will be able to omit the material you have
previously
studied on the components of a computer, etc.
Instead, we will focus on forms and include material on
cascading style
sheets (CSS). Further, I am asking the
Week
1 –
Brief review of what we all know about the Internet;
Beyond Classic
HTML (Wed. Sept 8 and Fri. Sept. 10)
.
Week
2 -
XHTML – thru tables, frames, etc. This
also introduces the XML model
Quiz on XHTML at end of week 2
Week
3/4 -
JavaScript – variables (global and local), loops, control statements,
functions.
Project due:
Print out the 12 Days of Xmas using
all the following methods:
1.
Write a function which
prints one
verse (backwards) and a loop in your body which calls the function for
days 1-12
2.
Write a nested loop in
your body,
with the outer loop going forward (for each day) and the inner loop
going
backwards (from your day down to day 1)
3.
(Optional) a. Write a recursive function which prints one
day and calls itself on previous day; in
the your body you should call the function in a loop (going forward)
b. Write a
recursive program for the “Farmer in the Dell” or for “I packed my
trunk” where
the user inputs the items in an array with each verse and the program
prints it
out recursively.
Week
4/6 –
Advanced JavaScript – forms, validating user entered information,; CSS
Project: Write code
to validate a North American
phone number and a credit card number.
Unit 2 - Server Side
Programming for
Web Pages
In
the
first unit of the course you will have constructed sites where a page
or pages
is requested by the user but then the page/program runs on the user’s
machine. This is called client-side
programming. Sometimes, however, the
user needs to have the machine which hosts the site do some work and
return
some information. For example, imagine
that you order something from an on-line store such as Amazon. Amazon’s computers need to check availability
of the books you want, calculate shipping costs, ask for your credit
card
number, etc. Then Amazon’s computers
need to return information to you (Is a book out-of-print?
When will your order be shipped? etc.) The
programs which do this work and
communicate with you, the user, are called server-side programs. In this unit we will learn how to make your
web page “post” information to the server, have a program on the server
retrieve this information and respond to the client.
Week
6/7 –
Dreamweaver workshop and group project due and start on Unit 2 below
Classes will talk about post and get, CGI,
perl, etc.
Project: Design a site to
introduce high school students to the field
of computing. Specific
requirements for the site will be handed out.
Unit 3 - Introduction to
Web
Services
The
first
two units dealt with technologies which allow a person on any computer
to
interact with another computer. Now we
turn to the problem of computers interacting with each other without
human
intervention. (The lingo for this (and there is lots of lingo out
there) is
“interoperate”.) We begin by examining
the components and technologies (and what stage of development they are
in)
which go into making this possible. In
this relatively short unit you will learn how to toss around lots of
acronyms,
such as SOAP, WSDL, UDDI and XML, XST, etc.
You will understand how these technolgies work together, who
keeps
everything universal, etc. There will be a test.
Week
7 –
Alphabet soup – XML, XSLT, SOAP, UDDI etc.
What each does, how they interact, state of adoption and
standards
Test at end of week 7
Unit 4 - XML
Just
as
HTML is the vehicle for designing web pages which may be displayed on
any
computer, we also need a universal language for describing data. That language is XML. XML
stands for eXtensible Mark-up Language.
XML allows you to do two things: describe in general form what your
data looks
like, and give particular examples of that data (which may even be
“validated”
as conforming to the general description.)
For
example, a student transcript might contain “student personal
information” and
one or more “semesters”; a semester has one or more “courses”; a
“course” has
exactly one “department name”, one “course number”, one “section
number” one
“credits”, one “title” and one “grade”.
Further you might specify a “course number” as an integer from
100 to
999 inclusive, etc. What you are doing
is building, as your “general description”, a
giant properties section of a class, but you
are also storing it in such a place that many computers can refer to it. (Imagine that all publishers, librarians,
etc. agreed on what a book record looked like. That record format could
then be
used by all of them, and a library ordering a book would know, for
example, that
the “title” always came before the “authors”.
It would make it much easier for a library’s computers to order
books
from the publishers’ computers.)
If
you
think this looks pretty easy, you’re right.
We will use XMLSpy to construct our XML schemas (definitions). Also, as you might guess from the name, XML
may be added to by various industries to make it more useful. So, for example, there is a mathML, an eBXML
(for e-business) which have addition types for those fields. There will be individual projects, a test,
and, hopefully, you will get to use each other’s XML schemas. We will touch briefly on how data is
transformed from programs and databases into XML and vice versa.
Week
8/9 –
Basic XML and DTDs; small project due at end of DTDs
Week9/10–
Move to Schemas; true extensibility
Week
11-
Namespaces
Project
due
at end of Week 11. May involve your
learning (on your own) about one of the extension of XML, such as
Math-ML or
eBXML etc.
Week
11/12
XSLT (and Thanksgiving)
Unit 5 . More
Server-Side Programming
In
the
second unit of the course you looked at server-side programming for web
pages; now we look at server-side
programming for web services. There will
be a team or individual project.
Week
13/14
More on the server side – including SOAP, RPC, etc;
reading the Journals and professional sites
Final
project due last day -----maybe becoming an Amazon Web Services
Associate