COLUMBIA UNIVERSITY COMS W4111

W4111 Syllabus

The goal of this class is two-fold. First, to introduce you to core database concepts (e.g., data modeling, logical design, SQL) so that you too can build a billion dollar application. Second, to teach enough about database engine internals (e.g., physical database design, query optimization, transaction processing) so you can make good decisions when using a DBMS and debugging slow/incorrect queries.

Along the way, we will point out connections with modern data systems and data engineering concepts in industry, as the field is moving quickly.

At the completion of this course, the student should be able to

Course website: http://w4111.github.io/

Waitlist

This course waitlist prioritizes students in the Computer Science department, and is managed by the student services staff. The instructor does not manage the waitlist.

Format

Class meets once a week for ~3 hours

Quizzes

Textbook

Prerequisites

Required Prereqs

Background that will help

If you have used Java before, then use this Java2Python tutorial that we have written to see how Java concepts transfer into Python concepts. It also contains links to useful tutorials.

Programming Resources

Assignment Collaboration Policies AKA Cheating

Any part of an assignment or exam that is not created and written by you must be clearly identified and cited. This includes referring to an external website, asking a colleague, and using GenAI. Even if you have paraphrased/summarized ideas from elsewhere, you must cite it. You may not look at another student’s solution without permission from the staff, and may not knowingly share your solutions or leave the solutions where they can be seen (physically and digitally). We use the term GenAI to refer to AI coding assistants (e.g., Github Copilot, Cursor, or Replit) and large language models (e.g., ChatGPT, Anthropic, etc).

The following are examples of behavior that is not allowed:

The following are examples that are not considered cheating

If you believe you have violated this collaboration policy, you may retroactively retract your submission. If this is done before the staff becomes aware of your conduct, you will receive a zero grade on the submission and we will not consider your conduct to be an academic integrity violation.

Ultimately, cheating is no fun for anyone, and devalues your degree. Thus, Any hint of cheating will be reported to student affairs. If you are struggling to keep up in the course, come see the instructor during office hours. Please remember that cheating is a slippery slope – it may be enticing, but goes against the values in this course.

If you have any doubt, see Columbia’s description of academic honesty and talk to the Professor

Homeworks

Projects

Homeworks

Grading

Grading Policy

Notes on grading (please read):

Extra Credit

Extra credit is a way for students to illustrate their understanding of the course material in ways beyond formal assignments and exams. There is NO PENALTY for not doing extra credit because it is added to the final grade after computing any curves.

  1. We first grade cut-offs using scores that do not include any extra credit
  2. Then we add extra credit points.
  3. This includes all extra credit – standalone, on assignments/projects, and on exams.

Due to the additional work that the staff must take to assess and manage extra credit opportunities, we have strict deadlines for extra credit opportunities (aka no late days).

Grace Days

Grace Days for Homeworks

Unless otherwise specified, you are allowed 5 penalty free late days to use throughout the semester for homework only.

In some cases, we will specify that an assignment will not accept late submissions beyond a certain day. This is so that we have time to release solutions (say, before an exam).

Grace Days for Projects

For projects, you are allowed 3 penalty free late days to be used only for projects.

Additional Grace Day Rules

Procedures to submit late homework:

When planning to use grace days, note that homeworks tend to get harder later in the course.

Communication

Checklist when asking for help:

  1. Search google and see if it answers your question. Then tell us:
  2. What are you trying to do?
  3. What steps did you think would work and which have you tried?
  4. How did it fail and why do you think it failed (OK to say I don’t know why it failed)?
  5. What error did it produce?

Methods of communication: