Department of Computer Sciences
University of Texas at Austin

CS 329E - Elements of Web Programming (Fall 2009)
Unique No: 54745
Room: PAR 1
Time: MWF 1:00 pm - 2:00 pm

Instructor: Dr. Shyamal Mitra
E-mail: mitra@cs.utexas.edu
Office Hours: MWF 10:00 AM - 10:50 AM, or by appointment on MWF after 3 PM
Office: PAI 5.52

Teaching Assistant: Apurv Bhartia
E-mail: apurvb@cs.utexas.edu
Office Hours: TTh: 3:00 PM - 4:00 PM, or by appointment
Location: PAI 5.38

Required Text:
Programming the World Wide Web - Robert Sebesta
Publisher: Addison Wesley, Edition: 4/E or 5/E

Scope of the Course

This is an elective course in the Elements of Computing series. I assume that you know Java at the level taught in CS 303E and 313E. Experience using HTML or other packages to develop web pages is not required. This is an introductory course in understanding the technologies involved in developing a web application. We will be writing programs to build our web applications rather than using any one software package that is already on the market. This is where your programming knowledge from CS 303E and CS 313E will be extremely helpful.

Not only will we learn the technical details of building a web application, we will also discuss and think about design issues. We will interleave our lectures on design with discussions on technical topics during the first half of the course. The second half of the course will be mainly technical topics.

Assignments

There will be reading assignments before each lecture. The readings will be from the books or you might be asked to research the web. I expect you to come to class having read the material. The class period will be taken up in discussing the material. There will be classwork that will go along with the discussion.

There will be homework assignments that will consist of problems from the book or those handed out in class or posted on the web. There will be programming assignments that you can complete in the CS Elements Lab. You may also choose to use your own computer to work on these assignments.

The only way to learn web development is to program. Doing the programming assignments is crucial to performing well in class. Assignments will be given almost every week. Each assignment will have a clearly stated due date and time. Assignments start out being easy but get harder over the semester. If you are having considerable difficulty with Assignments 2 and/or 3, please see me immediately. The assignments will require a substantial time commitment over several days (an average of 8 hours per week should be expected). Be sure to budget sufficient time to complete assignments before the deadline.

The goal of some of these homework assignments will be to build sub-components of your final project. It will be to your benefit to save all your homework assignments.

There will be a clearly stated deadline for each assignment. This permits grading to start promptly after the submission deadline so that assignments maybe returned promptly. If you do not finish an assignment by the deadline you have a maximum of two days to turn your assignment in. However, there is a penalty of 10 points (out of 100 points) per day. Your assignment is one day late until the midnight of the day after it is due, two days late from then until midnight of the second day. If you still have not completed your assignment after the second day, you need to talk to me about your particular situation.

We are encouraging you to work in pairs for your homework assignments. However, each partner in a pair will be hosting the web pages for the homework assignments in his or her own directories. You will be working on the final project on your own.

Final Project

The final project will involve building a web site. You will be given temporary accounts on the CS machines to store and host your web site. You will decide on the content of the web site after discussing with me. The technical specifications for the web site will be given to you. The final project will be due on the last day of class.

Tests

There will be three tests and no final examination. The tests will last 2 hours and will be given in the evening. Make-up exams will be given ONLY for an official UT conflict, and you must submit a written make-up request with proof of conflict to the instructor one week before the tests.

There will be occasional pop quizzes - one after each major section of the course - XHTML, CSS, JavaScript, PHP, and SQL. Your scores for the pop quizzes and your attendance will count towards your class participation. Attendance to lectures is mandatory. If you are missing a lecture you need to send me an e-mail explaining why.

Test Schedule
Test Date Time Room
Test 1 Wed, 23 Sep 7:00 PM - 9:00 PM UTC 4.124
Makeup 1 Thurs, 24 Sep 7:00 PM - 9:00 PM CPE 2.214
Test 2 Wed, 28 Oct 7:00 PM - 9:00 PM UTC 4.124
Makeup 2 Thurs, 29 Oct 7:00 PM - 9:00 PM CPE 2.214
Test 3 Wed, 02 Dec 7:00 PM - 9:00 PM UTC 4.124
Makeup 3 Thurs, 03 Dec 7:00 PM - 9:00 PM CPE 2.214

Grades

Your performance in this class will be evaluated through the homework assignments, participation in class as measured by your attendance and pop quizzes, three tests, and the final project. The weights of each of these components are listed below: If you have more than 6 abscences during the semester you will forfeit all the points alloted to attendance, i.e. 5% of your grade.

Study Groups

Please organize yourselves into study groups of ~5 students who will meet once a week to discuss the course. Typically, you will review the lectures, do the reading, and attempt the homework independently before your weekly meeting with your study group. Studying for tests together is permitted and encouraged. If you are unsure about how to work together with your friend in a legal, helpful manner, do come and talk with us. Remember, it is always ok to "work together" with your professor or TA!

Academic Misconduct Policy

While you are free to discuss the course material with your classmates and are encouraged to form study groups for the exams, collaboration on homework or programming assignments is not permitted, unless you have an authorized partner for pair programming.

Helping a friend understand the intent of a homework or programming assignment specification is permitted. Students who are not pair programmers and who work together too closely (e.g. design their solution together) should be aware that this is a form of cheating called COLLUSION and is subject to academic penalties. Penalties for academic misconduct include a failing grade in this course.

The homework, tests, and project must be the work of students turning them in. University policy (see Dean of Students' policies on academic integrity) will be followed strictly.

Acts that exceed the bounds defined by the approved collaboration practices will be considered cheating. Such acts include:

We urge everyone in the class to take appropriate measures for protecting one's work. You should protect your files, homework solution sheets, etc. as deemed reasonable.

Your Responsibilities in This Class

University Time Table

General Policies

If you are absent from class or examination for the observance of a religious holy day you may turn in your assignment or take the examination on an alternate date provided you have given me written notice fourteen days prior to the class absence. For religious holy days that fall within the first two weeks of class notice must be given on the first class day.

Students with disabilities who need special accommodations should contact the Services for Students with Disabilities (SSD) Office (471-6259 or 471-4641 TTY).