Spring and Fall Semesters 2003

Calendar Students Office Hours Grading Course Materials QuizSite MyGrades

Lecture and lab notes will be posted here for your convenience.

[01] Jan 14
[02] Jan 16
[01] Lab One
[03] Jan 21
[04] Jan 23
[02] Lab Two
Homework One
[05] Jan 28
[06] Jan 30
[03] Lab Three
Homework Two
[07] Feb  4
[08] Feb  6
[04] Lab Four
[09] Feb 11
[10] Feb 13
[05] Lab Five
[11] Feb 18
[12] Feb 20
[06] Lab Six
Homework Three
[13] Feb 25
[14] Feb 27
[07] Lab Seven
[15] Mar  4
[16] Mar 11
[17] Mar 13
[08] Lab Eight
Homework Four
[19] BREAK
[09] No Lab
[18] Mar 25
[19] Mar 27
[09] Extra
[09] Lab Nine
Homework Five
[20] Apr  1
[21] Apr  3
[10] Lab Ten
[22] Apr  8
[23] Apr 10
[11] Lab Eleven
[24] Apr 15
[25] Apr 17
[12] Lab Twelve
[26] Apr 22
[27] Apr 24
[13] Lab Thirteen
[28] Apr 29
[29] May  1
[14] Lab Fourteen
[30] FINAL
(Thu May 8
They will closely follow and slightly improve on the

ClassPak course packet (which is available at the IU Bookstore).

Here's the outline of what will be covered in this class.

  1. Introduction to Unix.
  2. Introduction to Perl and Java. Installing Apache.
  3. Maintaining Apache (very basic). Basic HTML.
  4. Basic Perl and Basic Java. Object-Oriented Perl.
    Studying HTTP by using an own browser and own server written in Java.
  5. Basic Pattern Matching in Perl (Simple Regular Expressions).
  6. Basic CGI (with PERL). Environment variables. Basic HTTP (GET/POST).
  7. CGI Processing with
  8. Relational Databases and MySQL (basic introduction to the topic)
  9. Web database access with CGI, Perl, and
  10. Maintaining state with Perl/CGI and MySQL
  11. Alternative server-side programming: PHP. PHP sessions.
  12. PHP database access on the web. A shopping cart.
  13. Client-side programming: Javascript and DHTML
  14. A Javascript shopping cart
  15. Alternative client-side programming: Java applets.
  16. Basic Java: the class extension mechanism, dynamic method lookup.
  17. Basic Java I/O and basic Java networking (sockets, RMI)
  18. What would it take to write a web browser (or a web server) in Java.
  19. A simple chat aplication with Java RMI.
  20. Installing Tomcat (web server supporting server-side Java)
  21. The basics of Java servlets.
  22. Applet-servlet communication (web chat with HTTP)
  23. MySQL database access from Java (with JDBC)
  24. Java Server Pages
  25. XML and XSLT
  26. Web discussion forum with Java servlets, MySQL, XML and XSLT
  27. XML-RPC. Web Services, SOAP, WSDL, and UDDI. Relationship with RMI.
  28. Encryption and security on the web

Those topics marked in red are areas in which example implementations of semester projects will be presented from the outset (first week of classes). One can choose one such topic and the associated implementation and turn it into the semester project (by knowing it very well at the end of the semester and defending it in person, or taking a written exam on it).

Office Hours

A schedule of office hours is listed below:

Instructor Username Days Location Time
Adrian German dgerman MT LH201D 9-10am
MTWR LH201D 1-2pm
Gan Chen chengan Thursday LH112 7-9pm
Sriram Raghuraman sraghura F LH016
(basement, Lindley)
Tawanna Essex taessex M LH310B 11:30am-1:30pm

The schedule of labs and their associated instructors as follows:

1240  4:40P- 5:30P R SE045 (21) Gan Chen 
1241  4:40P- 5:30P R BH107 (21) Sriram Raghuraman 
1242 10:10A-11:00A F LH023 (11) Adrian German
1243 11:15A-12:05P F LH023 (15) Tawanna Essex


A348 is offered in the same rooms and at the same time with A548. The syllabus is the same for A348 (undergraduate) and A548 (graduate) students. There are about 6-7 assignments per semester, two in-class closed-book exams (the midterm and the final) weekly lab assignments that need to be turned in during the lab, and a semester instructor-coordinated group project.

The assignments and the exams have two components: a basic component that is required of all students (this part tests understanding of the concepts presented in class and demonstrated in the lab modules) and a more advanced component that is optional for the undergraduates but is required of the graduate students.

The basic component of an assignment accounts for 100% of the assignment grade of an undergraduate student, and for 67% of that of a graduate student. The advanced component of the assignment usually requires a certain amount of independent study on the part of the student, as it refers to concepts and procedures mentioned but not presented in great detail in lectures or lab modules. This component is optional for the undegraduates, but it accounts for 33% of the assignment grade for the students enrolled in A548. Quizzes and in-class assignments are identical for all students, and team projects (coordinated by the instructor) are all of the same difficulty.

Where teams are composed of both graduate and undergraduate students the graduate students are expected to assume additional responsibilities in terms of team coordination, project implementation and final presentation, and contributions to the project will be graded separately.

Course grades will be determined as follows:

Component Category Weight
Six Assignments HWK 30%
Group Project PRJ 15%
Midterm Exam MID 15%
Final Exam FIN 15%
Lab Assignments (about 12) LAB 20%
Minute Papers (about 28) MIN 5%

The overall cutoff scale is as follows:

0-54 55-59 60-65 66-67 68-69 70-75 76-77 78-79 80-85 86-87 88-89 90-95 96-100
F D- D D+ C- C C+ B- B B+ A- A A+

Late policy: all assignments need to be turned in on time. We'll help you accomplish that.

Course Materials

There are two books and a ClassPak course packet that you need for this class:

The notes posted here also need to be read and known inside out.

Last updated: Jan 14, 2003 by Adrian German for A348/A548