Textbooks/Clickers

Required Textbook

Ramakrishnan and Gehrke. Database Management Systems, 3rd Edition, McGraw-Hill, 2003. The 2nd edition is also fine. A copy of the textbook is on reserve for short-term (2 hour loan) at the Library Reserve Room in the Irving Barber building and the ICICS/CS Reading Room.


Required Clicker

iClicker or i-clicker + response device (Available at the UBC Bookstore)


Additional Reference Material (optional)

If you want additional reference material, any book on relational database systems that has been published in the past few years should be fine.


Prerequisites

Either (a) CPSC 221 or (b) all of CPSC 260, EECE 320 and one of CPSC 210, CPSC 211, EECE 309.

Evaluation

Your performance in the class will be based on a number of activities. Final grades will be calculated as follows:

    To pass the course, you must obtain a 50% overall mark, and pass the final exam. I reserve the right to change this scheme at any time, though I do not anticipate doing so.


    Clickers

    Clicker marks will be based on both participation and correctly answering questions. To receive full credit, you must participate in and correctly answer to at least 90% of the exercises over the term. Note that the goal of this policy is to cover cases where you are absent or forget your clicker, so there are no "excused absences" from the clicker questions. However, if you will be absent for long periods of time, please come and talk to me.


    Tutorials

    Tutorials are the fun part of the course. In most sessions you will work in groups and apply the concepts you'll learn in the lectures to solve real-world problems. At the beginning of each session the TA will explain the problem and the tasks each group has to complete. At the end of the session some group(s) will present their solutions and discuss them with the rest of the groups.

    Project

    The required project will be completed in groups of 4. For this project you decide the application domain based on data that you have or find interesting. Building a full database application from scratch allows you to control the process; instead of having the pieces decided for you, you must make all of the decisions by yourself. Part of this process is that you will see how design decisions made at the beginning will affect your final project. You will be graded based on the result of a demo, a group report, a personal report, and meeting of intermediate deadlines. You should expect most (though not all) of the programming to be required in the project rather than in the homeworks. The project will either be conducted using Java/JDBC, or using web design and PHP. More info can be found on the project page.


    Examinations

    There will be two midterms and a final examination. Each exam will be closed book.

    • Midterms will be held during class time. If you are unable to write a midterm (e.g., due to illness), you should obtain suitable documentation (e.g., doctor's note) and inform the instructor ASAP - not after you've written the exam or gotten your mark back.
      • Midterm 1
        • date: Tuesday, January 31
        • time:
          • 8:00 - 9:30 am (Hazra's section)
          • 11:00-12:30 pm (Laks' section)
        • location: TBD

      • Midterm 2
        • date: Tuesday, March 07
        • time:
          • 8:00 - 09:30 am (Hazra's section)
          • 11:00-12:30 pm (Laks' section)
        • location: TBD

    • Final will be scheduled by UBC. If you are sick for the final exam, you must present a doctor's note to the Science Faculty office. You will write a different exam, at a future date determined by the Registrar's office.

    Piazza

    Please limit emails to the instructor and the TAs to items of a personal or confidential nature (e.g., illness). Problems with the CPSC 304 course contents (e.g., lecture, textbook, assignments) can be posted on Piazza, but please check to make sure that your question hasn't already been asked or answered. Piazza will be monitored by course staff, but we cannot guarantee to answer each one. Students are encouraged to answer questions, which will allow you to get better at articulating your opinions, providing support for your views, developing arguments, and listening and relating to the views of others.


    Illness and late policy

    Please do not come to class while very sick --- it's not good for you, it's not good for the rest of us. Do contact the instructor by e-mail immediately when you know you will miss a graded assessment (e.g., exam/project).

    No late projects will be accepted without a valid reason, such as illness. If you think you have a valid reason, please contact the instructor directly. Because you can earn 100% even if you miss some, we typically do not accept excuses for missed clicker exercises. (That said, if you have concerns, please talk to us!)


    Collaboration/Cheating Policy

    We believe that you will learn at least as much from each other as you will learn from the teaching staff. Therefore, we want to encourage collaboration without compromising a fair grading scheme (as described in the department's policy on collaboration).

    In most instances, you can collaborate as much as you want with whomever you want subject to three restrictions:

    1. You must acknowledge everyone with whom you collaborated on your submission.
    2. You may not take a record of any sort away from the collaboration. (So, erase all whiteboards, delete all e-mail, recycle all paper, etc.)
    3. You must spend at least an hour after the collaboration and before working on your own submission doing mindless activities. In other words, do something so distracting and inane that you must have learned anything you can reconstruct afterward.

    The exceptions to this rule are:

    • On the project you may collaborate with your group. However, you will be asked to define how the collaboration worked. Note that collaboration with people outside your team still falls under the collaboration rules given above.
    • Collaboration with the instructor and TAs (including discussion board posts) is excluded from the collaboration rules.
    • You may not collaborate at all on the midterm exams, the final exam, or any work that we explicitly state must be done individually.
    • You may be unable to destroy some records you create during collaborations (e.g., posts to the Piazza discussion board). In such cases, you should try to follow the spirit of the rule: exercise caution in the information you share (e.g., don't provide answers to problems but rather discuss similar problems or describe concepts).

    Finally, use common sense. For example, carefully memorizing someone else's SQL query and then regurgitating it an hour later is still plagiarism and cheating.

    Oracle/MYSQL

    We will use Oracle as our database Management System (DBMS). It is hosted by the Computer Science department. The command line interface to Oracle is called SQL*Plus. For programming assignments, most people will probably use Java/JDBC or PHP to interface with the DBMS. You may also use MYSQL as your DBMS in your project. Make sure everyone in your group is ok with this choice, as we're not going to have a tutorial session on MYSQL.

    Problems?

    Problems with Connect itself should be directed to help@itservices.ubc.ca. Problems with undergrad accounts and servers should be directed to help@ugrad.cs.ubc.ca. Use hardware@ugrad.cs.ubc.ca to report hardware problems.

    Acknowledgements

    Slides and other course materials are based on previous materials from others, especially the authors of the book (Raghu Ramakrishnan and Johannes Gehrke), Hassan Khosravi, Rachel Pottinger, Phil Bernstein, Alon Halevy, Ed Knorr, Laks Lakshmanan, Raymond Ng, George Tsiknis, and Steve Wolfman. Thanks, folks.