LMU | CMSI 655
INTERNET TECHNOLOGIES
Syllabus • Spring, 2003
Ray Toal
rtoal@lmu.edu
Doolan 110
310.338.2773
Thursday Evenings
6:30 p.m. – 9:30 p.m.
Doolan 222
3 semester hours

Objectives

To gain a working knowledge of the basic mechanisms, services and protocols of the global Internet; to become proficient in socket-level, RMI and Enterprise Java Beans application development; to master XML and some of its applications including XHTML and SMIL; to gain practice with client side web technologies like CSS and JavaScript; to become familiar with web servers and web server extensions such as Java servlets and JSP; to design and implement efficient, scalable and secure database backed web sites.

This course is targeted toward serious developers and students of Computer Science. The course does not cover how to produce VLSI circuitry to implement NICs, does not prepare you for a Network Technician Certification, and does not teach you how to make cool web pages!

Prerequisites

Programming proficiency in C++ or Java, or the ability to master Java in two weeks.

Readings

Readings for this class include portions of the following sources:

No textbook ever completely fits a class, so be prepared for a large number of handouts. You will also be expected to read or study extra materials in support of your classwork (particularly your term project), and for your general education. You'll likely require supplementary reading material on Java, Internet RFCs, Webmastering, Web design, Java Enterprise Computing, TCP/IP, Linux, and the like

Additional papers and readings will be assigned throughout the course (inlcuding my own course notes, practice problems, and sample code). If you have projects or papers to work on you'll have to find some additional readings on your own. Use judgement when researching on the web; a fair amount of information is often wrong, and much of the so-called sample code is especially atrocious. Still, please take the time for self-study and practice, practice, practice writing code.

Assignments and Grading

You'll have several homework sets containing in-depth theoretical questions and non-trivial programming problems, and quizzes and a final exam with less difficult material. To help prepare you to meet industry expectations for college graduates, most assignments will take the form of open source software products. Unless otherwise specified, you are required to keep all work in your CVS repository and prepare all homework solutions with LaTeX document preparation system. Exams will cover material from lectures not previously assigned for homework: don't whine about this.

Generally, coursework may be done in groups of no more than two students; however, while only one solution set is turned in per group, both students are responsible for understanding all of its content and may be asked at any time for an oral explanation of any solution. Collaboration with other groups is fine but must be limited: you may share ideas and approaches but nothing resembling a solution (not even pseudocode). You must also acknowledge any help received.

Your final grade will be weighted as follows:

Homework sets
30 pts
 
Quiz 1
12 pts
 
Quiz 2
16 pts
 
Project
15 pts
 
Final Exam
27 pts
 

Letter grades are figured according to the usual scale: 90% or more of the total points gets you an A, 80% a B, 70% a C, and so on. These are minimal requirements; for example, if you get 82 points you are guaranteed a B- or better, though you might still get an A since 82 may be the top score.

Homework is due at the beginning of class; late assignments are docked 30% per class. Missing class just to get an assignment done on time will not be tolerated; the only good excuses for missing class are excellent surf conditions, family problems, sickness, and personal emergencies. Skipping class just puts your fellow students at an advantage: we often spend class time going over things that will be "on the exam".

Your programming style will play a huge part in determining your score on the programming assignments. I will not hesitate to assign D's or F's to working programs which are poorly structured, under-commented, have poor identifier names and abbreviations, contain inappropriate hard-coded values, or are not easily maintainable. Appearance of the grading policy in this syllabus constitutes fair warning of the consequences of poorly written code.

Topics and Tentative Schedule

This is a tentative schedule.