Goals and Outcomes
- Learn the fundamentals of database theory and practice.
- Acquire skills in forming declarative speciﬁcations in database query languages such as SQL, relational
algebra, and XQuery.
- Learn techniques for mapping domain concepts to database constructs in a systematic manner with a
good understanding of the consequences of each decision.
- Gain experience in reading the relevant research literature and other publications used to disseminate
knowledge in the ﬁeld.
- Practice the appropriate and ethical use of existing material of diﬀerent kinds, such as source code,
services, and documentation.
- Gain experience in contributing to the body of knowledge.
- Learn how to analyze the eﬃciency of data-intensive programs, with an emphasis on database queries.
- Gain experience in conducting and documenting experimental studies of database programs.
- Improve programming skills, with attention to data-intensive programs and systems.
- Improve communication skills, with particular emphasis on written communication and, further,
Student Learning Outcomes
Upon successful completion of this course, students should be able to
- Explain the key aspects of well-known data models.
- Interpret queries in languages such as SQL, OQL, XQuery, and Datalog.
- Precisely describe the semantics of queries.
- Determine and justify equivalence and non-equivalence of queries within and across query languages.
- Eﬀectively demarcate the data-centric portions of an application or task.
- Map data processing tasks from abstract or informal speciﬁcations to concrete queries in various query
- Justify the correctness of queries.
- Explain the primary determinants of performance in commonly encountered data management systems.
- Analyze the running times of queries and data-intensive programs using simple methods.
- Choose appropriate data management systems and programming interfaces for various tasks.
- Create applications that make eﬀective use of database technology.
- Eﬀectively read suitable publications related to the topic.
- Use resources such as others’ code and writing in an ethical and professional manner.
- Contribute to the body of knowledge at an undergraduate level.
- Perform simple experimental studies of programs, with an emphasis on data-intensive portions.
- Program with attention to community standards and good practices.
- Communicate their programming work eﬀectively.
- Meet Quantitative Literacy General Education requirements, such as being able to [following text is
from U. Maine Gen. Ed. documents]:
- Translate problems from everyday spoken and written language to appropriate quantitative
- Interpret quantitative information from formulas, graphs, tables, schematics, simulations, and
visualizations, and draw inferences from that information.
- Solve problems using arithmetical, algebraic, geometrical, statistical, or computational methods.
- Analyze answers to quantitative problems in order to determine reasonableness. Suggest
alternative approaches if necessary.
- Represent quantitative information symbolically, visually, and numerically.
- Present quantitative results in context using everyday spoken and written language as well as
using formulas, graphs, tables, schematics, simulations, and visualizations.