Syllabus
Instructors
Name Office Phone Office Hours Xiannong Meng Dana 212 570-577-1214 xmeng Check here Course Outcomes
After completing the course, students will be able to
- explain the fundamental concepts of databases;
- design basic databases for data sets of various sizes;
- use programming languages such as SQL to create and manipulate databases to solve practical problems.
Class Meetings
Class meets on Monday, Wednesday, Friday 10 -- 10:52 am in Dana 213.
Textbook
The required textbook is A First Course in Database Systems 3rd ed. by Jeffrey Ullman and Jennifer Widom.
We will also draw information from another classic database textbook, Database Systems: The Complete Book by Hector Garcia-Molina, Jeffrey Ullman, and Jennifer Widom.
Expectation
Students are expected to actively participate in the learning. Discuss topics and their related contents in the class. Ask and answer questions. Finish homework and projects on time. Complete any reading assignments by the due date. Be prepared to discuss the reading material in class. Readings are listed on the course schedule. In particular, students are expected to pursue information on their own when there are questions or issues. Students are encouraged to come to the office hours of the instructors to discuss course related questions.
Courses at Bucknell that receive one unit of academic credit have a minimum expectation of 12 hours per week of student academic engagement. (See this page for details.) Student academic engagement includes both the hours of direct faculty instruction (or its equivalent) and the hours spent on out of class student work. This course meets three hours a week so you should expect to spend at least nine hours a week working on it outside of class.
Course Description
The following are the major topics to be covered in the course.
SQL (Structured Query Language) We will learn the SQL programming language that is used to create, maintain, and manipulate a database. We will be using sqlite, a server-less version of SQL that works on stand-alone computers.
Relational model There are many ways to organize a database. Relational database is the one we will concentrate on the most. In relational databases, the datasets are organized as a collection of tables, each row in a table is a piece of data. The data sets are related through keys, columns in the table that can identify each piece of data in the database. We will explore other examples of organizing database that work with non-structured data such as MongoDB, time permitting.
Design theories of relational database Databases are not simple collections of data (or tables). To build a good database, one must design the database in such a way that there is minumum redundancy, yet that every piece of information is accessible at a lowest cost possible. Achieving such a goal requires us to follow some design principles and theories when building a database. We will learn the basics of these theories and how they are applied to designing our databases.
Views and index The ultimate use of database is for users to retrieve or otherwise manipualte the data. We will study how a database can present its data to the user and how index plays a role in the process. We will also study the relation between views and index.
Some database internals In addition, we will study some implementation issues of databases such as indexing, I/O issues, external sorting. As a compute scientist, not only do we need to know how to build and manipualte database with languages such as SQL, but we also need to understand how database is built at its lowest level. We will touch some of the topics.
Locations for Course Information
The course uses various sites for contents and management. Please visit these sites often, e.g., daily.
- Course website is at http://www.eg.bucknell.edu/~csci305/ which contains most of the information and is open to the public.
- Course Moodle site is used to maintain information for students in the course only. Here is a direct link to the Moodle site for CSCI CSCI 305.
Grading
The course grade consists of the following components.
Professionalism and engagement 8% Projects and HW 26% Quizzes 8% Class activities 8% Mid-term exams 30% (15% each) Final exam 20% Total 100% Professionalism and Engagement
Professionalism is defined by many criteria, most of which are common sense and common courtesy rules. As a general guideline, behave as you would in your dream workplace. To encourage a professional, respectful atmosphere that is conducive to maximal learning in the classroom:
- Silence cellphones and other notifications during classroom;
- Arrive on time and do not leave before the class is over;
- Notify your instructor of any absence ahead of time;
- Stay awake, alert, and actively participate in class;
- Complete all work in a neat and organized fashion.
Actively engaging in class by asking and answering questions is probably the best way of learning. Try not just to sit there and listen.
Projects and Homework
There will be two programming projects during the semester. One is a semester long project to design and implement a database in SQL using a set of real data. The second one is related to database implementaiton using a data structure such as B+ tree. These projects are done in teasm of two to three students.
There will be a few sets of homework that involves small programming in SQL or written homework. Homework is done individually.
Quizzes
There will be regular announced quizzes given on Moodle during the first 10 minutes of lecture. Do not be late or you will not have adequate time to complete your quiz. They will cover reading or lecture topics. There will be no make-up quizzes.
Class Activites
There will be frequent in-class activities in which student work in small groups to discuss and complete the given assignments.
Exams
There will be two mid-term exams and one final exam. The dates for the mid-term exams are published in the course schedule. The final exam is at the time specified by the university. The mid-term exams are sectional, meaning they cover the contents between the exams. The final exam is comprehensive.
If you need special accommodation for exams, you must notify the instructor at least one week before the exam with sufficient evidence, e.g., letter from the Office of Accessibility Resources.