Tentative Syllabus

This commit is contained in:
Oliver Kennedy 2018-01-17 21:36:20 -05:00
parent 0118d62542
commit f31f2bb2a2
2 changed files with 437 additions and 0 deletions

View file

@ -0,0 +1,362 @@
[
{
"date": "Jan 29",
"type": "Lecture",
"due": "",
"topic": "Introduction + SQL Overview",
"materials": {
}
},
{
"date": "Jan 31",
"type": "Lecture",
"due": "",
"topic": "Physical Data Organization",
"materials": {
}
},
{
"date": "Feb 2",
"type": "Practicum",
"due": "",
"topic": "Checkpoint 0 + Java + GIT",
"materials": {
}
},
{
"date": "Feb 5",
"type": "Lecture",
"due": "",
"topic": "Relational Algebra",
"materials": {
}
},
{
"date": "Feb 7",
"type": "Lecture",
"due": "",
"topic": "Relational Algebra Equivalences",
"materials": {
}
},
{
"date": "Feb 9",
"type": "Practicum",
"due": "Checkpoint 0",
"topic": "Project 1 and Translating SQL to RA",
"materials": {
}
},
{
"date": "Feb 12",
"type": "Lecture",
"due": "",
"topic": "Join Algorithms",
"materials": {
}
},
{
"date": "Feb 14",
"type": "Practicum",
"due": "",
"topic": "Evaluating Relational Algebra",
"materials": {
}
},
{
"date": "Feb 16",
"type": "Lecture",
"due": "",
"topic": "Indexing (Intro + Tree Indexes)",
"materials": {
}
},
{
"date": "Feb 19",
"type": "Lecture",
"due": "",
"topic": "Indexing (Hash Indexes + Learned Indexes)",
"materials": {
}
},
{
"date": "Feb 21",
"type": "Lecture",
"due": "",
"topic": "Memory-Hierarchy-Aware Algorithms",
"materials": {
}
},
{
"date": "Feb 23",
"type": "Practicum",
"due": "Checkpoint 1",
"topic": "Project 2 and Volcano Operators",
"materials": {
}
},
{
"date": "Feb 26",
"type": "Lecture",
"due": "",
"topic": "Cost-Based Optimization",
"materials": {
}
},
{
"date": "Feb 28",
"type": "Lecture",
"due": "",
"topic": "Database Statistics 1/2",
"materials": {
}
},
{
"date": "Mar 2",
"type": "Practicum",
"due": "",
"topic": "Optimizing RA",
"materials": {
}
},
{
"date": "Mar 5",
"type": "Lecture",
"due": "",
"topic": "Database Statistics 2/2",
"materials": {
}
},
{
"date": "Mar 7",
"type": "Lecture",
"due": "",
"topic": "Buffer Day",
"materials": {
}
},
{
"date": "Mar 9",
"type": "Practicum",
"due": "",
"topic": "Midterm Review",
"materials": {
}
},
{
"date": "Mar 12",
"type": "Lecture",
"due": "",
"topic": "<b>Midterm</b>",
"materials": {
}
},
{
"date": "Mar 14",
"type": "Lecture",
"due": "",
"topic": "Data Modeling and Constraints",
"materials": {
}
},
{
"date": "Mar 16",
"type": "Practicum",
"due": "Checkpoint 2",
"topic": "Project 3 and Optimization Review",
"materials": {
}
},
{
"date": "Mar 19",
"type": "Break",
"due": "",
"topic": "<b>Spring Break</b>",
"materials": {
}
},
{
"date": "Mar 21",
"type": "Break",
"due": "",
"topic": "<b>Spring Break</b>",
"materials": {
}
},
{
"date": "Mar 23",
"type": "Break",
"due": "",
"topic": "<b>Spring Break</b>",
"materials": {
}
},
{
"date": "Mar 26",
"type": "Lecture",
"due": "",
"topic": "Incremental View Maintenance",
"materials": {
}
},
{
"date": "Mar 28",
"type": "Lecture",
"due": "",
"topic": "Buffer Management",
"materials": {
}
},
{
"date": "Mar 30",
"type": "Practicum",
"due": "",
"topic": "Algorithms for Aggregation",
"materials": {
}
},
{
"date": "Apr 2",
"type": "Lecture",
"due": "",
"topic": "Logging",
"materials": {
}
},
{
"date": "Apr 4",
"type": "Lecture",
"due": "",
"topic": "ARIES Recovery",
"materials": {
}
},
{
"date": "Apr 6",
"type": "Practicum",
"due": "",
"topic": "Open Help Session",
"materials": {
}
},
{
"date": "Apr 9",
"type": "Lecture",
"due": "",
"topic": "Theory of Transactions",
"materials": {
}
},
{
"date": "Apr 11",
"type": "Lecture",
"due": "",
"topic": "Pessimistic Transaction Control",
"materials": {
}
},
{
"date": "Apr 13",
"type": "Practicum",
"due": "Checkpoint 3",
"topic": "Project 4 and Memory-Aware Algorithms Review",
"materials": {
}
},
{
"date": "Apr 16",
"type": "Lecture",
"due": "",
"topic": "Deadlock Avoidance",
"materials": {
}
},
{
"date": "Apr 18",
"type": "Lecture",
"due": "",
"topic": "Optimistic Transaction Control",
"materials": {
}
},
{
"date": "Apr 20",
"type": "Practicum",
"due": "",
"topic": "In-Memory Indexes",
"materials": {
}
},
{
"date": "Apr 23",
"type": "Lecture",
"due": "",
"topic": "Parallel Query Evaluation",
"materials": {
}
},
{
"date": "Apr 25",
"type": "Lecture",
"due": "",
"topic": "Parallel Updates and Consistency",
"materials": {
}
},
{
"date": "Apr 27",
"type": "Practicum",
"due": "",
"topic": "Precomputation",
"materials": {
}
},
{
"date": "Apr 30",
"type": "Lecture",
"due": "",
"topic": "Probabilistic Databases 1",
"materials": {
}
},
{
"date": "May 2",
"type": "Lecture",
"due": "",
"topic": "Probabilistic Databases 2",
"materials": {
}
},
{
"date": "May 4",
"type": "Practicum",
"due": "",
"topic": "Open Help Session",
"materials": {
}
},
{
"date": "May 7",
"type": "Lecture",
"due": "",
"topic": "Buffer Day",
"materials": {
}
},
{
"date": "May 9",
"type": "Lecture",
"due": "",
"topic": "Final Exam Review 1",
"materials": {
}
},
{
"date": "May 11",
"type": "Practicum",
"due": "Checkpoint 4",
"topic": "Final Exam Review 2",
"materials": {
}
}
]

