CIT597 - CIS @ UPenn
Download
Report
Transcript CIT597 - CIS @ UPenn
<cit597>
About This Course
22-Mar-17
CIT597
The formal title of this course is “Programming
Languages & Techniques III”
A better title would be “Web technologies”
Some of these technologies are specific to Java
Most of the technologies are language-independent
Prerequisite: CIT594 or equivalent proficiency in Java
Translation: you had better already be a pretty good Java
programmer!
2
“The network is the computer”
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 connects millions of computers together,
running all kinds of programs on all kinds of operating
systems
Interoperability of programs and data is 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
Treat the web itself as an operating system
This may be what Google is working toward
The programming language of the web is JavaScript
4
Java, HTML, XML, etc.
JavaScript runs in all browsers
Java is the most platform-independent language we have
HTML describes web pages
CSS describes how to display HTML
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
Most web sites use servlets, programmed in Java
We will look at ways to access SQL databases from Java
Rails, programmed in Ruby, is an attempt to reduce the number
of tools required to program for the web
GWT is a way to translate Java into JavaScript
5
Some technologies we may cover
HTML
HTML Forms
JavaScript
XHTML & CSS
Ajax
XML
DTD
XML Schemas
RELAX NG
Java
servlets
JSP
Perl
PHP
Java
SAX
DOM
JAXP
Java
Java
JDBC
But underneath...
HTTP
TCP/IP
maybe RMI
Sockets
SQL
Apache
Tomcat
Ruby
Rails
XSL
XSLT
XPath
CSS
6
Software
Most of the necessary software will be available from
the Moore 207 lab
I strongly encourage you to install the software on your
own computer
The basic software you need is: Java 6, Firefox 3.5,
Eclipse for EE developers, Tomcat, and a decent text
editor (such as jEdit or Notepad++)
Other software will be recommended as needed
The newest versions of all this software are freely
available on the Web
I avoid proprietary (Windows-only) software
I can’t provide a lot of help with installation
7
Textbook
The textbooks are:
Murach's Java Servlets and JSP, 2nd Edition by
Andrea Steelman and Joel Murach
JavaScript: The Good Parts by Douglas
Crockford
Also, the Web is full of tutorials (such as w3schools)
and specifications
I will provides some links to these, but...
You should be able to find this kind of information for
yourself!
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: 5% off for each day late
Assignments will be due by midnight
9
Examinations
We will have a short quiz each Wednesday
Quizzes will concentrate on recently covered material, but
may include earlier material if appropriate
Quizzes may include material that was not covered in class
Your lowest quiz grade will be dropped
There will be no final exam
Assignments and examinations will be weighted as
follows:
50% assignments, 50% quizzes
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 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:
discuss the assignments with one another
help others debug their work
use, without attribution, anything I post to the Web
share code with anyone but your assigned partner (if any)
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
If you think you may have accidentally broken a rule, come
and talk to me about it
12
The End
“I know Karate, Kung Fu, and 47 other
dangerous words.”
--Source unknown
13