Navigation

Home

Weekly Schedule

Prof Harris Schedule

General Policies

Resources

 

Quick Reference
Course Meets:   Section 3: T Th 2-3:15pm - ISAT 148
                 (alternate location ISAT/CS 248 for lab work)
Course Schedule:   Course Schedule
Instructor Information

Nancy Harris
  Office: ISAT/CS Room 217
  Phone: 568-8771 (8-8771)
     E-mail: harrisnl with usual jmu extension
 

AIM: harrisnl55
Gmail: csharrisnl Skype: csharrisnl

  Office hours See Schedule
  Instructor Policies

Description:

How would you like to see how applications like e-campus and Blackboard interact with you and the underlying database? How would you like to make an application that will be deployed on the web and used by hundreds of people? How would you like to design your own database applications to keep track of anything from inventories and collections to the latest sports stats? This course delves into the world of database design and application of that design to real world problems. While exploring the theoretical underpinnings of current database management software, we will also explore the practical aspects of designing, deploying, and maintaining database systems and see examples of databases used in many different kinds of applications.

In this course, students study database design and management with emphasis placed on data definition languages, data manipulation languages, query languages and on common sense design of databases which support applications. You will gain practice in using SQL with host languages such as PHP or Java. Outside of the scope of this course are XML, managing a database management system, and object oriented database management systems.

Prerequisite: CS 345 or CS 274, or ISAT 340. Please see the instructor if you do not meet these prerequisites.

Goals and Objectives

This course provides an introduction to the theory and practice of modern relational database systems. By the end of the course, you should be able to:

  • Summarize features of the relational model including structured data, relational operations, and integrity constraints.
  • Construct a conceptual model (ER diagram) and a physical model (relational design) from a general data description.
  • Illustrate anomalies and inconsistencies that can occur within a database design and how to correct them.
  • Write analytical queries in SQL (select, project, inner/outer join, grouping, aggregation, sorting, distinct, subqueries).
  • Design and implement a substantial three-tier application, both individually and with others.
  • Manage a successful semester-long team project (communication, source control, frequent code reviews).

This course reinforces (R) or emphasizes (E) the following departmental goals:

  • Communications: Students can express themselves clearly on technical matters orally and in writing. They can communicate effectively with individuals that do not have a technical background. (R)
  • Professional and Ethical Issues: Students can provide an overview of the professional and ethical challenges faced by individuals and organizations in the information age.(R)
  • Programming: Students can develop computer programs that solve specific problems using an object oriented programming language.(R)
  • Software Engineering: Students can explain the software development lifecycle, software project management, development tools and methods, software quality assurance and the challenges of producing quality software products.(R)
  • Database Systems: Students can explain the types of physical storage and access methods; create data models and data definitions; use query languages effectively; explain dependencies, decomposition and normalization; and design databases to recover from failures, maintain consistent data, and support concurrent access.(E)
  • Teamwork: Students can work effectively in a team to develop a software product.(R)

In addition, you will install and gain a working understanding of a commercial-grade database system and the means to create a functioning application.


Class Format:

We will meet in the classroom most days.  During those days we will have a combination of lecture for some material and group work for other material or a combination.  During a some class periods, we will meet in the lab for practical lab activities.  The group work will consist of POGIL or POGIL like activities.  http://www.pogil.org/ - for more information.

Homework will consist of reading from the text and doing written assignments or making use of the author's practice site. (See assignment HW01B)


See link for the schedule.  The schedule is subject to change and will be filled in more specifically as we work through the topics.

Communication:

We will use Blackboard and the web as a means of communicating. Announcements for class will be made on the Blackboard announcements page or the course schedule page if Blackboard is unavailable. Any other announcement that you receive through other means (such as e-mail) is suspect unless confirmed by Blackboard or the course web page. If I send an e-mail to the class as a whole, I will also put the text into a Blackboard or web announcement.  If school is cancelled due to snow days, be sure to check the announcements for any due date changes or additional homework assignments. I generally do not use the Saturday make-up day instead opting for online assignments instead.

Also, use my office hours if you are having difficulty, or just need clarification on an assignment or with something that you are working on.  Office hours belong to the students and is a good way for us to communicate individually.


Textbook and Required Material

