<cit597> About This Course 23-Mar-16 CIT597 The formal title of this course is “Programming Languages & Techniques III” A better title (this semester, at least) would be “Web technologies” Some of these technologies are specific to Java Most of the technologies are language-independent This course, however, uses Java Prerequisite: CIT594 or equivalent proficiency in Java Translation: you had better already be a pretty good Java programmer! 2 What this course is about The explosive growth of the Web has greatly changed the face of computing Before, we wrote programs under these assumptions: We could use whatever language was convenient We could write programs for the computer we happened to have available at the moment We could design our own data formats and database schema We did not have to interact with the rest of the world Today, all of these assumptions are wrong! Sun’s slogan, “The network is the computer,” is becoming true Platform independence is no longer a luxury, but a necessity There is a large and growing need for information interchange 3 Platform independence The Internet has become extremely popular It connects millions of computers together These computers run on all kinds of computers, with all kinds of operating systems Interoperability of programs and data has become a serious issue There are two possible solutions: Microsoft’s preferred solution: Force everyone to use Windows Much of Microsoft’s software is designed with this end in mind If this happens, it will not happen quickly Develop platform-independent languages and systems This is what all the other software developers (including Sun Microsystems, the creator of Java) are working on 4 Java, HTML, XML, etc. Java is the most platform-independent language we have HTML is not as feature-rich as MS Word, but it nevertheless does a pretty good job We will look at ways to process XML from Java SQL is the most widely accepted database language HTML is the language of the Web Most software documentation these days is distributed in HTML, PDF (Adobe’s Portable Document Format), or plain text We will look at ways to create HTML from Java XML is a platform-independent way of describing data This is one of the reasons for its popularity (there are many others) We will look at ways to access SQL databases from Java Client-server architecture is used to communicate across the Web We will look at creating server-side and client-side applications 5 Technologies This semester you will learn a little bit of each of a large number of technologies: HTML, XHTML, XML, XSLT, XPath, SAX, DOM, Servlets, JSP, SQL, JDBC, some others I forgot to list My goal is simply to get you started with each, and to show you how they are interrelated These technologies build upon one another--each topic is not, in general, a new beginning You don’t have to be an expert in all of them, but you are expected to learn where to find out more I’m a beginner in most of them, myself 6 Software All the software you need is on the Web If you use your own computer, you need to install this software Everything you really need is free (except RAM and disk space!) I avoid proprietary (Windows-only) software I can’t provide a lot of help with installation 7 Textbook Our textbook this semester is Advanced JavaTM: Internet Applications by Art Gittleman Additional instructional material is on the Web The Web is full of great (and some not-so-great) tutorials and specifications I provide links to online tutorials and resources, and I expect you to use them If you find better links, please let me know! Books still rule, but you don’t need a new book for every new topic we cover 8 Assignments We will have approximately one assignment per week Assignments will frequently build on previous assignments Assignments may say something like, “plus five features not covered in class” This is to make sure you explore the resources available to you Note: To make it practical to grade your assignments, it is your responsibility to point out these extra features Appearance and content will be factors in grading Late policy: 10% off for each day late Assignments will be due by midnight If within an hour (before 1 a.m.), the penalty will only be 5% 9 Examinations We will have a short quiz approximately every two weeks, and a final exam Quizzes will be announced in advance (at least on the web site) Quizzes will concentrate on recently covered material, but may include earlier material The final exam will be comprehensive and will count twice as much as a quiz Quizzes and the final exam may include material that was not covered in class If we have at least six quizzes, your lowest quiz grade will be dropped Assignments and examinations will be weighted as follows: 40% assignments, 60% exams Grades will be curved: 90% (or any other number) is not necessarily an A 10 Extra credit I will not, in general, provide specific extra credit assignments Small amounts of extra credit will be given for helping to improve this class; for example: Finding new Web sites that I think are really useful (just finding relevant Web sites is easy; there are hundreds or thousands) Pointing out serious problems in my assignments (early enough to help others!) I may allow significant extra credit for a project of your own devising, if you first get me to agree and then do a good job on it Extra credit will be used to adjust grades upward, after they have been calculated for the entire class 11 Rules You may: You may not: work together copy another’s code, or allow your code to be copied lend your code to someone else, or leave it lying around where someone else may copy it use any code from textbooks or the Web without my permission Penalty for first offense: discuss the assignments with one another help others debug their work use, without attribution, anything I post to the Web You will be reported to the Office of Student Conduct You will receive an F in the course If you think you may have accidentally broken a rule, come and talk to me about it 12 The End 13