IT 320,CS321 Web Services and Web–Centric Programming              Syllabus                                     Fall 2010


Details of dates                      Table of Contents

Are on the Schedule              for the notes/site


Instructor:     Margaret Menzin                     

                      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:00 to 8:00 a.m. and

                        Mon 10:00 - 4:30 and

                        Wed 10:00 - 3:30 and

                        Fri    10:00-11:30 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 Friday Sept. 10, 2010

                                               This class will be made up at a time to be determined by us.


Texts – all books are available used: 

           You are required to have a student (or full) membership in the ACM for access to outside reading.
           For HTML and XHTML and other topics I will provide a (free) CD with notes etc.
           For JavaScript: above plus "Teach Yourself JavaScript in 24 Hours " by Michael Moncour
                     Fourth edition; published by SAMS
           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 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.
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.

Let's go!

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

Unit 1  HTML/XHTML, 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 events, and ?include material on cascading style sheets (CSS), DOM,

Further, I may ask the Pottruck Technology Center to run a workshop on Dreamweaver
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 documentation on XHTML.

Week 3/4 -
JavaScript  - variables (global and local), loops, control statements, functions. 
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 -
Advanced JavaScript - forms, validating user entered information; CSS, the DOM,
introduction to
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 ProjectMulti-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.

Week 7
-  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

Week9/10 -
Move to Schemas;  true extensibility

Week 11-

Project due at end of Week 11.  

Week 11/12
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.

Week 13/14
- 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.)