Computer Science
Internet Programming
COMPSCI 334 S1 T 2008
NOTE: This site is always in flux (information may be inaccurate and may be amended by announcement in class and/or by class e-mail). Please ensure that you read your class e-mail at least once a day!Welcome to 334!
COMPSCI334 introduces you to the concepts and philiosphies behind a range of industry standard technologies such as JSP, PHP, JavaScript and CSS. The course doesn't just explain the concepts, we also aim to teach you how to actually make such technologies work safely and efficiently & equip you to master future developments that grow from them. We want you to come to grips with the nuts and bolts, so it's a hands-on course. Expect long hours in front of the computer trying to get these elusive bugs under control. Expect to finally understand and apply some of the theory you've studied in other courses.
We're well aware that you are the people who'll be putting together e-commerce software in due course, so programming with security in mind features highly on our agenda. You should come away with an understanding of how complex web sites work - and how to go about putting one together.
334 is very popular and you'll learn all sorts of interesting and useful stuff, but you should also expect challenging assignments, tests, and exams.
Course contents
Not necessarily complete or in order:- Servlets and JSP (Xinfeng)
- RMI (Xinfeng)
- a rough introduction to HTTP and HTML (Ulrich)
- PHP, including objects, form processing, session tracking techniques (Ulrich)
- Scripting security and efficiency (Ulrich)
- JavaScript and DOM (Ulrich)
- Cascading Style Sheets (Ulrich)
Lecture times
Monday 4.30 pm, Wednesday 3.30 pm and 4.30 pm (the dreaded "double whammy"!) in 722-201 at Tamaki. To make the double whammy a bit easier for you, we will sometimes shorten the lecture by one hour and replace it with an in-class, on-demand tutorial. Bring questions for the lecturer teaching on that day, get answers. If there are no questions, we'll all go home early.Who will lecture when (and what, probably)?
- Week starting 3rd of March: Xinfeng Ye
- Monday: RMI
- Wednesday I: RMI
- Wednesday II: RMI
- Week starting 10th of March: Xinfeng Ye
- Monday: RMI
- Wednesday I: RMI
- Wednesday II: tutorial
- Week starting 17th of March: Ulrich Speidel
- Monday: Introduction to web servers and clients, the HTTP protocol
- Wednesday I: Introduction to simple HTML and XHMTL
- Wednesday II: Introduction to simple HTML and XHMTL
- Week starting 24th of March: Ulrich Speidel
- Monday: Easter Monday
- Wednesday II: Client side vs. server side technology, HTML form elements
- Wednesday II: PHP
- Week starting 31st of March:
- Monday: Form processing and input checking in PHP (Ulrich Speidel)
- Wednesday I: Servlets (Xinfeng Ye)
- Wednesday II: Servlets (Xinfeng Ye)
- Week starting 7nd of April: Xinfeng Ye
- Monday: Servlets
- Wednesday I: Servlets
- Wednesday II: tutorial
- Mid-semester break
- Week starting 21st of April:
- Monday: Servlets, JSP (Xinfeng Ye)
- Wednesday I: Database connections in PHP (Ulrich Speidel)
- Wednesday II: tutorial (Ulrich Speidel)
- Week starting 28th of April: Ulrich Speidel
- Monday: Scripting security
- Wednesday I: Scripting security
- Wednesday II: Graphics in PHP, more HTTP
- Week starting 5th of May: Xinfeng Ye
- Monday: JSP
- Wednesday I: JSP
- Wednesday II: JSP
- Week starting 12th of May: Xinfeng Ye
- Monday: JSP
- Wednesday I: JSP
- Wednesday II: tutorial
- Week starting 19th of May Ulrich Speidel
- Monday: more HTTP, session tracking
- Wednesday I: JavaScript
- Wednesday II: JavaScript and DOM
- Week starting 26th of May: Ulrich Speidel
- Monday: Cascading Style Sheets
- Wednesday I: Cascading Style Sheets
- Wednesday II: overflow
- Week starting 2nd of June:
- Monday: Queen's Birthday
- Wednesday I + II: tutorial, Q & A
Assessment
The assessment of the course is as follows: 4 assignments with a
combined weight of 15%, the test with a weight of 25%, and the exam
with a weight of 60%. Note that there is a separate pass requirement,
i.e., you will have to pass both the assignment component and
the theory component (test plus exam) of the course, as well as the course overall.
The pass mark for the theory and the assignment component is not always the
same and usually a little less than the overall pass mark.
50% of the marks in a component usually
guarantee you a pass in that component (except in very unusual circumstances).
Note that it has been a long-standing departmental policy to grade students relative to their standing in the class. As a result, the actual pass mark percentage may be (and often is) below 50%. We're not out to get you!
On that topic - we fully realize that Internet Programming is a very popular subject and that you are all keen to get good grades for your CVs. However, experience from previous years shows that most students are pretty bad at judging their own standing in the class - both ways. We've had students worried about failing end up with an A+, and we've had cases where people confused having commercial experience with automatically getting a good grade. A few hints:
- If you're in the top two thirds of the class in the test and exam, you'll probably pass.
- Assignments have been graded differently from some other courses since 2006. We used to fail a lot of students with good assignment grades that were in all likelihood the result of getting extra "help". At the other end of the scale, we've had many good students getting worried about losing a few marks on assignments. The new scheme practically gives away the marks for your effort - it no longer worries about small detail. You should worry about the details, not the marks. See the assignment page for details. The main effect of an assignment that you do yourself should be that it gets you exposed to the material and thus prepares you for test and exam. You shouldn't have to come back for extra marks if you got 80% of an assignment right.
- If you want an A-range grade, you'll need to be in the top 20-25% of the class (rule of thumb).
- Paying someone a hundred dollars to do your assignment for you is a waste of money - good assignment marks paired with bad grades in test and exam only make you look silly. Paying a hundred dollars for a good book and reading it is an investment in your grade.
Test
Test date: 12 May 2008, 6.30-8.00 p.m., at Tamaki.The test was multiple choice. One correct answer per question.
The results histogram for the 2008 is shown below:

