EECS 339: Introduction to Database Systems, Fall 2013

Instructor:Peter A. Dinda (Office Hours: Thursdays 2-5)
Teaching Assistant:Maciej Swiech (Office Hours: Tuesdays 2-5)
Time:Fall 2013, MWF 4-4:50
Location:Tech L150
Recitation:Mondays, 6pm, varying rooms:
Tech M128: 10/7, 10/21, 11/4, 11/11, 11/25, 12/2
Tech M152: 10/14, 11/18
Tech L324: 10/28, 12/9
Course number:EECS 339
Enrollment Limit:40 (currently 39 registered, plus 4 auditors)

Getting in

The class enrollment is limited to 40 students, and there were 29 students waitlisted at the peak. There are usually a few students who drop the course in the first couple of weeks. We will let students in from the CAESAR waitlist as space becomes available, with priority given to CS undergraduates who are seniors.


We will not use CMS/Blackboard for anything.
  • Newsgroup: We will be using the Google Group CS 339 - Northwestern University for simple, persistent, and searchable communication among everyone in the class. This is where you want to go to post questions about lecture, homework, and programming projects. You need to sign up to access the group, which you can do here - only Northwestern email addresses will be accepted:
    Subscribe to CS 339 - Northwestern University
    Visit this group
  • I will occasionally send emails to everyone registered using CAESAR. These emails will go to the addresses that CAESAR has.
  • General Handouts

  • Syllabus
  • Using Databases in the Web of Things Environment
  • Gentle Introduction to SQL
  • Perl in a Nutshell
  • JavaScript Tutorial
  • The T-Lab and Wilkinson Lab
    If you do not already have a T-Lab/Wilkinson Lab Linux and Windows account, you should get one now. You will these labs convenient places to work, especially with partners.
  • We recommend you use ssh and an NX client to use the class servers.
    NX 4.0 will not work. You should install the NX 3.5 Client software available from the linked page (Scroll down to NX Client Products).
  • Projects

  • Red, White, and Blue (pdf) Due on October 16 18
  • Financial Portfolio (pdf) Due on November 15
  • BTrees (pdf) Due on December 6
  • Homeworks

  • HW 1: Entity-Relationship data model (pdf) Due on October 23
  • HW 2: Relational data model (pdf) Due on November 4
  • HW 3: Relational algebra (pdf) Due on November 18
  • Exams

  • Midterm (Tuesday, 11/5, 6pm, Tech L221 - 90 minute exam)
    Review Sessions: Prior Recitation and possibly 11/4 (In Class)
  • Final (Thursday, December 12, Tech L150, 7pm-9pm - 90 minute exam, not commulative)
    Review Session: Prior Recitation
  • Useful Additional Content

  • Phillip Greenspun's SQL For Web Nerds Book, which we will make use of early in the class.
  • A Gentle Introduction to SQL, which has tutorials and examples of the slight differences in SQL from RDBMS to RDBMS.
  • Introduction to Unix (Peter Dinda) (video, part 1, video, part 2) (use your netid to accesss)
  • Fabian Bustamante's List of C and Unix Resources, which may help you if you are unfamiliar with getting around on Unix.
  • Cloud Computing and Google Spanner (Kyle Hale and Maciej Sweich) (pdf)
  • PHP for Active Content (David Choffnes) (slides, video, (code (intro.php and serveImage)) (use your netid to accesss)
  • Java Servlets and Server Pages (Andrew Simpson) (slides, video) (use your netid to accesss)
  • Peer-to-Peer Databases Lecture (Ashish Gupta, David Huber, Jay Bruins) (slides-1, slides-2, Real) (use your netid to accesss)
  • Comer's Ubiquitous B-Tree Paper
  • E.F. Codd's seminal paper on the relational data model
  • Johan Vromans's Perl Reference Guide
  • An older version of JavaScript: The Definitive Guide, appears to be available for free online as part of the Web Programming CD Bookshelf 1.0

  • Peter Dinda
    Last modified: Thu Nov 7 18:32:27 CST 2013