<cit597> About This Course Can you read this? • This is the smallest font that I typically use on these slides--it’s Times New Roman, 20. If you can read this easily, then you should be OK – However, I do occasionally use this same font (Times New Roman) in this size, which is 18 point. – I also use Trebuchet in 18 point (for program text), but I think that this font will be less of a problem • public static void main(String args[]) {...} • If you can’t read this, you’re too far away! 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! 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 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 Java, HTML, XML, etc. • Java is the most platform-independent language we have – This is one of the reasons for its popularity (there are many others) • HTML is not as feature-rich as MS Word, but it nevertheless does a pretty good job – 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 – We will look at ways to process XML from Java • SQL is the most widely accepted database language – 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 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 Resources • 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 (other that what is on my Web pages) • All the instructional material you need 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 Assignments • We will have approximately one assignment per week – Assignments will frequently build on previous assignments – Assignments will often 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 • Due to Blackboard constraints, even “a minute late” counts! Examinations • We will have a short quiz approximately every two weeks, and a final exam – 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 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 Rules • You may: – discuss the assignments with one another – help others debug their work – use, without attribution, anything I post to the Web • 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: – 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 The End