CS 34800: Information Systems

MWF 11:30-12:20

ARMS 1010

Chris Clifton

Email: clifton_nospam@cs_nojunk.purdue.edu

Course Outline

Course Topics

File organization and index structures; object-oriented database languages; the relational database model with introductions to SQL and DBMS; hierarchical models and network models with introductions to HDDL, HDML, and DBTG Codasyl; data mining; data warehousing; database connectivity; distributed databases; the client/server paradigm; middleware, including ODBC, JDBC, CORBA, and MOM.

Teaching Assistants

PSO Schedule

Note: You are assigned to a particular PSO, and the PSOs (and course) are full. Please go to your assigned PSO, for two reasons:

  1. Some of the rooms will hold only the assigned people (particularly the mid-day ones). If people show up who aren't assigned to that PSO, there won't be places to sit.
  2. In most cases, your assigned PSO instructor will also be grading your work. What they know about your understanding of the material plays a big part in the Evaluation of instructors portion of the grade. If you go to a different PSO, it will be hard for them to say things like this student really knows the material better than their test scores would indicate.

That said, if you can't make a particular PSO some week, it is okay to go to another PSO with the permission of that PSO instructor, but please make sure that there is room for those assigned to the PSO before you take a seat.

Office Hours

Prof. Clifton will hold office hours Tuesday 14:30-15:30 and Friday 09:00-10:00 in LWSN 2142F. I am also available by appointment, email some good times and I'll pick what works. Or you can just drop by, I'm often in.

Mailing List

There will be a course email list used for high-priority announcements. This will use your @purdue.edu email address; make sure this is forwarded to someplace you look on a regular basis.

We will be using Blackboard for turning in assignments as well as recording and distributing grades, as well as any other non-public information about the course.

Course Methodology

The course will be taught through lectures, supplemented with reading. The PSO sections will provide an additional opportunity to ask questions and work through problems, and will be the primary venue where the projects will be introduced and discussed. The primary reading will be from the text. The written assignments and projects are also a significant component of the learning experience.

For review (and if you miss a lecture), you can pick them up as an Echo360 vodcast/podcast (accessible through Echo360, log in via institution.) Be warned that the audio isn't great; you only see what is on the screen, not what is written on the chalkboard; and you can't ask (or answer) questions; so it isn't really a viable alternative to attending lecture.

We will be using Piazza to facilitate discussions; this will enable you to post questions as well as respond to questions posted by others. More information on accessing Piazza will be provided here soon.

We will be using iClickers for real-time feedback in class.


The formal prerequisite is CS 25100: Data Structures and Algorithms (The comparable ECE course, ECE 36800, is acceptable as well.) You should have a solid understanding of and ability to analyze basic data structures, and the programming skill and expertise to implement them.


Evaluation is a somewhat subjective process (see my grading standards), however it will be based primarily on your understanding of the material as evidenced in:

Exams will be open note. The specific notes allowed will be announced per exam. To avoid a disparity between resources available to different students, and the possibility of using communication-equipped devices in unethical ways, electronic aids are not permitted.

