CS 327E Elements of Databases

Fall 2024

Class Meetings and Locations: 

50295: MWF, 10:00 AM to 10:50 AM in room JGB 2.218

50300: MWF,  1:00 PM to  1:50 PM in room JGB 2.218

50308: TThu, 12:30PM - 2:00PM in room UTC 1.104

50309: TThu,  9:30AM - 11:00AM in room RLP 1.104

 

Instructors: 

Dr. J. Marcos Palacios

Email: mpalacio@cs.utexas.edu

Office: GDC 5.418

Dr. Prashant D. Joshi

E-mail: pdjoshi@cs.utexas.edu
Office: GDC 6.420

 

Course Description:
This course is designed to give students a practical introduction to databases and data systems. The goal is to learn modern data management and data processing techniques through a mix of best practices, experimentation, and problem solving.

The contents of the course are organized into three broad areas: 1) query languages with an emphasis on SQL; 2) data models from relational to document to graph; and 3) data engineering with a focus on data processing and scalability testing.

We will construct multiple databases for operational and analytical purposes throughout the term. The work will be done on Google Cloud Platform using a variety of database technologies and data science tools: MySQL, Postgres, BigQuery, Firestore, MongoDB, Neo4j, Jupyter Notebooks, and Data Studio.

Course Outline:


Prerequisites:
The course assumes a programming background and in particular, a solid working knowledge of Python scripting. As such, the prerequisites for this course are CS 303E, CS 307 or the equivalent. Familiarity with SQL is also helpful, but not required.

Textbooks:
There are two required texts for this course:
- Alan Beaulieu, Learning SQL, Third Edition, 2020.
- Dan Sullivan, NoSQL for Mere Mortals, First Edition, 2015.

Supplemental Readings:
In addition to the required readings, the assignments will involve consulting the product documentation on Cloud SQL, Cloud Spanner, BigQuery, Firestore, MongoDB, Neo4j, and Data Studio. All documentation will be available online.


Projects:
The most important component of this course are the projects. The projects are intended to give you hands-on experience with the database systems and tools. They will start with the basic CRUD operations and move on to more advanced capabilities. The projects are aimed at giving you some practice with the series of database systems. They will be assigned as homework and will require outside class time to complete. 

All projects will be carried out in groups of two students. You will form groups at the start of the term and work with the same partner throughout the term. More details on the projects will be provided in the schedule page.

Late projects are eligible for partial credit, although they will not be accepted without prior arrangements (i.e., letting me know in advance). Note that late projects will incur a penalty of 20% per day, for up to 2 days, after which time they will not be accepted at all.

 

Absences:
Excused absences may be given only for verifiable medical or family emergencies. Written documentation must be provided to qualify for an excused absence. The medical documentation must specifically state that you could not attend class due to your illness and must be signed by a physician. A job or internship interview or any other appointment does not constitute an excused absence.


Tools:
- Zoom for online instruction.
- Google Cloud Platform for practice problems and project work.
- GitHub for code repository, version control, and how-to guides.
- Lucidchart for diagramming.
- Piazza for asynchronous communication (announcements, questions, discussions).
- Canvas for grade reporting.

Academic Integrity:
This course will abide by UTCS' code of academic integrity.

Students with Disabilities:
Students with disabilities may request appropriate academic accommodations.

Sexual Misconduct Reporting (SB 212):

Beginning January 1, 2020, Texas Senate Bill 212 requires all employees of Texas universities, including faculty, report any information to the Title IX Office regarding sexual harassment, sexual assault, dating violence and stalking that is disclosed to them. Texas law requires that all employees who witness or receive any information of this type (including, but not limited to, writing assignments, class discussions, or one-on-one conversations) must be reported. If you would like to speak with someone who can provide support or remedies without making an official report to the university, please email advocate@austin.utexas.edu. For more information about reporting options and resources, visit http://www.titleix.utexas.edu/, contact the Title IX Office via email at titleix@austin.utexas.edu, or call 512-471-0419.

Acknowledgments:
This course is generously supported by Google by giving us access to their Cloud Platform.