Exam
Provisional exam date (to be confirmed): 19 June 2008, 14.15, 2 hrs, at TamakiExam results for 2007:

Assignment Due Dates (check your class e-mail for updates)
To be announcedPlease note the department's policy on cheating in assignments.
Forum and class E-Mail
There is class forum for you to discuss class matters with your class mates. The forum is patrolled by staff to ensure no objectionable material is posted (this includes things like assigment solutions, by the way). However, we don't make official announcements in the forum - these come by class e-mail.
Please ensure that you read your class e-mail daily and keep copies. Check them for an answer before you e-mail staff for help.
Textbooks
There is no compulsory text book for 334. For recommended readings, see the library's shortlist for 334. Xin Feng also recommends:Core Servlets and JavaServer Pages: Volume I: Core Technologies, 2nd Edition
by Marty Hall and Larry Brown
ISBN: 0-13-009229-0
Publisher: Prentice Hall PTR / Sun Microsystems Press
Copyright: 2004
Published: 08/26/2003
The first edition of this book should be sufficient.
Core Servlets and JavaServer Pages: Volume 2: Advanced Technologies,Second Edition
by Marty Hall, Larry Brown, and Yaakov Chaikin
Publisher: Prentice Hall PTR; 2 edition (December 1, 2007)
ISBN-10: 0131482602
ISBN-13: 978-0131482609
Ulrich recommends the PHP manual and the MySQL documentation,
downloadable from here. He also
recommends Learning PHP 5 by David Sklar, O'Reilly, 2004 and, if you're
finding the security lectures interesting, Chris Shiflett's book on "Essential PHP Security"
Software
Ulrich recommends that you install your own Windows or Linux system with Apache 2, PHP 5 (as a module), and MySQL.Enrolment problems
Lecturers are in no position to enrol anyone - we have absolutely no say in who goes into our classroom and who doesn't. As a result, any e-mail to us is a waste of time - we can't help you. The person who may be able to help is Patricia Rood.-
Related Programmes