Data is “the stored facts that we need to manage all of our human endeavors” (Gillenson 2011), and due to the explosion of computing devices, including Internet of Things (IoT) sensors, a massive amount of data is being collected every minute. Yet data by itself isn’t useful: it must be processed to understand its meaning, creating information.

How do we store data efficiently? What tools do we use to manage it and to transform isolated facts into information? How do we build data-driven applications that can be used effectively by non-technical users? This course answers all these questions. In particular, we study databases and database management systems (DBMSs) that are used to organize data and manage access to it. You will become adept at using the Structured Query Language (SQL) to define and to manipulate data. You will learn the basics of web development to create an Internet-accessible user interface for non-technical users. We also survey a number of performance issues to highlight the limitations of databases – namely, the inability to simultaneously guarantee consistency, availability, and partition tolerance for distributed databases.

Instructor

Name Dr. Joel Coffman
Office Fairchild 6G-117
Phone 719 333-6803 (office)
Email joel.coffman@usafa.edu
Website https://joel-coffman.github.io/

Course Description

Introduction to the basic concepts of database and information storage systems. Topics include data models, database design theory, database performance, transaction processing, web-database interaction, techniques for handling large volumes of data, and contemporary database issues. Hands-on projects emphasize basic database and information storage and retrieval techniques. Final Project.

Prerequisites

One of the following introduction to programming courses:

  • Comp Sci 210: Programming Fundamentals

  • Comp Sci 211: Introduction to Programming for Scientists and Engineers

  • Comp Sci 212: Introduction to Programming for Analysts

Course Outcomes

Upon completion of this course, you will be able to do the following:

  1. Analyze particular data storage needs and determine appropriate database approaches, tools, and techniques to meet those needs
  2. Design, develop, and test a data-driven application that addresses a real-world need
  3. Articulate the need for a data-driven application and how it addresses a real-world problem
  4. Analyze social and ethical implications of various database applications with a particular emphasis on privacy issues
  5. Function effectively as a member of a small software development team
  6. Apply database theory to the implementation of an information management system
    1. Create an abstract data model for an information system

    2. Normalize a relational database to at least 3rd Normal Form (3NF)

    3. Use SQL to query a database

    4. Analyze the factors affecting database performance

  7. Prevent attacks against data-driven applications by using defensive programming techniques, such as input validation and prepared statements

Textbook

Gillenson, Fundamentals of Database Management Systems, 2nd ed., Wiley, 2011.

Policies

Academics with Honor and Academic Principles and Honor Guidance

Classroom Standards

Laptops may be used in class as long as they are not distracting to other students. Phones should not be used in class with the exception of taking pictures of “board work” for future reference. Any other uses should be cleared first with the instructor.1

Meeting deadlines is important; late work will not be accepted without prior coordination. That is, you must notify me in advance if you will submit work after the deadline; otherwise, you will not receive credit for late submissions. Except for extraordinary circumstances, late work will be penalized 25% for each 24-hour period past the deadline. The late penalty is a cap on the maximum grade that may be awarded for the late work.

Grading

Final grades will be based on the following graded events:

Assessment Type Number Points (Prog) Points (Final)
Discussions 5   50
Quizzes 10 75 150
Graded Reviews (GRs)2 3 250 250
Programming Exercises (PEXs) 3 150 300
Project   100 250

The project comprises multiple deliverables as outlined in its description.

Quizzes that are missed cannot be made up. Any quizzes that are missed due to excused absences will not count toward the quiz average – i.e., there is no penalty when missing a quiz due to an excused absence, but that quiz also cannot help you. Please note that the exact number of quizzes and points by prog may vary slightly from what appears in the table.

If you believe that an assignment has been graded incorrectly, you have one week from the date that assignment was returned to request a regrade. Your request must be accompanied by a detailed written explanation of why you believe you deserve additional credit. Requiring a written explanation saves time when regrading, demonstrates greater mastery of the material on your part, and improves your technical writing skills.

Final grades will be determined using the standard grading scale: ± will be assigned using ±2 thresholds – e.g., 92% will be an A- and 88% will be a B+.

Success Strategies

You can excel in this course. The following list highlights some strategies designed to help you succeed and to minimize your stress throughout the semester.

  • Come prepared for each and every class. Be ready to engage actively in class activities and discussions.
  • Work ahead of due dates. Like the real world, this course gives you the latitude to shoot yourself in the foot, particularly if you choose to wait until the last minute to work on assignments and in lieu of extraordinary circumstances. I reserve the right to decline extra instruction (EI) requests on the day that assignments are due.
  • Your honor is extremely important. Do not compromise your integrity by violating academic security or by taking unfair advantage of your classmates.
  • Seek assistance whenever needed. I am committed to helping you succeed.

  1. The impetus for this policy is research that suggests smartphones may be detrimental to learning: Chad C. Tossell, Philip Kortum, Clayton Shepard, Ahmad Rahmati, and Lin Zhong, “You Can Lead a Horse to Water But You Cannot Make Him Learn: Smartphone Use in Higher Education,” British Journal of Educational Technology, Vol. 46, No. 4, pp. 713–724, July 2015 (press release). 

  2. The entry for GRs also includes an in-class SQL assessment.