Syllabus
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.
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:
- Analyze particular data storage needs and determine appropriate database approaches, tools, and techniques to meet those needs
- Design, develop, and test a data-driven application that addresses a real-world need
- Orally articulate the need for a data-driven application and how it addresses a real-world problem
- Analyze social and ethical implications of various database applications with a particular emphasis on privacy issues
- Function effectively as a member of a small software development team
- Apply database theory to the implementation of an information management system
-
Create an abstract data model for an information system
-
Normalize a relational database to at least 3rd Normal Form (3NF)
-
Use SQL to query a database
-
Analyze the factors affecting database performance
-
- 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. ISBN: 0-470-62470-1 / 978-0-470-62470-8
Policies
AI tools, such as ChatGPT, have the potential to revolutionize – and potentially to subvert – your learning. Be sure to review the help policy for each assignment before using these tools, and if you choose to use an AI tool, you must document its use and submit complete transcripts (or equivalent) as part your documentation statement. (As a consequence of the latter requirement, tools that do not provide a log of your interactions, such as GitHub Copilot, may not be used.)
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 should be coordinated with the instructor in advance or may not be accepted. Except for extraordinary circumstances, late submissions will incur a 25% penalty for each 24-hour period past the deadline.
Unless otherwise stated, assignments are due at 2300 on the day of the lesson. The due date in Canvas is one hour later (i.e., 2359), providing an explicit grace period before the late penalty will be applied.
The aforementioned discrepancy is intentional between the course website and Canvas regarding the time an assignment is due.
Grading
Final grades will be based on the following graded events:
Assessment Type | Number | Points (Prog) | Points (Final) |
---|---|---|---|
Quizzes | 12 | 50 | 100 |
Graded Reviews (GRs)2 | 3 | 125 | 375 |
Programming Exercises (PEXs) | 3 | 75 | 225 |
Project | 125 | 300 |
The project comprises multiple deliverables as outlined in its description.
Opportunities for extra credit are also available.
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.
-
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). ↩
-
The entry for GRs also includes an in-class SQL assessment. ↩