Transcript CIT597

<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