CSIS 638 - Summer 2018

Syllabus

Official Course Description

Topics such as algorithms for query processing and optimization, physical database design, transaction processing, concurrency control, database backup and recovery techniques, database security, distributed databases, multimedia databases, object and object-relational databases, data warehousing, and data mining.

Required Text

There is no requied textbook for this course, but there will be a lot of required reading of literature and of online tutorials and guides.

Course Details

Contact Information

  • Professor: Dr. Paul Anderson
  • Office: 313 HWEA
  • Office Hours: This is an online course so there will be no in person office hours.
  • Office Phone: 843-953-8151 (I never pick this up, but it does exist :)
  • E-mail: andersonpe2@cofc.edu I will check the discussion board once a day except on weekends. I will respond to emails between 48-72 hours during the week.

Course (learning) outcomes

  1. Have mastered the concepts of physical data organization including B-Trees, Graphs, and Hash Tables.

  2. Have mastered the concepts of parallel and distributed databases including the map-reduce parallelism framework, data replication and distributed query processing.

  3. Be familiar with query compiler technology including parse trees, logical query plans and physical query plans.

  4. Understand methods of handling system failure including undo/redo logs and data redundancy.

  5. Have mastered the concepts of concurrency control including locking and timestamp algorithms and transaction management including serializability and deadlocks.

Expectations

This is a graduate level course, and a course that requires both theory and practice. From a practice perspective, technology changes very rapidly. If our goal was only to teach you the latest technology, we would give you a recipe to follow and you would follow it and gain experience with the technology. But neither leads to a deep understanding nor does it extrapolate to new technology. To learn the practice in a deep way, we need to create an environment where students can develop their own questions and their own answers. To do this, we need an environment that celebrates some uncertainty and discomfort. Now is a good time to think “get to the point”. The point is I am going to purposefully give you assignments with plenty of possibilities for road bumps and more importantly chances for everyone to figure out how to navigate a complicated tech scene. On the theory side, we are going to read papers, explore state-of-the-art ideas, and critique them. These will require you to dig a little bit for the necessary background as these papers build upon a lot of previous work.

This being an online accelerated class, I expect you to work on this class every day of the week (M-F). No late work will be accepted. On the flip side, we all have lives, so I’ll be going dark over the weekend. Once a deadline passes it has passed.

Grading Policy

  • Google Slides with Speaker Notes (60%)
  • Programming Project(s) (40%)

Grading Scale: A: 90-100; B: 80-89; C: 70-79; F: <70.

Grading Guidelines: Submitted work requires Analysis, Evaluation, and Creation of ideas, concepts, and materials into various deliverables (e.g., see revised Bloom’s Taxonomy and reference below).

  • The grade of A is for work that involves high-quality achievement in all three Bloom areas.
  • The grade of B is for work that involves high-quality achievement in at least two Bloom areas, and medium-level achievement in the other.
  • The grade of C is for work that involves high-quality achievement in at least one Bloom area, and medium-level achievement in the others.
  • The grade of F is for work that does not meet above criteria.

Reference: Errol Thompson, Andrew Luxton-Reilly, Jacqueline L. Whalley, Minjie Hu, and Phil Robbins. 2008. Bloom’s taxonomy for CS assessment. In Proceedings of the tenth conference on Australasian computing education - Volume 78 (ACE ‘08), Simon Hamilton and Margaret Hamilton (Eds.), Vol. 78. Australian Computer Society, Inc., Darlinghurst, Australia, Australia, 155-161.

Course Structure and Philosophy

There are no exams for this course. There will be practical programming and technology related projects. There will also be regular reports due exploring the theory through state-of-the-art literature. This is an online course so we lose the ability to have easy synchronous communication. Instead, we will invest very heavily in quality asynchronous communication.

Email is to be reserved for private one on one communication. I get a lot of emails, so I will get back to you within 72 hours. For daily feedback, I have opened up all Google Slide presentations for comments. I will check those once a day and respond when necessary. You may respond to other student comments.

Honor Code

You must do your work alone (or with your teammates, for group assignments). You must identify your sources of material and inspiration. It is a violation of the honor code to present someone else’s work or ideas as your own. In any course deliverable, you must always identify the person(s) that helped you (directly or indirectly), if any, and explain their contribution to your work. Also see the College of Charleston Student Handbook, especially sections on The Honor Code (p. 11), and Student Code of Conduct (p. 12). There is other useful information there. Classroom Policies

Late Policy

No late days will be allowed without an excuse. Falling behind on assignments will make it difficult to achieve the learning outcomes of this course.

Netiquette

Netiquette is a set of rules for behaving properly online. Something about cyberspace makes it easy for people to forget that they are interacting with other real people. The following bullet points cover some basics to communicating online:

  1. Be sensitive to the fact that there will be cultural and linguistic backgrounds, as well as different political and religious beliefs, plus just differences in general.
  2. Use good taste when composing your responses in Discussion Forums. Swearing and profanity is also part of being sensitive to your classmates and should be avoided. Also consider that slang can be misunderstood or misinterpreted.
  3. Don’t use all capital letters when composing your responses as this is considered “shouting” on the Internet and is regarded as impolite or aggressive. It can also be stressful on the eye when trying to read your message.
  4. Be respectful of your others’ views and opinions. Avoid “flaming” (publicly attacking or insulting) them as this can cause hurt feelings and decrease the chances of getting all different types of points of view.
  5. Be careful when using acronyms. If you use an acronym it is best to spell out its meaning first, then put the acronym in parentheses afterward, for example: Frequently Asked Questions (FAQs). After that you can use the acronym freely throughout your message.
  6. Use good grammar and spelling, and avoid using text messaging shortcuts.