CSSE 333 – Intro. to Database Systems

General course information

Prerequisites:

CSSE 220 – Fundamentals of Software Development II

Co-requisites:

CSSE 230 – Fundamentals of Software Development III

Meeting times and places:

Catalog Course Description:

Relational database systems, with emphasis on entity relationship diagrams for data modeling. Properties and roles of transactions. SQL for data definition and data manipulation. Use of contemporary API’s for access to the database. Enterprise examples provided from several application domains. The influence of design on the use of indexes, views, sequences, joins, and triggers. Physical level data structures: B+ trees and RAID. Survey of object databases.

Instructors

Curt Clifton—sections 1 and 2

Assistant Professor of Computer Science and Software Engineering

Email: clifton@rose-hulman.edu
Office phone: (812) 877-8593
Office address: Moench F-204
Home page: http://www.rose-hulman.edu/~clifton
Office hours: I strive to be in my office every day from 8 a.m. until at least 5 p.m. Please stop by whenever. If my door is shut, just knock. My schedule is available from my home page

Texts and Software

Textbook Cover Image

Required text:

Fundamentals of Database Systems, 5th Ed.
Ramez Elmasri, University of Texas at Arlington
Shamkant B. Navathe, Georgia Institute of Technology

ISBN: 0321369572
Publisher: Addison Wesley
Copyright: 2006
Format: Hardcover; 1168 pp
Published: March 7, 2006

Required software:

SQL Server Management Studio for SQL Server 2005, available from http://msdnaa.cs.rose-hulman.edu

Course Topics

Database Theory

Database Practice

Learning Objectives

Students who successfully complete the course shall be able to:

Grading

The learning objectives for this course are listed above. We will be using various mechanisms to measure your progress against these learning objectives. The relative weights for each of these mechanisms will be determined by an anonymous survey of the students in the course.

Mechanism Weight
Daily Quizzes 13%
Homeworks 13%
Lab Exercises 21%
Tests 23%
Project 30%

No late homeworks or lab exercises will be accepted except in extreme circumstances. We will throw out your lowest homework grade and three lowest quiz grades when calculating final grades.

I'm experimenting with a homework grading mechanism that was devised in discussion with the students from CSSE 373 last term. Homework is designed to give you practice with the materials in the course. This grading mechanism is intended to allow me and the assistants to focus on giving you feedback on your work, rather than devoting all of our energy to nitpicking points on an arbitrary grading scale.

Each homework assignment will be graded on a 4 point scale:

A score of 3 points is considered a perfect score. Thus, work that receives a score of 4 points earns 33% extra credit. Such extra credit can make up for homework assignments where you earned a score lower than 3 points. Homework extra credit does not carry over into other grading categories like labs and tests.

Change in homework grading: Our experiment with the new homework grading policy did not go so well. It turns out that a 3 on an assignment is too difficult to achieve. So rather than throw out the low homework score as planned, I'm throwing out one homework from the denominator but keeping all in the numerator. Thus, a perfect score on all homeworks would earn 15 points out of a "possible" 12. This effectively lowers the perfect score threshold per homework to 2.4 points. As before, homework extra credit does not carry over into other grading categories like labs and tests.

Attendance Policy

Up to 2 unexcused absences allowed. Additional unexcused absences may result in you receiving a failing grade for the course. You are responsible for making up any missed work.

Laptop Policy

You will generally need to use your laptops during at least a portion of every class period. Please be sure to bring your laptop, a power brick, and a network cable to class.

During class discussion, please do not use your laptops. Laptop use during discussions is distracting to your classmates and also keeps you from focusing on the material. If you typically use your laptop for note taking, please talk to your instructor so he can make an exception.

Integrity

Recall the Institute policy on academic misconduct:

“Rose-Hulman expects its students to be responsible adults and to behave at all times with honor and integrity.”

Exams and homework will be done on an individual basis. The simple rule of thumb for individual work is:

Never give or use someone else's code or written answers.

Such exchanges are definitely cheating and not cooperation. The departmental statement on academic honesty has more detailed advice.

Plagiarism or cheating will result in a grade of “0” for the assignment or exam. Egregious cases will result in a grade of “F” for the course. More importantly, such dishonesty steals your own self-esteem. So don't cheat.

If you sincerely believe that certain problems are too much busy work, then please bring it to the instructor's attention.

Collaboration

You are encouraged to discuss homework, and other parts of the class with other students. Such discussions about ideas are not cheating, whereas the exchange of code or written answers is cheating. However, in such discussions of ideas, you should distinguish between helping and hurting yourself and the other student. In brief, you can help the other student by teaching them, and you can hurt them by giving them answers that they should have worked out for themselves. The same applies to tutoring and getting help from the instructor.

“Hurtful help” most commonly occurs in giving away a key idea needed to solve a problem. For example, suppose you have studied a programming problem for an hour or so, and finally found that the key to the solution is to use a helping procedure you call “critical”. Your friend, after working on the problem for 15 minutes, says “I just can't see how to do this” and you say “try using a helping procedure called ‘critical’. ”

Although it takes more time, your friend will learn more if you say something like: “How are you approaching the problem, what's your plan?” (knowing that if your friend is not planning, no helping procedure will be found). If your friend hasn't planned, you should let them do it; if they have trouble planning, tell them to think about problems discussed in class that were similar, etc. If, after planning, your friend still hasn't found helping procedure 'critical', you should say something more direct like, “what helping procedures do you have?” or “how do these helping procedures help you get closer to the solution?” or “can you solve part of the problem?” The idea is to guide the other person's thinking process.

Perhaps a more common way to fall into the hurtful exchange of giving away the key idea is when you're talking over a problem that no one knows the answer to yet. Once one of you comes up with the key idea, it is tempting to blurt it out, impressing the others with your brilliance. If this happens, you should write “developed in cooperation with ...” on your solution. (Note that this disclaimer cannot be used to get away with cheating, but we're not discussing exchanging written code or answers.) It would be better for the one who comes up with the key idea say “I have it, but now I can't tell you what it is” and then try to guide the others to the solution as described above.

If you use reference materials (other than the course texts) to solve a problem, please give a citation. Similarly, if you discuss a solution with another student, give credit where credit is due by making a note such as “the following idea was developed jointly with Alyssia P. Hacker,” or “the following idea is due to Ben Bittwiddle.” You cannot be charged with plagiarism if you cite in this way. (However, don't expect to excuse cheating with such a citation. That is, you cannot exchange code even if you say it was developed in cooperation with someone else. Cooperation refers to the exchange of ideas, not code or written answers.)

Syllabus developed by Clifton, Winter 2006–07, based on earlier work by Salman Azhar, Steven Chenoweth, Gary T. Leavens, and Clifton.