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.)