Course Description and Goals
Databases form the foundation of modern commerce, social media, and government. This course will investigate the design and use of database systems from the traditional to the present day.
Learning Goals:
- Master core concepts in database design and use
- Design databases for efficiency and scalability
- Consider the impact and application of databases today
Prerequisite: CSC 212 or permission of the instructor
Student Responsibilities
Successful learning is best motivated from within. We expect students to explore the topic of databases with an open mind and spirit of inquiry and exploration. Students will be responsible for weekly or bi-weekly assignments related to the current topic, either written or electronic depending on the week. There will be written miderm and final exams. As this is a four-credit course meeting for three hours per week, students should expect to spend approximately nine hours outside of class on readings and assignments. There will be two exams and a final project.
Course Materials
The primary textbook for this course is Database Systems: The Complete Book (2nd Edition), by Hector Garcia-Molina, Jeffrey D. Ullman, and Jennifer Widom. It is available in an inexpensive paperback edition from some online sellers.
A Piazza group for this class will be available for questions and discussion related to the assignments. Questions about content and assignments should be publicly posted here for the benefit of the entire class. You may include brief (1-2 line) code excerpts with a question. Do not post large blocks of code; rather, take the time to pose a careful query that strips the issue down to its essentials.
Collaboration
Students are expected to complete the assignments for this course by themselves, and will not benefit from relying too much on others. Therefore, each student will be expected to follow this guideline: on individual assignments, nobody should see your code or written work on an assignment but yourself and the members of the course staff! By extension, you should not see anybody else's work either. With the sole exception of your partner on any assignment specifically designated by the instructor for work in pairs, sharing code or the final write-up of a homework assignment is a violation of course policy and may result in a referral to the Honor Board. Similarly, taking code or answers found from other sources (such as the internet) and representing it as your own is dishonest and uniformly prohibited. Use of small portions of found code is acceptable if you are scrupulous about documentation and attribution.
Despite the above, many forms of collaboration are specifically encouraged. On any assignment students may and should discuss algorithms, approaches, and issues that arise so long as they then compose their solutions separately. Students may also discuss any programs and code not directly related to the solution of a current or pending programming assignment. In this manner, students may assist each other while ensuring that each ultimately completes the assignments for themself. During in-class labs (as opposed to the homework assignments), students are encouraged to help each other work through problems, and may review each others' programs as necessary toward that goal. Finally, some assignments may be designated for pair programming; on these each pair may work together as one but should observe the usual restrictions above with regard to other pairs.
Use and Citation of Reference Materials
Students may consult online or print references on all assignments and labs. Standard language references showing syntax, usage, class documentation, etc. need not be cited. If you use a fragment of code (more than a single line) from some source other than the designated course textbook, you should document and credit the source with a comment in the code. As noted above, you must write the bulk of your program yourself -- just as you may use short quotations in an essay, but would not copy paragraphs wholesale. When in doubt, err on the side of including a citation, and consult the professor if you think you might be in danger of leaning too heavily on a source.
Electronic Device Policy
Used properly computers can serve as a learning tool. Students should bring a laptop to class if possible for use during lab activities. Many students also like to use their laptops to take notes, and perhaps to follow along during in-class demonstrations.
On the other hand, electronic devices can also serve as a potent source of distraction. Studies also show that the act of making handwritten notes brings cognitive benefits not seen with typing. Students are asked to be responsible in their use of electronic devices during class, and to ensure that they do not detract from their own educational experience or that of their fellow students. Activities such as email, text/chat, online shopping, etc. should all be conducted outside of class time.
Grading
- Homework assignments 50%
- Midterm project 15%
- Final project 15%
- Self-scheduled final exam 20%
Normally, work submitted late will receive no credit. However, students may take some extensions on a limited basis by adhering to the extension policy. Extensions that have not been properly requested will result in assignments considered late and receiving no credit.
Students may also wish to view the instructor's policy for computing averaged grades.
Course Details
See here for the calendar of topics by week.
- Professor:
- Nick Howe
Ford Hall 354
585-3878
Office hours - Meeting Times:
- Lecture: 9:25-10:40 Mondays & Wednesdays, Ford 241
Additional Considerations
Please read the list of frequently asked questions.
We want everyone to succeed in this course. Students who would benefit from learning accommodations are encouraged to contact the professor at their earliest convenience so that necessary arrangements may be made.
Self-identity is important, and we make a concerted effort to use correct names and pronouns. Students who feel comfortable in doing so can help by keeping the instructor informed with the relevant details.