DOC PREVIEW
NU EECS 339 - EECS 339 Syllabus

This preview shows page 1-2 out of 7 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 7 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 7 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 7 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

CS 339 Introduction to Databases Dinda, Fall 2003 Page 1 of 7 Introduction to Databases Syllabus Web Page http://www.cs.northwestern.edu/~pdinda/db Instructor Peter A. Dinda 1890 Maple Avenue, Room 338 847-467-7859 [email protected] Office hours: Thursdays, 2-4pm or by appointment Teaching assistants Ananth Sundararaj 1890 Maple Avenue, Room 332 847-491-7150 [email protected] Office hours: Mondays, 10:15am-12:15pm, Wednesdays 11:15am-12:15pm or by appointment Bin Lin 1890 Maple Avenue, Room 224 847-491-7159 [email protected] Office hours: Tuesdays, 10-12am, Wednesdays 3:30-4:30pm or by appointment Location and Time 1890 Maple Avenue, CS Department classroom, MWF 9-9:50am Prerequisites Required CS 311 or equivalent data structures course Highly recommended CS 213 or equivalent computer systems course Highly recommended Familiarity with concepts from discrete math such as set theory Highly recommended Some familiarity with Perl or other scripting language Textbook and other readings Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer D. Widom, Database Systems: The Complete Book, Prentice Hall, 2001 (Textbook) • An in-depth introduction to databases and database implementationCS 339 Introduction to Databases Dinda, Fall 2003 Page 2 of 7 Phillip Greenspun, SQL for Web Nerds, http://philip.greenspun.com/sql/. (Required) • A great introduction to RDBMS systems from the perspective of a web application developer. Joe Celko, SQL for Smarties: Advanced SQL Programming, 2nd edition, Morgan Kaufman, 1999. (Useful) • A collection of wisdom on how working developers get useful things done in SQL. Jim Gray, Andreas Reuter, Transaction Processing: Concepts and Techniques, Morgan Kaufman, 1993. (Related) • Definitive book on transactions, a very important component of any modern database system. Larry Wall, Tom Christiansen, Jon Orwant, Programming Perl, 3rd Edition, O’Reilly and Associates, 2000. (Useful) • A detailed introduction to the Perl language. Your web-oriented projects in this class will be based on Perl CGI. You will need to know (or learn) only limited amounts of Perl. Objectives, framework, philosophy, and caveats This course introduces the underlying concepts behind data modeling and database systems using relational database management systems (RDBMS), the structured query language (SQL), and web applications (Perl DBI in CGI) as examples. You will learn: • How to model your data using the entity-relationship model • How to design a normalized schema in the relational data model • How to implement your schema using SQL • How to keep your data consistent and safe with your schema using the ACID properties that a modern RDBMS gives you • How to query your data using SQL • How to interface to a modern RDBMS from a modern programming language. • How such interfaces are used to create web applications • How an RDBMS provides quick access to your data using indices, and how indices are implemented. • How an RDBMS manages the storage hierarchy. • How an RDBMS optimizes and execute your queries using the relational algebra, the theoretical underpinning of database systems.CS 339 Introduction to Databases Dinda, Fall 2003 Page 3 of 7 • The history of database systems, including old ideas, like hierarchical databases, that are seeing a resurgence of interest today in the context of XML and LDAP. The textbook I have chosen is actually a combination of two books, an introduction to the concepts and use of databases and an introduction to the implementation of RDBMS systems. We will cover mostly the former. However, this is a very useful and essentially timeless book to have on your bookshelf for both elements. This is a learn-by-doing kind of class. You will get your hands dirty by creating a database-based web application that you will propose, design, and implement yourself. The majority of the programming in this class will be from scratch. Be warned that this is the first iteration of this course and I am not a database researcher. Also, I may adjust the pacing of the class as we go based on feedback. Project At the beginning of the course, I will provide you with a simple web application, a tiny web log (“blog”). Microblog is based on an Oracle database and provides a web interface using a CGI application written in Perl that talks to the database via DBI. This is a very common web application model and one that I encourage you to use for the rest of the class. You will spend three weeks learning how Microblog works and extending it in several simple ways. The goal is to immediately introduce you to all the programming elements of the course. For the remainder of the class, you will work on a self-defined project. You will propose your own problem and spend the remainder of the quarter designing and implementing your solution. Detailed descriptions of the requirements of both projects are available on the course web site. Please be sure to read them now so that you know what you’re getting yourself into. Homework There will be three to four homework problems sets that will be periodically assigned to help you improve your understanding of the material. Exams There will be a midterm exam and a final exam. The final exam will not be cumulative. Grading 10 % Dry-run project 40 % Self-defined project 20 % MidtermCS 339 Introduction to Databases Dinda, Fall 2003 Page 4 of 7 20 % Final 10 % Homework Final grades will be computed in the following way. A final score from 0 to 100 will be computed as a weighted sum of each of the projects, the homeworks, and the exams. Scores greater than 90 or greater than 90th percentile will be assigned As, scores greater than 80 or greater than 80th percentile will be assigned Bs, scores greater than 70 or greater than 70th percentile will be assigned Cs, scores greater than 60 or greater than 60th percentile will be assigned Ds, and the remainder will be assigned Fs. Notice that this means that if everyone works hard and gets >90, everyone gets an A. Please choose wisely where you put your time. Late Policy For each calendar day after the due date for a homework or a lab, 10% is lost. After 1 day, the maximum score is 90%, after 2 days, 80%, etc, for a maximum of 10 days. Cheating Since cheaters are mostly hurting themselves, we do


View Full Document

NU EECS 339 - EECS 339 Syllabus

Download EECS 339 Syllabus
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view EECS 339 Syllabus and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view EECS 339 Syllabus 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?