COSC 330 - Spring 2020

Course Information

  • Instructor: Dr. Aaron Garrett (garrettal@wofford.edu)
  • Class Meeting (Olin 213): TR 9:30a-10:50a
  • Office Hours (Olin 204E): MW 2:00p-4:30p; TR 1:00p-3:30p; or by appointment
  • Textbook: None
  • Required Software Mimir Classroom (available in bookstore)
  • Final Exam: 14 May 2020 from 9:00a-12:00p

Catalog Description

A study of data models, including relational, object-oriented, hierarchical, and network models. Topics include the theory of normal forms, database design, query languages, and implementation of databases.

Prerequisite: COSC 235 with a minimum grade of C.

Goals

  • Understand the basic terminology and theory of relational algebra
  • Understand functional dependencies and normalization
  • Be able to construct conceptual models that map to normalized relational schemas
  • Understand the fundamental concepts in database management systems
  • Be proficient with Structured Query Language for defining schemas and manipulating data
  • Be familiar with basic management tasks in MySQL
  • Be capable of interacting with databases from standard programming languages
  • Be familiar with semi-structured data such as XML
  • Be familiar with the basic implementation approaches for database management systems

Grades

Your grade in the course will be based on a combination of assignments and exams.

Assignments
Assignments are short exercises that reinforce the core concepts.
Project
A project is a larger, more complex design and implementation assignment.
Artifact Points
Assignments (~6) 60
Project 40
Total 100

The usual grading scale will be applied to the accumulated points: 93–100: A, 90–92: A-, 87–89: B+, 83–86: B, 80–82: B-, 77–79: C+, 73–76: C, 70–72: C-, 60–69: D, 0–59: F.

Policies

Attendance

You are expected to attend class meetings and come to class prepared. Refer to the General Policy Regarding Attendance in the Wofford College Student Handbook. The policy makes you responsible for catching up on missed classes. If you must be absent for class, please email me in advance to let me know.

Make-up exams are not available. If you have a legitimate, excused absence during the midterm exam, then you must make it up during the final exam period.

Assignment Deadlines

Late assignments will not be accepted without a legitimate excuse. All assignments are expected to be submitted by 11:55p ET on the posted deadline.

Academic Integrity

The Honor Code requires faculty, staff, and students to maintain a high standard of individual honor and integrity. While I may specify some assignments as collaborative, work represented as your own must be your own. If you have any doubt about what is appropriate for a given assignment, you should contact me for clarification.

Accommodations

If you have a disability that requires assistance or accommodation, or if you have questions related to any accommodations for testing, note takers, readers, etc., please contact Dean Beth Wallace by telephone at (864) 597-4371 or in person by visiting the Hugh R. Black Infirmary. You must arrange accommodations during the first week of classes.

Tentative Schedule

Meeting Resource Topics Deadline
04 Feb https://automatetheboringstuff.com/2e/chapter16/ motivation, data import (CSV)
06 Feb https://automatetheboringstuff.com/2e/chapter16/ data import (JSON), web APIs
11 Feb https://www.smashingmagazine.com/2012/02/beginners-guide-jquery-based-json-api-clients/ web APIs
13 Feb https://www.vertabelo.com/blog/crow-s-foot-notation/ database schemas A1
18 Feb https://www.studytonight.com/dbms/relational-algebra.php relational algebra
20 Feb relational algebra
25 Feb https://opentextbc.ca/dbdesign01/chapter/chapter-11-functional-dependencies/ functional dependencies
27 Feb functional dependencies A2
03 Mar https://www.studytonight.com/dbms/database-normalization.php normalization
05 Mar normalization
10 Mar https://dev.mysql.com/doc/mysql-getting-started/en/; https://www.ntu.edu.sg/home/ehchua/programming/sql/MySQL_Beginner.html SQL schemas (DDL)
12 Mar SIGCSE A3
17 Mar https://www.guru99.com/mysql-tutorial.html queries
19 Mar https://www.w3schools.com/sql/ queries
24 Mar inserts/deletes/updates
26 Mar https://www.w3schools.com/python/python_mysql_getstarted.asp SQL in Python A4
07 Apr advanced queries
09 Apr advanced queries
14 Apr https://www.youtube.com/playlist?list=PL-osiE80TeTs4UjLw5MM6OjgkjFeUxCYH flask
16 Apr https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world flask A5
21 Apr https://www.w3schools.com/xml/default.asp; https://www.datacamp.com/community/tutorials/python-xml-elementtree; https://www.sitepoint.com/really-good-introduction-xml/ structured data (XML)
23 Apr https://www.w3schools.com/xml/schema_intro.asp XML schemas
28 Apr https://www.w3schools.com/js/js_json_intro.asp structured data (JSON)
30 Apr MySQL administration A6
05 May
07 May

Note: This syllabus is subject to change with notice.