| 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 |
| 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 |
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.
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
- Learn the essential concepts of programming languages
- Apply these skills in the client - server environment of the world - wide web
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.
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.
- Dynamic HTML The Definitive Reference, Goodman, O'Reilly, 1998
- Perl in a nutshell, Siever, Spainhour, & Patwardhan, O'Reilly, 1991
- Official Guide to programming with cgi.pm, Stein, Wiley Computer Publishing, 1998
You may of course use online reference materials, but in our experience, you really need paper as well.
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.
The final grade will be based upon the following breakdown:
- Midterm exam - 20%
- Final exam - 20%
- Final project - 20%
- Lab assignments - 40%
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.
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:
- The student has satisfactorily completed all course requirements up until the time of the incomplete.
- The student demonstrates that being required to complete the course within the semester's time constraints would cause extreme personal hardship.
- 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.
- All paperwork required to issue the incomplete is completed and turned in to the CSCI office staff before final grades are issued.
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.
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.
Here's the best ways to get ahold of us:
Andy Harris Debbie Dillow Office SL 280 D aharris@cs.iupui.edu mailto:ddillow@cs.iupui.edu web page http://www.cs.iupui.edu/~aharris http://www.cs.iupui.edu/~ddillow