Syllabus for CSCI N311 Adv. Database Programming

Section V353/V354

Lecture times T, 9:00 AM - 12:15 PM
Lecture Location SL 247
Lab time R, 9:00 AM - 12:15 PM
Lab location SL 247 (NT lab)
Instructors Andy Harris
Simon Wang

Tentative schedule

This is not a schedule, but an ordered list. I am not sure what speed will be appropriate, so I cannot give specific dates.
Unit Topic Reading Assignment
1 Relational Model Kroenke 1-4 Flat file DB
2 Data Normalization Kroenke 5-7 E / R diagram
3 SQL Data Definition Handout, Kroenke 9 Implementation of DB
4 SQL Data Queries Handout, Kroenke 8-10 DB reports and views
5 Intro to PL/SQL Handout PL/SQL script
6 Advanced PL/SQL Handout Triggers and functions
7 Data Connectivity Handout JDBC / ASP project

Critical Dates

Date Assignment
June 8 Midterm Exam
July 11 Final Projects Due
July 13 Final Exam

Expectations

This course presumes the basic web knowledge of CSCI N241 Web Design. Students should have some familiarity with basic internet protocols, html, and the unix environment. Relational database experience will be helpful but not necessary. The latter part of the course will describe the relationship between databases and several programming languages, so knowledge of perl, visual basic, and/or java will be extremely helpful.

Course Objective

The purpose of this course is twofold: Specifically this will entail discussion of relational database theory, the concepts of data normalization and data design, implementation of data designs through the Oracle DBMS, procedural programming via the PL/SQL environment embedded into Oracle, and the relationship between backend databases and user environments such as CGI scripts, java applets, ASP pages, and other client-server technologies.

Required text

Kroenke, Database Processing - Fundamentals, Design, and Implementation,, Prentice Hall, 2000
Class main page. It is the student's responsibility to check this page periodically and read any of the materials posted there.

Additional materials

Part of programming is building up a library of reference materials. The exact books you use will be a matter of personal choice, but you ought to begin building your reference library.

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. Primarily we will be dealing with Oracle 8.0

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

Assignments and Projects

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. For many of the exercises, the exact technology you use will be up to you. Some of the projects can be done entirely on paper, and some will require a specific DBMS. Specific details will be forthcoming.

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 a technology 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 Simon Wang
Office SL 280 D
email aharris@cs.iupui.edu mailto:xwang@cs.iupui.edu
web page http://www.cs.iupui.edu/~aharris http://www.cs.iupui.edu/~xwang

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