Late work will be penalized 10% per day (24 hour period). This penalty will apply except in case of documented emergency (e.g., medical emergency), or by prior arrangement if doing the work in advance is impossible due to fault of the instructor (e.g., you are going to a conference and ask to start the project early, but I don't have it ready yet.)

Blackboard will be used to record/distribute grades (and, in some cases, for turning in assignments.)

Policy on Intellectual Honesty

Please read the departmental academic integrity policy above. This will be followed unless I provide written documentation of exceptions. You should also be familiar with the Purdue University Code of Honor. You may also find Professor Spafford's course policy useful - while I do not apply it verbatim, it contains detail and some good examples that may help to clarify the policies above and those mentioned below.

In particular, I encourage interaction: you should feel free to discuss the course with other students. However, unless otherwise noted work turned in should reflect your own efforts and knowledge.

For example, if you are discussing an assignment with another student, and you feel you know the material better than the other student, think of yourself as a teacher. Your goal is to make sure that after your discussion, the student is capable of doing similar work independently; their turned-in assignment should reflect this capability. If you need to work through details, try to work on a related, but different, problem.

If you feel you may have overstepped these bounds, or are not sure, please come talk to me and/or note on what you turn in that it represents collaborative effort (the same holds for information obtained from other sources that you provided substantial portions of the solution.) If I feel you have gone beyond acceptable limits, I will let you know, and if necessary we will find an alternative way of ensuring you know the material. Help you receive in such a borderline case, if cited and not part of a pattern of egregious behavior, is not in my opinion academic dishonesty, and will at most result in a requirement that you demonstrate your knowledge in some alternate manner.

If you have other issues

University Emergency Preparedness instructions

Student Mental Health and Wellbeing: Purdue University is committed to advancing the mental health and wellbeing of its students. If you or someone you know is feeling overwhelmed, depressed, and/or in need of support, services are available. For help, contact Counseling and Psychological Services (CAPS) at (765)494-6995 and http://www.purdue.edu/caps/ during and after hours, on weekends and holidays, or through its counselors physically located in the Purdue University Student Health Center (PUSH) and the Psychology building (PSYC) during business hours.

And you should always feel free to call, email, or drop by and talk to the instructor (or, if you have an issue with the instructor, the department head.)


Database System Concepts, Avi Silberschatz, Henry F. Korth, and S. Sudarshan, McGraw-Hill (2010) ISBN 0-07-352332-1.

Note: If you have already purchased the following, and would prefer to use it rather than exchange / purchase the above, let me know so I can give you the mapping of readings between books.
Fundamentals of Database Systems, Ramez Elmasri and Shamkant B. Navathe, Pearson (2016) ISBN 9780133970777
This is currently the book used for CS44800, so if you plan to take that course as well, it would be a reason to keep it.

Many have found the following a useful SQL reference, although I tend to use the online reference manual:

Syllabus (numbers correspond to roughly to week):

  1. Course Introduction Assignment 1 (Due in Blackboard 11:59pm EDT 9/2/2016)
  2. Formal Definitions, Relational Algebra Reading: KSS Sections 4.5.1, 3.2.1, 3.3-3.6, 6.1-
    Project 1 (Due in Blackboard 11:59pm EDT 9/17/2016)
  3. More on Relational Algebra and SQL. Reading: KSS Sections 3.7, 3.8, 6.1.4
  4. Finishing Relational Algebra and Queries: Outerjoin, PL/SQL. Reading: KSS 4.1.2,, 5.2.1-5.2.2
    Entity-Relationship Model. Reading: KSS Chapter 7
    Assignment 2 (Due in Blackboard 11:59pm EDT 9/23/2016). No late work accepted, as we will be releasing a solution set at that time to help you prepare for the midterm.
  5. More on the ER model
    Relational Design Readling: KSS 7.6, 8.1, 8.8.1
    Prof. Clifton will hold office hours 11:30am-4:30pm on Saturday, 9/24, LWSN 2142F in preparation for the midterm.
  6. First Midterm 9/26, in class. Covers material in the course introduction, SQL, Relational Algebra (everything up to, but not including, the Entity-Relationship model.) Exam and solutions.
    Project 2 (Due in Blackboard 11:59pm EDT 10/12/2016, due for part 1 is 11:59pm EDT 10/03/2016 )
    Functional Dependencies Reading: KSS 8.3-8.3.1, 8.4
  7. Database Normalization Reading: KSS 8.2-8.6
  8. October Break: No class Monday 10/10 or PSO 10/11.
    XML Databases Reading: KSS 23-23.4, Object Databases Reading: KSS 22-22.6, 22.10
    Assignment 3 (Due in Blackboard 11:59pm EDT 10/24/2016)
  9. Transactions Reading: KSS 3.9, 4.3, 14-14.8, 14.10
    Views Reading: KSS 4.2
    Project 3 (Due in Blackboard 11:59pm EDT 11/07/2016
  10. Triggers and Constraints
    Note: Drop Date 10/26.
  11. Indexing
    Big Data: MapReduce, Hadoop, Spark
    Project 4 (Due in Blackboard 11:59pm EDT 11/30/2016
  12. Second midterm 11/9, in class. Exam and solutions.
    Big Data: MapReduce, Hadoop, Spark
  13. Information Retrieval
    Guest Lecture 11/18: Prof. Elisa Bertino, Database Security.
  14. Thanksgiving: Class Monday and PSO Tuesday only
  15. Data Mining, Data Warehousing
    Assignment 4 (Due in Blackboard 11:59pm EDT 12/07/2016)
  16. Heterogeneous Database, Review

You may also want to see the canonical syllabus.

Final Exam Wednesday, December 14, 13:00-15:00, MTHW 210. As with the Midterms, the exam is closed book, but you are allowed notes. For the final this is up to four pages of notes (four sides, or two double-sided sheets, 8.5x11 or A4 paper.)

If you have another exam scheduled at that time or you have three or more exams scheduled that day and would like to reschedule the 34800 exam, please let me know as soon as possible. Note that conflicting exams are pretty much the only reason for rescheduling, I bought a ticket to go home earlier is not an accepted reason for an exam to be rescheduled.

Valid XHTML 1.1