CS 327e: Elements of Databases - Spring 2015

Course time & location: Mondays and Wednesdays 5:00 PM - 6:30 PM, CLA 0.128

Instructor: Shirley Cohen
Email: scohen at cs dot utexas dot edu
Office hours: After class and by appointment. Please send me an email if you wish to make an appointment

TA: Yuming Sheng
Email: ysheng4 at utexas dot edu
Office hours: Fridays from 2:00 PM to 4:00 PM, GDC 1.302, TA Station Desk 5

Course description: The main focus of the course is on using databases to develop database applications. Students will learn how to write SQL programs to interact with relational databases, design relational and non-relational schemas, implement schemas in Oracle and MongoDB, and develop interfaces to Oracle and MongoDB using Python. The course will also cover the internals of a database management system.

Pre-requisites: No database background is required, but students should have some programming experience, at least at the level of CS 303.

Course textbooks: The main texts for the course are Murach's Oracle SQL and PL/SQL, 2nd Edition, 2014 and Sadalage and Fowler's NoSQL Distilled, 2013. A good supplemental text is Lutz's Learning Python, 5th Edition, 2013.

Videos: There will be four MongoDB tutorials, which will involve watching a video and discussing the contents:

Discussion Forum: We will use Piazza for both announcements and discussions. Please register yourself there to make sure you keep up with what is happening.

Homeworks: There will be four assignments to be done individually. You are free to discuss approaches to solving the problems with each other, but each student is expected to do their own work. Please do not under any circumstances copy homework solutions from anyone else or let anyone else copy from you.

Homeworks are due at the beginning of class on the due date, unless otherwise noted. Except in the most extreme circumstances, late homework will not be accepted.
Homework submissions should be done via Canvas. If you are taking the course but cannot access the CS 327e Canvas pages, please contact the TA.

Quizzes: There will be weekly in-class quizzes. The quizzes will be based on the lecture notes, readings and videos. The quizzes will typically take 15 minutes and are intended to ensure that you attend every lecture and keep up with the course work. There will be only two make-up quizzes during the semester. Make-up quizzes will be given only under compelling circumstances (such as ill health with documentation, death in the family, outside travel for job interviews, etc.).

Class Project: The class project will have two phases, the first phase will be to model and implement a relational database in Oracle as well develop a simple command-line interface to this database using Python. The second phase is optional and it will be to model and implement a database in MongoDB and develop a simple command-line interface using Python or JavaScript. For extra credit, students can also choose to replicate data between Oracle and MongoDB. The class project will be done in groups of 2 to 3 students. Groups of students will present their project to the class for both phases 1 and 2. You will have 7 minutes to present and 3 minutes for questions & answers. Each group of students will need to have one laptop and access to Oracle and MongoDB.

Final Exam: There will be a closed book, comprehensive exam and no mid-term exam. We will have a review session during the last week of class that will go through and rehash the topics that will be on the final.

Grading:

Tentative Class Schedule (subject to change):