View file

@ -0,0 +1,75 @@
---
title: CSE-4/562 Database Systems (Spring 2018)
---
<h1 style="text-align: center;"><%= title %></h1>
<p style="text-align: justify;">Data Management Systems (including Relational Databases, Non-Relational Databases, and NoSQL storage systems) form the basis of the Big Data Economy we now live in.  A data management system is responsible for storing data, enabling efficient access to that data, as well as mediating concurrent modifications.  This class approaches the challenges of designing a data management system from a standpoint that is both principled and practical.  The course revolves around a term-long programming assignment, in which you will build a system that answers SQL queries efficiently.  Course lectures will focus on the conceptual basis for this system, and will discuss how the techniques you learn generalize (e.g., to the use of NoSQL systems)</p>
In this course, you will learn...
<ul>
<li>... how to efficiently store and retrieve data programatically.</li>
<li>... how to optimize big-data computations.</li>
<li>... how to use index structures to accelerate computations.</li>
<li>... how to safely and efficiently manipulate data concurrently.</li>
<li>... how to recover state after software and hardware failures.</li>
<li>... how to query and update distributed data consistently.</li>
</ul>
<h2>Course Details</h2>
<ul>
<li><strong>Class</strong>: <!--T/R, 12:30-2:00 PM in <a href="http://www.buffalo.edu/buildings/building?id=alumni">ALUMNI 97</a></li>-->
<li><strong>Instructor</strong>: <a href="https://odin.cse.buffalo.edu/people/oliver_kennedy.html">Oliver Kennedy</a> (Ketter 133A; Office Hour TBD)</li>
<li><strong>TAs: </strong><ul>
<li>TBD</li>
</ul></li>
<li><strong>Course Discussions: </strong> TBD</li>
<li><strong>Textbook</strong>: <ul>
<li>"Database Systems: The Complete Book" 2e. by Garcia-Molina, Ullman, and Widom</li>
</ul></li>
<li><strong>Optional References</strong>: <ul>
<li>"<a href="https://smile.amazon.com/Patterns-Data-Management-Flipped-Textbook/dp/1523853964/ref=sr_1_1?ie=UTF8&qid=1483409680&sr=8-1&keywords=patterns+in+data+management">Patterns in Data Management</a>" by Jens Dittrich</li>
<li>"SAMS Teach Yourself SQL in 10 Minutes" 4e. by Ben Forta</li>
<li>"<a href="http://www.redbook.io/">The Red Book: Readings in Databases</a>" ed. Bailis, Hellerstein, and Stonebraker</li>
</ul></li>
<li><strong>Software</strong>: <ul>
<li>JSQLParser-UB (<a href="http://maven.mimirdb.info/info/mimirdb/jsqlparser/1.0.0/jsqlparser-1.0.0.jar">Jar</a> | <a href="http://doc.odin.cse.buffalo.edu/jsqlparser/">JavaDoc</a> | <a href="https://github.com/UBOdin/jsqlparser">Source</a>)</li>
<li>EvalLib (<a href="http://maven.mimirdb.info/info/mimirdb/evallib/1.0/evallib-1.0.jar">Jar</a> | <a href="https://github.com/UBOdin/evallib">Source</a>)</li>
<li>Apache Commons CSV (<a href="http://commons.apache.org/proper/commons-csv/download_csv.cgi">Jar</a> | <a href="https://commons.apache.org/proper/commons-csv/archives/1.4/apidocs/index.html">JavaDoc</a>)</li>
</ul></li>
<li><strong>Project Submission</strong>: TBD</li>
<li><strong>Project Groups</strong>: 1-3 people</li>
<li><strong>Grading</strong>:
<ul>
<li>50% exams<ul>
<li>25% Midterm on Mar.12 (in class)</li>
<li>25% Comprehensive Final on TBD</li>
</ul>
</li>
<li>50% projects</li>
<ul>
<li>5% <a title="Checkpoint 0" href="#">Checkpoint 0</a> due on Feb. 8.</li>
<li>10% <a title="Checkpoint 1" href="#">Checkpoint 1</a> due on Feb. 22</li>
<li>10% <a title="Checkpoint 2" href="#">Checkpoint 2</a> due on Mar. 15</li>
<li>15% <a title="Checkpoint 3" href="#">Checkpoint 3</a> due on Apr. 12</li>
<li>10% <a title="Checkpoint 4" href="#">Checkpoint 4</a> due on May 11</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2>Lecture Schedule</h2>
<ul>
<% $db["teaching/cse4_562/2018sp/schedule"].each do |data| %>
<li><i><%=data["date"]%></i>:&nbsp;&nbsp;&nbsp;<% if data["type"] == "Practicum" %>Practicum <% end %> <%=data["topic"]%>
<%unless data.fetch("materials", {}).empty? %> ( <%= data["materials"].map { |r,url| "<a href=\"#{url}\">#{r}</a>" }.join(" | ") %> )<% end %></li>
<% end %>
</ul>
<h2>Academic Integrity</h2>
<p style="text-align: justify;">Students may discuss and advise one another on their lab projects, but groups are expected to turn in their own work.  Discussing concepts is permitted.  Referencing another group's code is not.  Cheating on any course deliverable will result in an automatic grade of F in the course. It is the CSE department's policy not to provide financial support to any student disciplined for plagarism. The University's policy on academic integrity can be reviewed at:</p>
<p style="text-align: center;"><a href="http://grad.buffalo.edu/Academics/Policies-Procedures/Academic-Integrity.html">The Graduate School Academic Integrity Policy</a></p>
<h2>Medical Emergencies</h2>
<p style="text-align: justify;">Accommodations for medical emergencies will be made on a case-by-case basis.  Requests for extensions based on medical emergencies must be accompanied by documentation of the emergency from student health services:</p>
<p style="text-align: center;"><a href="http://www.student-affairs.buffalo.edu/shs/student-health/">Student Health Services</a></p>
<h2>Accessibility Resources</h2>
<p style="text-align: justify;">If you have a diagnosed disability (physical, learning, or psychological) that will make it difficult for you to carry out the course work as outlined, or that requires accommodations such as recruiting note-takers, readers, or extended time on exams or assignments, please advise the instructor during the first two weeks of the course so that we may review possible arrangements for reasonable accommodations. In addition, if you have not yet done so, contact:</p>
<p style="text-align: center;"><a href="http://www.student-affairs.buffalo.edu/ods/">The Office of Accessibility Resources</a>.</p>