IT 320,CS321 Web Services and Web–Centric Programming Syllabus Fall 2010
Details of dates Table of Contents
Are on the Schedule
Instructor: Margaret Menzin firstname.lastname@example.org
Office: tel: x2704 physical office: S209
Home tel: 781-862-5107 (not after unless it is an emergency)
Office Hours: I am here MWF from to
Fri and 1:00-4:30+/- (i.e. not during lunch at Bartol)
Please give me a heads up if you plan to come during lunch.
Note: There is no class on
This class will be made up at a time to be determined by us.
Note that XMLSpy, the tool we will use in the last part of the course, is available for a limited free trial.
Do NOT download it before we are ready to start on that topic
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.
Expectations: This is an advanced 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 an evolving 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.
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.
IT320 Schedule of classes and labs
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
straight-forward programming language). As you already know how to program
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 events, and ?include material on cascading style sheets (CSS), DOM,
Further, I may ask the
to run a workshop on Dreamweaver Pottruck Technology Center
for us. (Dreamweaver is very useful for constructing and maintaining
large websites. As you will see, even using this tool, you still need to
be able to go in and code parts by hand, for example to get layouts to work
properly with tables.) In addition to smaller assignments, and a test,
there will be a good-sized team project.
Week 1 – Brief review of what we all know about the Internet;
Beyond Classic HTML (Wed. Sept 6 and Fri. Sept. 8)
Week 2 - XHTML
thru tables, frames, etc. This also introduces the XML model and we will
spend a lot of time reading w3c.org documentation on XHTML.
Week 3/4 -
Project due (Further pieces may be added to this project):
Print out the a song which follows a pattern similar to the 12 Days of Xmas
using all the following methods:
Write a function which prints one
verse (backwards) and a loop in your body which calls the function for days
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)
(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 -
Project: Details TBA, possibly a utility to turn text
announcements into HTML one.
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. You will modify some simple Perl scripts.
Group Project: Multi-step interaction between a user and server involving several web pages.
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 technologies work
together, who keeps everything universal, etc. There mayl be a test.
- Alphabet soup - XML, XSLT, SOAP, UDDI etc. What each does,
how they interact, state of adoption and standards
Paper 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
Move to Schemas; true extensibility
Project due at end of Week 11.
XSLT (and Thanksgiving)
Unit 5 .
More Server-Side Programming and the X in XML
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.
- More on the server side - including SOAP, RPC, etc; reading the
Journals and professional sites
Final project presentations: each of you will be asked to give a lecture on an extension of XML: how to become an Amazon Web Services Associate, or RSS feeds or the Semantic Web and RDF or eBXML or MathML or a topic of your choosing (with my approval.)