Syllabus for CSCI N341 Web Programming

Section B430 / B431

Lecture times TR, 11:00 AM - 12:30 PM
Lecture Location ES 2132(TV Studio)
Lab time T 12:40
B216 Lab times T 12:40
Lab location SL 247 (NT lab)
Instructors Andy Harris
Debbie Dillow

Proposed Calendar

Date Lecture topic Lab assignment
Jan 11, 13 Context Review: unix, HTML, and editors Class main page
Jan 18, 20 Variables, modal I/O Simple math quiz
Jan 25, 27 Conditions simple games
Feb 1, 3 Object - based programing and the DOM The Mad-lib
Feb 8, 10 Dynamic HTML Animation
Feb 15, 17 Dynamic HTML (continued) Animation
Feb 22, 24 Midterm Exam Midterm project
Feb 29, Mar 1 Introduction to perl Rewrite game in NON-CGI perl
Mar 7, 9 CGI - Gateway to the web Rewrite game with a web (cgi) interface
Mar 14, 16 Spring Break No classes
Mar 21, 23 CGI - Gateway to the web (continued) Give quiz a web interface
Mar 28, 30 Sequential file access File-based guestbook
Apr 4, 6 Sequential file access (continued) File-based guestbook
Apr 11, 13 pattern matching and regular expressions "Elmer Fudd simulator"
Apr 18, 20 accessing the operating system Finger interface
Apr 25, 27 final project presentation final project presentation
May 2 Final Exam 1:00 - 3:00 PM

Expectations

This class is intended for people who are extremely comfortable with HTML and the basic concepts of web page design. We expect that students enrolled in this course are already familiar with UNIX, the basic internet protocols (especially FTP and TELNET) and can use a text editor such as emacs or vi to build a web page including frames, forms, tables, and imagemaps.

Programming experience is not expected, but of course it is nice to have.

If you are not sure that your basic web skills are up to this standard, you might consider taking the web design class first. See your instructor if you have questions about this.

Course Objective

The purpose of this course is twofold: Specifically, we will look at the basic concepts of procedural programing languages, including basic data constructs, logic structures, and algorithm design. We will use javascript to explore issues of dynamic HTML and client-side programming. We will also use perl and the CGI to explore server-side programming, with special emphasis on the things best done on the server, such as file manipulation, pattern matching, and use of local system calls

Required text

Stair Steps to Web Programming Harris,, IUPUI CS Dept, 1999.
(available in class ($15-$20 depending on copying costs). Text and examples are available at class web site at http://www.cs.iupui.edu/~aharris/webprog/. It is the student's responsibility to check this page periodically and read any of the materials posted there.

Additional Reference Materials

Part of being a programmer is building up your library of reference materials. We expect you to purchase at least two reference books for your use during the semester and beyond. The exact books you choose are up to you, although we recommend the following: We will not be heavily focusing on syntax, as we expect you to be able to look up syntax yourself. We are much more focused on the stylistic and strategic issues that books rarely cover well. You must have a good book or two to help you through syntax issues.

You may of course use online reference materials, but in our experience, you really need paper as well.

Assignments and Projects

Students will generate a number of assignments on a web site hosted on the departmental server (cs.iupui.edu). Programming is a skill that can only be learned by practice, so we will practice a lot. There will be roughly one assignment per week. If you fall behind in the assignments, you will not succeed in the class. It's that simple. In addition to these weekly assignments, there will be a larger integrative assignment at the midterm, and a final project which is intended to tie everything together.
While we will give some lab time, you will probably want to spend time outside of class working on your projects. You should plan on some outside time, especially as the final project draws near. You can do class work on any machine that has some kind of internet capability.

Grading Scheme

The final grade will be based upon the following breakdown:

Late assignments

Lab assignments will be worth 10 points apiece and shall be due one week from the day on which they were assigned. All late assignments will be assessed a 20% penalty. It should be noted that if the instructor is unable to view a file (due to a student's misconfiguration) on the due date, that assignment shall be considered late for grading purposes.

Incompletes

A grade of incomplete is not intended to serve as a drop or withdrawal after the time period for submitting a drop has expired. Incompletes will only be permitted under the following conditions:

  1. The student has satisfactorily completed all course requirements up until the time of the incomplete.
  2. The student demonstrates that being required to complete the course within the semester's time constraints would cause extreme personal hardship.
  3. The student and instructor agree to a plan to complete the remaining coursework in a reasonable time period not unduly burdensome upon the student. In no case will the student be permitted to complete coursework any later than the mid-term examination of the semester following that in which the incomplete was issued.
  4. All paperwork required to issue the incomplete is completed and turned in to the CSCI office staff before final grades are issued.

Academic Misconduct

One of the finest traditions of programming is the concept of openly sharing and refining code written by others. In the forms of programming we will do, it will be very easy to use code written by others. In fact, sometimes we will do so as a part of the course. As in any other kind of scholarship, there is a difference between 'standing on the shoulders of giants' and plagiarism. Although you will be encouraged to examine the code of others, you MUST write original code for this course.

When you do borrow from another programmer, you must cite the source in your code. You must also comment how you used the code, and any modifications you made to it. Using code without appropriate citation constitutes plagiarism, and will be dealt with very harshly.

If we are concerned about something you wrote, we will not place a grade on it until we have a chance to talk to you. If we suspect that you have turned in plagiarized work, we will follow the steps outlined in the student code of academic conduct. We will vigorously pursue allegations of suspected plagiarism. It just isn't worth it.

Keeping informed

Since this is an internet course, we will rely heavily on the Internet as a communication medium. You are expected to check your email and the course main page regularly. We will also have a mailing list, which you will be expected to subscribe to.

Reaching us

Here's the best ways to get ahold of us:
Andy Harris Debbie Dillow
Office SL 280 D
email aharris@cs.iupui.edu mailto:ddillow@cs.iupui.edu
web page http://www.cs.iupui.edu/~aharris http://www.cs.iupui.edu/~ddillow

© Andy Harris
Indiana University / Purdue University, Indianapolis
email: aharris@.cs.iupui.edu
homepage: www.cs.iupui.edu/~aharris