PIC 40A, Winter 2004
Introduction to Programming for Internet
SYLLABUS
MAIN LECTURE:
DISCUSSION SESSIONS:
- TA:
Keith Ouellette.
- Section 1a meets TR at 12:00pm - 12:50pm in MS 5233.
- Office hours:
- Tuesday 11:00am - 12:00pm in the PIC Lab
- Wednesday 3:00pm - 5:00pm in the PIC Lab
TEXTBOOKS:
EXAM DATES:
- Midterm:
Friday, February 13, 2004, 12:00pm - 12:50pm, in class.
- Final exam:
Wednesday, March 24, 2004, 11:30am-2:30pm, in TBA.
GRADING POLICY:
MISCELLANEOUS:
- Please consult the class web page
"http://www.math.ucla.edu/~fedandr/40a.1.04w/"
for a detailed information on class policies and procedures as well as
for the latest
- I do not give incompletes, except in cases of extreme human tragedy.
- PIC Lab Information and Remote Access Instructions can be found at:
http://www.pic.ucla.edu/piclab/
.
- Virtual Office Hours for our Class are located at:
- Please note that I neither read anonymous posts and/or anonymous e-mails,
nor (moreover) reply to such posts and/or e-mails.
I am sorry for any inconvenience.
AN OVERVIEW:
PIC 40A, PIC 40B course sequence is intended as a thorough introduction
to programming for the Internet. We start with a detailed study of the
core Internet technologies which form foundation of Web development.
These core technologies include: Internet protocols (TCP/IP, FTP, TELNET,
HTTP, and CGI Protocol), markup languages (HTML with CSS,and XML), client-side
programming with JavaScript, and server-side programming with CGI scripts.
We want to stress the open, cross-platform and vendor independent nature
of the core Internet technologies. We also want to emphasize the fact that
Internet protocols and markup languages allow great freedom of choice
in actual implementations (for example, CGI protocol allows creation
of CGI scripts with any programming language that can read from standard
input and write to standard output).
We proceed to introduce two open cross-platform frameworks for server-side
Web development: Perl and Java. Both frameworks enjoy great popularity and
are used widely on the Internet. For the most part these frameworks provide
comparable functionality, although some things are easier in Perl
(working with regular expressions, or creating web robots with LWP module,
for example), while other things are easier in Java (handling multimedia
content, such as sounds and animation, for example). After an introduction
to each of the two frameworks, we proceed to study a selection of
advanced topics in Web development. These include XML processing, database
connectivity, HTTP transactions, network programming, and PHP among other
topics. The choice of a particular Web development framework for each of
the advanced topics is left up to the instructor, but the course should
present a balanced mix of various possibilities.
Finally, both parts of the course - introduction to common core technologies
and study of selected advanced topics - would not be complete without a
discussion of Internet security, which includes such topics as access
permissions, encryption, port scanning, proxy servers and firewalls.
PIC 40A: "PROGRAMMING FOR THE INTERNET, AN INTRODUCTION"
- Course Description:
An introduction to core technologies of the Internet with a focus on
client-side Web programming.
- Suggested Course Outline:
- History and architecture of the Internet and the World Wide Web.
Client-server model of computing and peer-to-peer networks in
particular. (Week 1.)
- Fundamental Internet protocols: TCP/IP, HTTP, FTP, TELNET.
(Week 1.)
- Publishing web pages on the Internet - choice of a web server and
creation of a personal web site. Review of basic UNIX commands
in particular. (Week 1.)
- Creating static web pages with HTML. (Week 2.)
- Establishing uniform web page style with CSS. (Week 2.)
- Using HTML forms for interactive input. (Week 3.)
- Programming interactive browser behavior with JavaScript, elements
of Object-Oriented Programming. (Week 3, week 4.)
- Overview of CGI protocol. Examples of CGI scripts using UNIX shell,
C/C++, and Perl. (Week 5.)
- A Perl tutorial with focus on CGI scripting - handling user input,
storing/processing/retrieving information on the server, generating
dynamic web pages. (Week 6, week 7.)
- An introduction to Java Applets - Object-Oriented programming once
again. (Week 8.)
- Using Java Applets to handle multimedia content - playing sounds
and animation. (Week 9.)
- Internet Security - digital signatures, access restrictions,
firewalls and proxy servers. (Week 10).
- Sample Texts:
- S.Spainhour, R.Eckstein "Webmaster in a Nutshell" 2nd ed.
O'Reilly 1999. ISBN 1-56592-325-1.
- M.Hall, L.Brown "Core Web Programming" 2nd ed.
Prentice Hall 2001. ISBN 0-13-089793-0.
- R.Schwartz, T.Phoenix "Learning Perl" 3rd ed.
O'Reilly 2001. ISBN 0-59600-132-0
- N.Patwardhan, E.Siever, S.Spainhour "Perl in a Nutshell" 2nd ed.
O'Reilly 2002. ISBN 0-59600-241-6
PIC 40B: "PROGRAMMING FOR THE INTERNET, ADVANCED TOPICS"
- Course Description:
A study of advanced topics in Web programming with a focus on
server-side technologies.
- Suggested Course Outline:
- Creating portable structured data with XML. (Week 1)
- XML processing (using either Perl or Java). (Week 1)
- CGI scripts with Perl using Regular Expressions. (Week 2)
- Programming HTTP transactions with Perl LWP module. (Week 3)
- Java Servlets as an alternative to traditional CGI. (Week 4)
- Java Server Pages. (Week 5)
- Introduction to Relational Databases and SQL. (Week 6)
- Database Access (using either Perl or JDBC). (Week 6, week 7)
- Network Programming - sockets, e-mail, ftp (using either Perl or
Java). (Week 7, week 8)
- Alternatives: PHP, Server-Side Includes ... (Week 9)
- Internet Security. (Week 10)
- Sample Texts:
- S.Spainhour, R.Eckstein "Webmaster in a Nutshell" 2nd ed.
O'Reilly 1999. ISBN 1-56592-325-1.
- M.Hall, L.Brown "Core Web Programming" 2nd ed.
Prentice Hall 2001. ISBN 0-13-089793-0.
- R.Schwartz, T.Phoenix "Learning Perl" 3rd ed.
O'Reilly 2001. ISBN 0-59600-132-0
- N.Patwardhan, E.Siever, S.Spainhour "Perl in a Nutshell" 2nd ed.
O'Reilly 2002. ISBN 0-59600-241-6
- S.M.Burke "Perl and LWP"
O'Reilly 2002. ISBN 0-59600-178-9
Last modified on
by fedandr@math.ucla.edu.