"Studies the design, management, and use of relational databases. Database design focuses on modeling realistic problems with the help of the entity-relationship (ER) model and then transforming those into a relational schema. The class provides hands-on experience with SQL (structured query language), the industry standard for creating, updating, and querying relational databases. Elementary query optimization, indexing, normalization, and fundamentals of the important ACID properties (transactions, concurrency control, recovery) are introduced. Advanced topics may include relational calculus and algebra, triggers, database access from an application program, and alternative data models such as parallel/distributed and NoSQL databases."
Two in-class exams and one final exam (15% + 15% + 20%) | 50% |
Homeworks | 20% |
Project | 20% |
Gradiance quizzes | 5% |
In-lecture and online participation | 5% |
There will be no pass/fail grading option for this section.
We have three in-person exams: two exams that will be held during the regular class time and one final exam. The exams are comprehensive (everything we have seen or discussed in class, everything on homeworks, and everything discussed or clarified on Piazza at the time of the exam). We ask every student to create and use one single printed "cheat sheet" per exam (here is the template), which you need to hand-in after the exam. If you don't want to use one, hand-in an empty cheat sheet with your name on it. Notice that one of the early posted homeworks will be a past exam, so you get a good intuition for what to expect.
All students are required to take the exams at the scheduled time. The dates are announced in first class and are visible in our schedule. If an emergency or significant extenuating circumstance prevents you from doing so, you must send me an email including evidence for the special circumstances as soon as possible. Emergencies will be accommodated at my discretion and require documented proof of the situation.
We tend to get questions the night before exams on how to best prepare for the exams. The correct answer would be: go back in time, setup your PostgreSQL server and client early, participate during the exercises in class, if you don't understand something ask or read up further with the linked extra material so you are on top of the material and can participate next class (recall the surfer analogy), start your homeworks early enough to fill in gaps you may have over time, follow and participate in the Piazza and class discussions.
⇨ Details for Exam 1: focus will be on SQL. The submission will be the same as for the prior SQL homeworks. Thus you will be asked to write various SQL queries over various databases. You submit your queries in a submission template as txt file to Gradescope. The assignment will be available under assignments on Canvas at 2:55 and the submission is on Gradescope with deadline 4:30 (this includes 1h 30min for the exam plus 5min extra time for submission). For any further questions, please ask on Piazza.
⇨ Details for Exam 2: focus will be on SQL and database design.
⇨ Details for final exam: focus will be on SQL and database design (including normalization)
Submissions will be made via Canvas or Gradescope (you will see the appropriate option linked from within Canvas). Gradescope is a homework submission website that will help our class to have consistent grades across students and different graders. For you as student, it means that:
Importantly, this rubric can be updated *during grading* as graders become aware of new types of mistakes or misunderstandings not seen before. We recommend you use Office Lens (on Apple store, on Google store) to scan your homework to a single PDF file. Please do not change the format of the submission or the tool becomes confused and won't assign homework graders correctly. The following older Youtube video gives the full intuition of what is so great about Gradescope and why it only works if you follow the template.
Online auto-graded Gradiance quizzes will help you keep up with the class and prepare for the homework assignments and exams and account for 5% of the grade. All web quizzes are taken on the Gradiance website. It is an older tool developed at Stanford years ago (way before Web 2.0) thus a bit of a clunky interface, yet with nice pedagogic ideas that to my surprise have not yet been taken up by newer online learning tools. Since it is an old website, it cannot easily be integrated into Canvas. To access it you need the class token posted on Canvas and sign-up. Please use a name that allows me to match you against our course roaster at the end of the semester. I will create placeholder assignments in Canvas to remind you of the weekly tasks, but we will not copy and paste the points you get on each quiz back into the assignment page for the quiz. Instead, the copy the percentage of total points at the end of the class back into one placeholder assignment on Canvas.
You can take the quizzes an unlimited number of times, and they are automatically graded by Gradiance. You may attempt each homework as many times as you wish. Our expectation is that you will repeat every quiz, until you get a perfect score. However, we use the Gradiance system's recommended defaults with a 10-minute delay enforced between repeated attempts at the same homework. The purpose of these defaults is to reward improvement but to discourage random guessing. The score you obtain on your last submission of each homework (not the one with the highest points) is the score that is reported.
Further reference: A tour of gradiance
There are several ways to participate in class: e.g., asking questions that move the discussion forward (e.g. you ask a question that triggers me to update or improve or add a new example), answering questions (I ask a question, nobody answers for a while, then you raise your hand and make an attempt, even if wrong it is a great way to participate), pointing out errors in slides, participating on Piazza and asking questions or answering questions before I can. Asking me questions that make me add non-trivial clarifications or update examples to the class later. Bringing issues to my attention that affect all students, that I am just not aware of, and that nobody dares to point out to me (other than you). All of those are examples of great class participation and class contributions: all of those contribute to the overall discussion, interactive experience, lead to improvements for everyone, and thus help me help you and everyone. Great!
A rough guide for assigning participation points:
Please state your name before asking or answering questions in class, that will tremendously help me remember your names as soon as possible. Please also add photos to your profiles in Canvas and Piazza so I can more easily associate your class contributions.
If by the end of the term you have not participated in class (e.g. never asked or answered questions in class or on Piazza), then there is no class participation. No class participation means 0 points.
For those that realize by December that this policy applies to them, I had added a completely optional assignment at the beginning of the term. Was there anything confusing in class for which you think you have a better way of explaining the concept? Anything were you were left confused but Google or a friend or a book came to the rescue and you wished we had used a similar example in class. Here you can submit a few PPTX slides that you think will be helpful for your peers in future variants of this class. If your suggestions make me reflect and consider adding them in a similar form in future classes, those can make partially up for currently no class participation. If your slides are build upon existing prior documents you find on the Web (thus your slides contain examples or screenshots that are not original, "not original" means that are not originated by you) then you need to add a reference to the source.
In general, the purpose of assignments and exercises is to force you to think deeply through the material presented and apply it to solve specific problems, or to apply the tools, models, and techniques covered in class, and also to prepare you for the exams. Yet often you learn a lot by discussing and bouncing ideas back and forth with one of your classmates. We thus encourage you to discuss the content of the class, computer setup and overall strategy for homeworks with other students. In particular, it is fine to discuss to the overall strategy and details for the homeworks within your Canvas-assigned group, as both giving and receiving advice will help you learn.
However, you must write your own solutions and own code: it's not OK to share code or write code collaboratively. This includes posting and/or sharing your code publicly, such as on GitHub. Likewise, for the Problem Sets, you must write up your own solutions to all of the problems, and you must cite all people you worked with. If you do not do so, we will consider this a violation of the academic integrity policy. We cannot emphasize enough that you must cite all your sources properly. If you consult any resources outside of the materials provided in class, you must cite these sources. We reserve the right to assign a penalty if your answers are substantially derivative, but, as long as you provide appropriate citations, we will not consider this an Honor Code violation. You must remove any possibility of someone else's work from being misconstrued as yours. We also consider the facilitation of plagiarism (giving your work to someone else) as plagiarism as well. Never misrepresent someone else's work as your own. It must be absolutely clear what material is your original work.
If you are unsure about this policy, please ask us on Piazza.
The university's academic integrity policy discusses actions regarded as violations and consequences for students: http://www.northeastern.edu/osccr/academic-integrity. It takes many accomplishments to build your credibility and reputation, but one academic integrity violation (AIV) to ruin it. Rajat Gupta mentioned in a speech to Indian business school graduates in 2010: "...have a set of values that guide you. Don’t take the shortcut ... Have your sense of values, your compass, and follow that." Read about the twist in his story and think about "why would people who seem to have it all — wealth, prestige, powerful jobs and infinite access to others with the same — risk that..." [NYtimes (4/2011)] [Wikipedia on Rajat Gupta], [NYtimes (3/2013)], [recording].
Work hard and do your work with integrity, it builds your confidence and your character. Don't take shortcuts.
To create and preserve a classroom atmosphere that optimizes teaching and learning, all participants share a responsibility in creating a civil and non-disruptive forum for the discussion of ideas. Students are expected to conduct themselves at all times in a manner that does not disrupt teaching or learning. Your comments to others should be constructive and free from harassing statements. You are encouraged to disagree with other students and the instructor, but such disagreements need to respectful and be based upon facts and documentation (rather than prejudices and personalities). The instructor reserves the right to interrupt conversations that deviate from these expectations. Repeated unprofessional or disrespectful conduct may result in a lower grade or more severe consequences. Part of the learning process in this course is respectful engagement with the ideas of others.
We will not record the course sessions. Our classes will be conducted synchronously and we would like to have an environment in which everyone can speak up and discuss ideas freely without concern that discussions will be available outside of classroom.
Do not record the classes. The Commonwealth of Massachusetts's wiretapping law requires "two-party consent". It is a felony to secretly record a conversation, whether the conversation is in person or taking place by telephone or another electronic medium. [See Mass. Gen. Laws ch.272,§ 99].
Title IX of the Education Amendments of 1972 protects individuals from sex or gender-based discrimination, including discrimination based on gender-identity, in educational programs and activities that receive federal financial assistance. Northeastern’s Title IX Policy prohibits Prohibited Offenses, which are defined as sexual harassment, sexual assault, relationship or domestic violence, and stalking. The Title IX Policy applies to the entire community, including male, female, transgender students, faculty and staff.
If you or someone you know has been a survivor of a Prohibited Offense, confidential support and guidance can be found through University Health and Counseling Services staff (http://www.northeastern.edu/uhcs/) and the Center for Spiritual Dialogue and Service clergy members (http://www.northeastern.edu/spirituallife/). By law, those employees are not required to report allegations of sex or gender-based discrimination to the University. Alleged violations can be reported non-confidentially to the Title IX Coordinator within The Office for Gender Equity and Compliance at: titleix@northeastern.edu and/or through NUPD (Emergency 617.373.3333; Non-Emergency 617.373.2121). Reporting Prohibited Offenses to NUPD does NOT commit the victim/affected party to future legal action.
Faculty members are considered "responsible employees" at Northeastern University, meaning they are required to report all allegations of sex or gender-based discrimination to the Title IX Coordinator. In case of an emergency, please call 911. Please visit http://www.northeastern.edu/titleix for a complete list of reporting options and resources both on- and off-campus.
Students who have disabilities who wish to receive academic services and/or accommodations should visit the Disability Resource Center at 20 Dodge Hall or call (617) 373-2675. If you have already done so, please provide your letter from the DRC to me within the first week of class so that I can arrange those accommodations.
There is tons of research that shows that we are bad at multitasking. Being able to multitask is a myth because switching between task is so expensive. That said, we treat you as adults and trust you to act responsibly.
Please communicate with us regularly. Can you provide feedback via Piazza which everyone will see, or anonymously via this form, which only the instructor can see.
All assignments have a specific due date and time. Late homework will be accepted up to one day after the deadline with a proportional penalty, rounded up to the next hour. The assignment will be graded and returned as normal, but the grade will be recorded as (24-x)/24 of what was earned, where x is the late hours. For example, if a submission for end of day (midnight) receives a grade of 100 points, then same assignment submitted by 2:01am would receive 100*(24-3)/24 points. Late submissions for gradiance quizzes will not be accepted.
We know that your grades are important to you, and we take grading very seriously. Above all, we want our evaluation process to be fair to all of you. For that purpose, we use Gradescope for grading which allows grading per question (without seeing the student's name) instead of grading per student. Nevertheless, errors in grading can still occur despite our best efforts. You can appeal your scores by adhering to the following three guidelines.
Changes to the final course grade must be requested in an email to the instructor within one week of receiving the grade. The request should contain a technical explanation of why re-grading is necessary. If the instructor approves the request, all work including assignments, participation, and the project will be re-graded to determine the new grade. The new grade can potentially be lower than the original grade.
If at all possible, please reach out to us with your questions via Piazza (see link in Canvas navigation menu). That way whoever of us is at hand can answer your question first. Plus your peers can see the discussion and join the conversation.
We use Piazza also as our main online message board from instructors to students. If I have updates to share, I will post them on Piazza. Thus I recommend you to automatically follow every new note.
→ Click on the arrow on the right upper corner from Piazza → Account/Email settings → Edit Email notifications:
Before: | After: |
![]() |
![]() |
If you have any feedback on any aspect of this class whatsoever and prefer to remain anonymous, please use following Anonymous feedback form. that only me the instructor can see. I will also ask you for a midterm feedback in the middle of this class to adjust the scope and pace of the class.
For some assignments, we ask you to submit your manually drawn responses as single PDF to Canvas or Gradescop. I recommend Office Lens (on Apple store, on Google store) for scanning documents with your smart phone to PDF.
cs3200 is also being taught by a number of talented teaching faculty, including Nate Derbinsky, John Rachlin, Jose Annunziato, Kathleen Durant, Ghita Amor-Tijani, and Mark Fontenot. Traditionally, those alternative sections place a greater emphasis on using databases in applications, whereas our sections place a greater emphasis on computational thinking.
Prof. Renee Miller is currently preparing a new class cs4200 Database Internals, which is an alternative path to cs3200 (it fulfills the same requirements) for students later in their studies who have stronger algorithmic foundations and are curious to look closer at what is really going on inside a database.
Prof. Mirek Riedewald is an expert in parallel data processing and has created cs4240 Large-Scale Parallel Data Processing, which focuses on what you can do if data is really big. It's an excellent and hands-on class. Notice that there are also alternative lecturers for this class which may place different emphasis (e.g. Spring 2020 edition by Gene Cooperman, link may change over time)
For those interested in research or PhD, please see our DATA lab seminars with various talks related to research our lab is pursuing. Also, in past years, I had co-organized a yearly undergraduate research night (sorry, since the last disastrous Khoury web page redesign nothing can be found anymore on the Khoury pages, what a mess) which in 2020 was decided to be merged with a Northeastern-wide event called "SOURCE". I am not involved in SOURCE, nor other Khoury faculty to my knowledge. SOURCE is scheduled for Thursday, October 6, 2022.