Transcript CIT597
<cit597>
About This Course
29-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