Required:
Jeffrey D. Ullman and Jennifer Widom, A First Course in Database Systems, Third Edition (ISBN 0-13-601917-X
OR
Hector Garcia-Molina, Jeffrey D. Ullman and Jennifer Widom, Database Systems The Complete Book, Second Edition (ISBN 0-13-606701-8) (This book incorporates the first book as the first 12 chapters).
  
For the required texts, the Complete Book includes the First Course Book as its first 12 chapters. While we may touch on topics in some of the latter chapters, the First Course Book will be fine for the class. You may also share a book with a colleague if you wish. Homework assigned from the book will be work that you can do cooperatively with others in the class.
 
Online Resources - Let me know of additional resources that you find helpful
php tutorial: http://php.net/manual/en/tutorial.php
mysql reference: http://dev.mysql.com/doc/refman/5.0/en/index.html
html reference:http://www.w3schools.com/
Java Tutorials: http://docs.oracle.com/javase/tutorial/jdbc/basics/index.html

Grading

We are going to grade on a contract grading system.  For each category of work, you will choose what percentage of your grade will be based on that category.  See Assignments tab in Blackboard for the contract form.  You must choose a percentage within the range (inclusive) and your percentages must total 100%. You will have one opportunity to change your contract the week just prior to spring break.

Exam 5 - 20%
Final Exam 20 - 35%
Major group project 25%
Mini individual project 0 - 15%
Lab, homework, class participation 5 - 15%
Study guide wiki 5 - 10%


The exams are pretty self explanatory. They will be cumulative, but focus on new material each time. Each will be taken during the class time or final exam time. Exams will be weighted to a 100 point scale.

The major group project will entail a full software development effort of a database application. You will work with a customer, writing appropriate documentation for the project including a database design, implement that design, design a user interface and implement that interface. The project will involve both individual and group contributions for the grade. A major presentation will be made during the last week of the class. A grading rubric will be provided for the overall project as well as for the individual deliverables for the project. See the Project tab in Blackboard for project particulars.

The mini individual project will focus on designing a database, populating it with some sample data and provide a series of queries to work with that data. It will be assigned before spring break due about 2 weeks after spring break. A grading rubric will be provided for the mini-project.

The lab, homework, and class participation component of your grade will involve many different kinds of learning activities. These are designed not so much to evaluate your performance as they are to help you to understand the material better and to prepare for the more major assignments. You are welcome to use colleagues in the class, online resources, and other sources of help for working through labs and homework assignments. These will generally be graded on an "effort" system and we may employ the textbook author's homework submission system for some of the assignments.

Study guide contribution. I believe it is best for students themselves to develop the study guide for the class. I also believe that individually it is easy to miss something that might later prove important, but that collectively, you can build resources to help you to study for each exam. At this point, this study guide will be in the form of notes. Each student will need to take either the lead in writing notes for one class period or edit the notes written by another student. I will have a signup sheet available for each "noted" class period. I hope to have a wiki available that we can use to really collaborate on this project.


Class Policies and Student Success

See the link above for general instructor policies. Specific policies and items which will insure your success in this class are:

  • Come to class, come to class, come to class - Students who attend class regularly will keep up with the workload better, will gain insights from talking with classmates or the instructor, and will do better in this class as a result.  We use a lot of active learning in class so attendance is mandatory. While I will not take formal attendance, you will lose points if in-class work or homework is collected during a class period.
  • Workload -There will be ongoing assigments throughout the semester for the major project.  In addition, there will be reading and reading preparation before most classes.  Expect some kind of homework to prep for most classes.
  • Late assignments - All homework is due at the beginning of class on the day that they are due. No late assignments will be accepted for credit, although I will review late assignments at your request. For major and mini project assignments, late assignments will have a 10% per day penalty associated with each deliverable.
  • Exams - We have two midterms and a final exam. It is expected that all students will take the exams at the normally scheduled time. If an emergency occurs which requires you to be away, let me know as soon as you know about the situation. I may request documentation in order to allow you to take a make-up exam.
  • Honor Code - I report ALL incidents of academic dishonesty to the Honor Council. If the violation is severe, I will refer it to the Honor Council for formal resolution. Less severe violations may be handled informally. If you know of cheating in this class, it is your responsibility to let the instructor know as soon as possible. If you are involved in a situation where you are not sure if what you did was right or violates the Honor Code, please see me for clarification.  Examples of violations in this class would include (but not be limited to): sharing answers with another classmate on the exam; lifting work from the web for any portion of the project without citation; two teams collaborating on any of the project deliverables; and individuals collaborating on the mini project. Things that are okay to do in this class include: working with others on homework; collaborating with others in building ckass notes or wiki entries; working within your own team on anything related to the project; and using example code that you may find on w3schools.com or java.com with proper citation.
  • Extra Credit - I generally do not have extra credit opportunities.

Student Success - You will be successful in this class if you:

  • Attend class and each day and actively participate.
  • Engage with the material...don't passively listen in class and expect to do well on the application assignments.
  • Ask for help when you need it. Ask questions during lecture time.
  • Get started early on assignments.
  • Think about what you are doing...don't just do. In this course, the why is more important than the what.
  • Experiment with the database management systems that we will be using.

If you need additional resources to help you with your learning, let me know. Additional reference books may be placed in the library upon request and I have some database books that you may borrow for short periods if you need additional resources.


Updated 01/02/2013 - NLH