SYLLABUS: CIS 631, Summer 2006 (Under Construction)

This syllabus is on the web at:
http://www.cis.njit.edu/~geller/631/index.html
Or you can get to it from my home page:
http://www.cis.njit.edu/~geller/

Information about assignments will be accessible through this web page. Check this web page every weekday, in case that there are any announcements or changes.
In fact, the first homework is already accessible at here.

0. Time and Place

1:00 PM - 4:00 PM, Room: Kupfrian 117.
Monday, Wednesday, Thursday from 5/22/04 to 6/26/04.

1. Personnel

Instructor: James Geller
Office: 4307 Information Technology Center (Guttenberg Building)
Phone: (973) 596-3383 (Messages: (973) 596-3366)
Email: geller@oak.njit.edu (geller@njit.edu will work too.)
Home Page: http://www.cis.njit.edu/~geller/
Office Hours: By Appointment Only.

 

2. Readings

1. Elmasri & Navathe: Fundamentals of Database Systems, 3rd Edition, Benjamin Cummings. Any edition is okay.
2. Sunderraman: Oracle Programming, A Primer 1999, Addison Wesley. Newest Edition preferred (blue cover).
3. I might hand out reading materials in class.
  I did not order books from the NJIT Bookstore. Please order from any online book seller (Amazon, Borders, Barnes and Noble,...).

3. Assignments

Readings: It is recommended that you read chapters in the above books before the class where they are covered, or at least after the class.

Homeworks: There will be three assignments requiring increasing amounts of programming. There will be one test corresponding to each homework. Some of the test questions will be derived from those homeworks (or will be similar to homework questions).

Exams: There will be two tests, and one final exam. Exams will have theory questions (based on Elmasri's book) and practical (SQL) questions based on the lecture, Sunderraman's book and most importantly on the Homeworks.

4. Grading

For every assignment you will be graded out of the following maximum number of points available:

Test 1 140
Test 2 140
Homeworks 1-3 3*40 = 120
Final 200
Total 600

 
For exceptionally well done work a small number of extra credit points might be given.  At the end of the semester we will add up your points. A curve will be used for assigning letter grades.

The following are guaranteed an A:
If you are in the top 30% of the class you are guaranteed an A.
If you have more than 550 points you are guaranteed an A.
 

5. Doubts

>>>>>> When in doubt, ASK <<<<<<<
 

6. Late policies

There will be late penalties for late submissions of programming assignments. Details will be announced in the assignments.

 

7. Computer, Language and Database

We are using the Web-Based ORACLE client. Thus, all you need to do your work is Web access, a text editor, and access to a printer. PL/SQL is part of the normal Oracle distribution.

However, you have to get an AFS account (ID), if you don't have one. Otherwise you cannot log into into ORACLE. Media Services can be reached at (973) 596-3005.

Go to: http://prophet.njit.edu/isqlplus

The ORACLE Web page will ask you for your AFS ID, password and connection identifier.

You should have received (or will receive) your own password by Web mail in the first week of classes. (If you didn't get the password email then check your email on "oak.njit.edu" AND on Web mail.)

The connection identifier that you are asked for is "course".

Furthermore, you can get extensive explanations of the ORACLE set up by going to:

http://web.njit.edu/

There, click on the + sign next to Databases and then on ORACLE.

8. Prerequisites

You must know data structures and algorithms. Specifically, you must know the following topics well as we will build on them: Linked lists, binary search, binary trees, binary search trees.

I also expect you to have "extensive" programming experience in either C++ or another high level language, such as Java. (There will be no C++ programming, though).
 
 

9. Narrative Description

In this class you will learn about the fundamentals of database systems from the user perspective as well as from the implementation perspective.  You will learn to create and query a database through SQL.  You will also learn how to query a database from a Java program with JDBC. You will get a deeper understanding how the data is actually organized and indexed on disk. We will concentrate on the relational database model, and you will learn how data has to be organized in order to be correctly represented in a relational database. In the second half of the semester we will discuss normalization and concurrency control.
 

10. Purpose of the Course

The purpose of this course is to learn about the theory of relational database systems, and how this theory has been implemented in ORACLE.  After this course you will be able to use an ORACLE database online (interactively) and have an idea how to write applications accessing an ORACLE database.
 

11. Attendance, Participation and Notes

You are strongly advised to come to every lecture. However, attendance is not graded and not mandatory. Experience shows that students that don't attend usually don't do well in the class. You are responsible for all announcements made in class.

My advice is to make a friend in the class and call your friend if you missed a class, to find out if I made any announcements. Class participation is not graded, but highly encouraged.

I ask you to take notes in every class. I do not hand out notes. It has been proven that students taking notes remember the material much better.


 

12. Cheating

Cheating on a programming homework results in 0 credit for all people involved. Programming homeworks may NOT be solved in collaboration, unless this is specifically required in your assignment.

You may "talk" about problems with each other.  Where does talking end and cheating start?  You may NOT copy lines of code from anybody. You may NOT use code in your program where you don't understand WHY it works, even if it works, and you wrote it yourself.

Cheating on exams (or talking to class mates during exams) will result in an F for the whole course.

13. Course Details

Below is a detailed plan.  Changes in amount, content and order may occur. In Elmasri/Navathe we will skip almost all sections that are marked with a (*).

NOTE: The following table uses Elmasri/Navathe 3rd Edition (the "White Book"). However, you can use the 2nd Edition (the "Blue Book") with no problem. Just note that chapters are numbered in a slightly different way.


 
 
DATE ASSIGNMENTS MATERIAL
5-22  Introduction
S: Chapter 2.1, 2.2
5-24 E: Ch. 1: Databases and Users
S: Ch. 2.3, 2.4
5-25 E: Ch. 2: Concepts and Architecture
S. Ch. 2.4 cont., 2.5 ... 2.6
5-31 TEST 1 and Program 1 DUE xxxxxxxxxxxxxxxx
6-1 E: Ch. 3: Entity Relationship Model
S: 2.7 - 2.9
6-5 E: Ch. 5 (partial): File Organizations
S. Ch. 5.1 ... 5.3
6-7 E: Ch. 6 (partial): Index Structures
S. Ch. 5.4
6-8 Program 2 DUE E: Ch. 7 Relational Algebra
S: Ch. 5.5
6-12 TEST 2 xxxxxxxxxxxxxxxxx
6-14 E: Ch. 13 (partial): Object-Relational DBs
S: Ch. 5.7
6-15 E: Ch. 14: Functional Dependencies
6-19 E: Ch. 15 (partial): Relational DB Design
6-21 E: Ch. 19: Transaction Processing
6-22 Program 3 DUE E: Ch. 20 (partial): Locking
6-26 FINAL EXAM xxxxxxxxxxxxxxxxxxxxxx