CS4320/4321: Introduction to Database Systems (Fall 2008)


Course Staff and Office Hours


CS4320: Introduction to Databases


CS4320 provides an introduction to relational database systems. The topics covered include the relational model, SQL, transactions, database design, and concepts and algorithms for building database management systems. Students are encouraged to concurrently enroll in CS4321 (Practicum in Database Systems) as well.


CS4320 meets from 2:30pm to 3:20pm on Mondays, Wednesdays and Fridays in Olin Hall 155. The first lecture took place on Friday Aug. 29 2:30pm.

These are the links you will need most:


This is a required textbook. The contents of this book do not constitute the syllabus for the course - the classroom lectures define the course content, and the textbook is a reference.


CS4320 will assume knowledge of material covered in CS212 (Computers and Programming) and CS312 (Structure and Interpretation of Computer Programs). CS414 (Systems Programming and Operating Systems) will help with some of the advanced topics taught later in the semester. While CS414 is not a prerequisite, we encourage you to take CS414 along with this course.


The grades for CS4320 will be determined based on homework assignments (50%) and two exams (50%).

Homework assignments (for assignment deadlines see CMS)


  1. Mid-term exam. Oct. 23 7:30pm—10:00pm – room to be announced. (20%)
  2. Final exam. 12/16/08 2-4:30pm Hollister B14. Cumulative with emphasis on the last half of the course. Date and location to be announced. (30%)


Late submissions policy  (both for CS4320 and CS4321)


All homeworks have to be submitted via CMS, that is, in electronic form. You may submit scanned PDF files of CS4320 homeworks, but there is a limit on upload size and it is your responsibility to make sure in time that the upload of scanned files succeeds.  If there is a problem, submitting via email or on paper is not an option. We suggest to do the homeworks using a text editor or latex and create a PDF file for submission.


We will have strict deadlines that will usually be at 11:59pm of the day indicated in the deadline. There will be a grace period of 48 hours after the deadline during which you can still submit to CMS. If you submit at any time during the grace period (even just a minute after the deadline), the score you achieve on the assignment will be multiplied by a factor or 0.9. Further extensions beyond the grace period can only be granted for serious medical reasons.


This may sound strict, but we want to be fair and have the same rules for everyone. We will try to provide the best help possible to make you succeed with the assignments, but you will have to grant sufficient time to finish your homeworks and submit them before the deadline.



Job interviews


Many students who take CS4320/1 also do job interviews in the fall. Please make sure not to schedule any interviews that may make it hard for you to attend the exams. We cannot move exams because of interviews or do makeup exams because of them.   Makeup exams can only be scheduled for serious medical reasons, not because of job interviews.   We know that some companies behave inflexibly regarding interview dates (notably, Microsoft), but in this case you will have to state firmly that it is a Cornell rule that exams have priority (which is true). It is important not to tell recruiters that there is a possibility of moving the exam, because it is not true and they will take your word on it. Please keep in mind that traveling takes time: you should not schedule interviews a day before or after an exam, particularly if the interview is on the West Coast. If you like, you can refer recruiters to me and I will tell them that there are no exceptions.


Again, this may sound strict, but CS4320 traditionally is taken by about 60 students who are on the job market. Most do several interviews in the fall. If we try to accommodate everyone (giving preferential treatment to some would be unfair), the course must be a frustrating experience for everyone. Please view this from a different perspective. As a Cornell student, you are a very desirable hire; and recruiters usually love students who have taken a database internals course. You should absolutely brag about CS4320 and even more about CS4321 in your interviews, even if the company you are interviewing with does not have an obvious connection to databases. But be aware that you may be quizzed on the material! You do have some leverage in arranging dates with them.




CS4321: The Practicum

CS4321 is the practicum associated with CS4320. In CS4321, you will build the major components of a “realistic” database system.

Solid C/C++ skills are required. You will extend an existing database management system, Minibase (see the textbook).


CS4321 has a lecture once every week given by the TAs in which the assignments are presented and discussed and where you can ask questions. This is not a course in which you are lectured on how to program. This series of lectures will take place on Wednesdays 3:35-4:25pm (Hollister Hall Room 110 – Note: this room does not change to Olin 155).   The lectures will start on Sept. 17.

For questions, email cs4321-ta-l@lists.cs.cornell.edu.

CS4321 does not have any exams. The grade solely depends on four assignments, each with a 25% weight. We use CMS to check out and hand in assignments. See CMS for assignment deadlines.



Frequently asked questions


Q: What is the difference between CS4320 and CS4321?

A: CS4320 covers the concepts underlying modern database systems. CS4321 teaches how to actually build a modern database system. CS4320 has no programming assignments, while CS4331 has four C++ programming projects.


Q: Can I take CS4320 without taking CS4321?

A: Yes. However, we recommend that you take CS433 since you will learn a lot more about how databases are built by actually writing a large part of a database system.


Q: Can I take CS4321 without taking CS4320?

A: No. The material covered in CS4321 assumes knowledge at the level of CS4320. However, you can (and we encourage you to) concurrently enroll for both CS4320 and CS4321.


Q: Does CS4321 involve a lot of work?

A: There is a lot of project work that involves programming. Whether you find it time-consuming or not depends on your level of comfort with C++ programming. In previous course evaluations, many students wrote that even though the course was a lot of work, they learned a lot of valuable material. Many people also received job offers based on their knowledge of material taught in CS4320 and CS4321.


Q: How important is class attendance?

A: Class attendance is crucial. Much of what we teach is not written on the transparencies or directly available in the book. We urge you to attend class and participate in the discussion of the different topics.


Q: I don’t know C++, but would like to take CS4321. Can I do the implementation in Java?

A: No. You cannot choose to do these programming assignments in a language other than C++. There are several reasons for this; the most important one is that we provide you with some code to start out with, which is in C++.


Q: I don’t know C/C++, but would like to learn it. Is it a good idea to take CS4321 to learn C/C++ there?

A: According to feedback from earlier years, no. If you know C *and* and an object-oriented programming language such as Java really well but don’t know C++, I am convinced you won’t have problems since the assignments do not focus on obscure C++ issues. If you know Java but not C, we suggest not to take CS4321 because the course emphasizes systems internals that depend on understanding pointers as well as modifying files on a low level, and knowing Java is not a sufficient preparation for that.


Q: I have signed up for CS4321 but now I realize that it’s not the right thing for me. What can I do?

A: Don’t worry – if you need a signature to drop out of the course, you will get it. (But note that there may be deadlines after which Cornell does not let you do that without penalty.) Similarly, if you like to *try* the first assignment, just sign up for the course.


Q: Are all CS4321 assignments equally hard?

A: There are four programming assignments that each have 25% weight. However, the first and second assignment usually feel substantially easier than the third and fourth. So if you find the first two assignments easy, do not make the mistake of granting too little time to solve the later assignments. It is too late to start working on an assignment on the evening of its deadline.


Q: Is teamwork permitted in CS4320 or CS4321?

A: No teamwork is admitted in either course, and would be considered cheating. You may help eachother understanding the course material, but you must not work on solving the assignments together or show solutions to your colleagues.


Q: I’d like to start preparing myself for CS4320 already now. What parts of the book should I read first?

A: I suggest to look at the relational model and then read the chapter on SQL. This is not hard stuff, but people tend to have problems with SQL (particularly the queries involving negation or universal quantification), and it is just so important in industry!


Q: Is CS4321 hard?

A: We don’t think so. A few students find it hard and some of the above questions are really geared towards them, but most students have no great difficulties and get very good grades.




Last Update: Sept. 15, 2008.