IT 320 Web Services and Web

advertisement
IT 320 Web Technologies
Syllabus
Details of dates
Are on the Schedule
Fall 2006
Table of Contents
for notes/site
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 to 8:00 a.m. and
Mon 10:00-1:30 and 3:00-4:30+
Wed 10:30-3:30
Fri 10: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 Monday Oct. 3, 2006 because of the Jewish Holiday.
This class will be made up at a time to be determined by us.
Texts: For HTML/XHTML and CSS: Xeroxed Notes
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 30 day 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 cuttingedge 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!
.
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) IT320_spreadsheet.html 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, and AJAX .
Further, I am asking 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 w3c.org�s documentation on XHTML.
Week 3/4 - JavaScript - variables (global and local), loops, control statements, functions.
Project due (Further pieces may be added to this project):
Print out the verses of a song which has a pattern like that of 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 1-12
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 AJAX
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 will 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 ebusiness) 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.
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.)
Download