diff --git a/db/teaching/cse4_562/2019sp/schedule.json b/db/teaching/cse4_562/2019sp/schedule.json new file mode 100644 index 00000000..abf30b03 --- /dev/null +++ b/db/teaching/cse4_562/2019sp/schedule.json @@ -0,0 +1,368 @@ +[ + { + "date": "Jan 28", + "type": "Lecture", + "due": "", + "topic": "Introduction", + "materials": { + } + }, + { + "date": "Jan 30", + "type": "Lecture", + "due": "", + "topic": "SQL Overview + Physical Data Organization", + "textbook" : "Ch. 2.3, 6.1-6.4, and 13.5-13.7", + "materials": { + } + }, + { + "date": "Feb 1", + "type": "Practicum", + "due": "", + "topic": "Checkpoint 0 + Java + GIT", + "materials": { + } + }, + { + "date": "Feb 4", + "type": "Lecture", + "due": "", + "topic": "Relational Algebra", + "textbook" : "Ch 2.4, 5.1", + "materials": { + } + }, + { + "date": "Feb 6", + "type": "Lecture", + "due": "Homework 1", + "topic": "Relational Algebra Equivalences", + "textbook" : "Ch 2.4, 5.1, 16.2", + "materials": { + } + }, + { + "date": "Feb 8", + "type": "Practicum", + "due": "Checkpoint 0", + "topic": "Checkpoint 1", + "materials": { + } + }, + { + "date": "Feb 11", + "type": "Lecture", + "due": "", + "topic": "Evaluating Relational Algebra", + "textbook" : "Ch 15.4-15.5", + "materials": { + } + }, + { + "date": "Feb 13", + "type": "Lecture", + "due": "Homework 2", + "topic": "Extended Relational Algebra", + "textbook" : "Ch 5.2, 13.1-13.3, 15.7-15.8", + "materials": { + } + }, + { + "date": "Feb 15", + "type": "Lecture", + "due": "", + "topic" : "Physical Data Layout", // Serialization, Paging, Columnar, Buffer Manager + "materials": { + } + }, + { + "date": "Feb 18", + "type": "Lecture", + "due": "", + "topic": "Indexing (Intro + Tree Indexes)", + "textbook" : "Ch. 8.3, 14.1-14.4", + "materials": { + } + }, + { + "date": "Feb 20", + "type": "Lecture", + "due": "Homework 3", + "topic": "Indexing (Hash Indexes + Modern Indexes)", // Learned indexes, LSM Trees + "textbook" : "Ch. 8.3, 14.1-14.4", + "materials": { + } + }, + { + "date": "Feb 22", + "type": "Lecture", + "due": "", + "topic" : "External (2-Pass) Algorithms", // Sort, Joins + "materials": { + } + }, + { + "date": "Feb 25", + "type": "Practicum", + "due": "Checkpoint 1", + "topic" : "Checkpoint 2", + "materials": { + } + }, + { + "date": "Feb 27", + "type": "Lecture", + "due": "Homework 4", + "topic": "Access Paths and Aggregation", + "materials": { + } + }, + { + "date": "Mar 1", + "type": "Lecture", + "due": "", + "topic": "Query Optimization", // Cost based and otherwise + "textbook" : "Ch 15.1-15.3, 16.1, 16.3", + "materials": { + } + }, + { + "date": "Mar 4", + "type": "Lecture", + "due": "", + "topic": "Database Statistics 1/2", + "materials": { + } + }, + { + "date": "Mar 6", + "type": "Lecture", + "due": "Homework 5", + "topic": "Database Statistics 2/2", + "materials": { + } + }, + { + "date": "Mar 8", + "type": "Lecture", + "topic" : "Buffer Day", + "materials": { + } + }, + { + "date": "Mar 11", + "type": "Review", + "due": "Checkpoint 2", + "topic": "Midterm Review", + "materials": { + } + }, + { + "date": "Mar 13", + "type": "Lecture", + "due": "", + "topic": "Midterm", + "materials": { + } + }, + { + "date": "Mar 15", + "type": "Practicum", + "due": "", + "topic": "Checkpoint 3", + "materials": { + } + }, + { + "date": "Mar 18", + "type": "Break", + "due": "", + "topic": "Spring Break", + "materials": { + } + }, + { + "date": "Mar 20", + "type": "Break", + "due": "", + "topic": "Spring Break", + "materials": { + } + }, + { + "date": "Mar 22", + "type": "Break", + "due": "", + "topic": "Spring Break", + "materials": { + } + }, + { + "date": "Mar 25", + "type": "Lecture", + "due": "", + "topic": "Views", + "materials": { + } + }, + { + "date": "Mar 27", + "type": "Lecture", + "due": "Homework 6", + "topic": "SQL DDL and Constraints", + "materials": { + } + }, + { + "date": "Mar 29", + "type": "Lecture", + "due": "", + "topic": "Materialized Views", + "materials": { + } + }, + { + "date": "Apr 1", + "type": "Lecture", + "due": "", + "topic": "Managing Updates", // Overview of challenges associated with updates + "materials": { + } + }, + { + "date": "Apr 3", + "type": "Lecture", + "due": "Homework 7", + "topic": "Theory of Transactions", + "materials": { + } + }, + { + "date": "Apr 5", + "type": "Lecture", + "due": "", + "topic": "Theory of Transactions (contd.)", + "materials": { + } + }, + { + "date": "Apr 8", + "type": "Lecture", + "due": "Checkpoint 3", + "topic": "Pessimistic Transaction Control", + "materials": { + } + }, + { + "date": "Apr 10", + "type": "Practicum", + "due": "Homework 8", + "topic": "Checkpoint 4", + "materials": { + } + }, + { + "date": "Apr 12", + "type": "Lecture", + "due": "", + "topic": "Optimistic Transaction Control", + "materials": { + } + }, + { + "date": "Apr 15", + "type": "Lecture", + "due": "", + "topic": "Logging + ARIES Recovery", + "materials": { + } + }, + { + "date": "Apr 17", + "type": "Lecture", + "due": "Homework 9", + "topic": "Distributed Algorithms", + "materials": { + } + }, + { + "date": "Apr 19", + "type": "Lecture", + "due": "", + "topic": "Distributed Algorithms (contd.)", + "materials": { + } + }, + { + "date": "Apr 22", + "type": "Lecture", + "due": "", + "topic": "Distributed Updates", + "materials": { + } + }, + { + "date": "Apr 24", + "type": "Lecture", + "due": "Homework 10", + "topic": "Distributed Updates (contd.)", + "materials": { + } + }, + { + "date": "Apr 26", + "type": "Lecture", + "due": "", + "topic": "Stream Queries", + "materials": { + } + }, + { + "date": "Apr 29", + "type": "Lecture", + "due": "", + "topic": "Provenance Queries", + "materials": { + } + }, + { + "date": "May 1", + "type": "Lecture", + "due": "Homework 11", + "topic": "Provenance Queries (contd.)", + "materials": { + } + }, + { + "date": "May 3", + "type": "Lecture", + "due": "", + "topic": "Provenance for Uncertainty", + "materials": { + } + }, + { + "date": "May 6", + "type": "Lecture", + "due": "Homework 12", + "topic": "Buffer Day", + "materials": { + } + }, + { + "date": "May 8", + "type": "Review", + "due": "", + "topic": "Final Exam Review 1", + "materials": { + } + }, + { + "date": "May 10", + "type": "Review", + "topic": "Final Exam Review 2", + "materials": { + } + } +] diff --git a/slides/cse4562sp2019/template.html b/slides/cse4562sp2019/template.html new file mode 100644 index 00000000..522d2974 --- /dev/null +++ b/slides/cse4562sp2019/template.html @@ -0,0 +1,131 @@ + + + + + + + Embracing Uncertainty + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ + CSE 4/562 - Database Systems +
+ + +
+ +
+

Intro

+

CSE 4/562 – Database Systems

+
January 29, 2018
+
+ +
+ + + + + + + + diff --git a/slides/cse4562sp2019/ubodin.css b/slides/cse4562sp2019/ubodin.css new file mode 100644 index 00000000..f55c65ba --- /dev/null +++ b/slides/cse4562sp2019/ubodin.css @@ -0,0 +1,403 @@ +@font-face { + font-family: 'News Cycle'; + font-style: normal; + font-weight: 400; + src: local('News Cycle'), local('NewsCycle'), url(../reveal.js-3.1.0/fonts/9Xe8dq6pQDsPyVH2D3tMQsDdSZkkecOE1hvV7ZHvhyU.ttf) format('truetype'); +} +@font-face { + font-family: 'News Cycle'; + font-style: normal; + font-weight: 700; + src: local('News Cycle Bold'), local('NewsCycle-Bold'), url(../reveal.js-3.1.0/fonts/G28Ny31cr5orMqEQy6ljt8BaWKZ57bY3RXgXH6dOjZ0.ttf) format('truetype'); +} +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 400; + src: local('Lato Regular'), local('Lato-Regular'), url(../reveal.js-3.1.0/fonts/1EqTbJWOZQBfhZ0e3RL9uvesZW2xOQ-xsNqO47m55DA.ttf) format('truetype'); +} +@font-face { + font-family: 'Lato'; + font-style: normal; + font-weight: 700; + src: local('Lato Bold'), local('Lato-Bold'), url(../reveal.js-3.1.0/fonts/MZ1aViPqjfvZwVD_tzjjkwLUuEpTyoUstqEm5AMlJo4.ttf) format('truetype'); +} +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 400; + src: local('Lato Italic'), local('Lato-Italic'), url(../reveal.js-3.1.0/fonts/61V2bQZoWB5DkWAUJStypevvDin1pK8aKteLpeZ5c0A.ttf) format('truetype'); +} +@font-face { + font-family: 'Lato'; + font-style: italic; + font-weight: 700; + src: local('Lato Bold Italic'), local('Lato-BoldItalic'), url(../reveal.js-3.1.0/fonts/HkF_qI1x_noxlxhrhMQYECZ2oysoEQEeKwjgmXLRnTc.ttf) format('truetype'); +} + + + +/**@import url(https://fonts.googleapis.com/css?family=News+Cycle:400,700); +@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic); +**/ +/** + * A simple theme for reveal.js presentations, similar + * to the default theme. The accent color is darkblue. + * + * This theme is Copyright (C) 2012 Owen Versteeg, https://github.com/StereotypicalApps. It is MIT licensed. + * reveal.js is Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se + */ +/********************************************* + * GLOBAL STYLES + *********************************************/ +body { + background: #fff; + background-color: #fff; } + +.reveal { + font-family: 'Lato', sans-serif; + font-size: 36px; + font-weight: normal; + color: #000; } + +::selection { + color: #fff; + background: rgba(0, 0, 0, 0.99); + text-shadow: none; } + +.reveal .slides > section, .reveal .slides > section > section { + line-height: 1.3; + font-weight: inherit; } + +/********************************************* + * STATIC HEADER/FOOTER + *********************************************/ + +.reveal .header { + position: absolute; + top: 0px; + left: 0px; + right: 0px; + height: 25px; + text-align: center; + padding-left: 15px; + padding-right: 15px; + padding-bottom: 10px; + padding-top: 15px; + background-color: #041a9b; + color: white; + font-size: 0.5em; + z-index: 100; +} +.reveal .footer { + position: absolute; + bottom: 0px; + left: 0px; + right: 0px; + height: 40px; + text-align: center; + padding-left: 15px; + padding-right: 15px; + padding-bottom: 10px; + padding-top: 20px; + background-color: #041a9b; + color: white; + font-size: 0.5em; + z-index: 100; +} + + +/********************************************* + * HEADERS + *********************************************/ +.reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6 { + margin: 0 0 20px 0; + color: #000; + font-family: 'News Cycle', Impact, sans-serif; + font-weight: normal; + line-height: 1.2; + letter-spacing: normal; + text-transform: none; + text-shadow: none; + word-wrap: break-word; } + +.reveal h1 { + font-size: 3.77em; } + +.reveal h2 { + font-size: 2.11em; } + +.reveal h3 { + font-size: 1.55em; } + +.reveal h4 { + font-size: 1em; } + +.reveal h1 { + text-shadow: none; } + +/********************************************* + * OTHER + *********************************************/ +.reveal p { + margin: 20px 0; + line-height: 1.3; } + +.reveal imagecredits { + font-size: 12pt; + position: absolute; + right: -10px; + bottom: -10px; + text-align: right; +} +.reveal citation { + font-size: 12pt; + position: absolute; + right: -10px; + bottom: -10px; + text-align: right; +} + +/* Ensure certain elements are never larger than the slide itself */ +.reveal img, .reveal video, .reveal iframe { + max-width: 95%; + max-height: 95%; } + +.reveal strong, .reveal b { + font-weight: bold; } + +.reveal em { + font-style: italic; } + +.reveal ol, .reveal dl, .reveal ul { + display: inline-block; + text-align: left; + margin: 0 0 0 1em; } + +.reveal ol { + list-style-type: decimal; } + +.reveal ul { + list-style-type: disc; } + +.reveal ul > li { + margin-top: 20px; } + +.reveal ul.tight > li { + margin-top: 10px; } + +.reveal ol > li { + margin-top: 20px; } + +.reveal ol.tight > li { + margin-top: 0px; } + +.reveal ul ul { + list-style-type: square; } + +.reveal ul ul ul { + list-style-type: circle; } + +.reveal ul ul, .reveal ul ol, .reveal ol ol, .reveal ol ul { + display: block; + margin-left: 40px; } + +.reveal dt { + margin-top: 20px; + margin-bottom: 0px; + font-weight: bold; } + +.reveal dd { + margin-top: 0px; + margin-left: 40px; } + +.reveal q, .reveal blockquote { + quotes: none; } + +.reveal blockquote { + display: block; + position: relative; + width: 70%; + margin: 20px auto; + padding: 5px; + font-style: italic; + background: rgba(255, 255, 255, 0.05); + box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); } + +.reveal blockquote p:first-child, .reveal blockquote p:last-child { + display: inline-block; } + +.reveal q { + font-style: italic; } + +.reveal pre { + display: block; + position: relative; + width: 90%; + margin: 20px auto; + text-align: left; + font-size: 0.55em; + font-family: monospace; + line-height: 1.2em; + word-wrap: break-word; + box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.3); } + +.reveal code { + font-family: monospace; +} + +.reveal pre code { + display: block; + padding: 5px; + overflow: auto; + max-height: 400px; + word-wrap: normal; + background: #3F3F3F; + color: #DCDCDC; } + +.reveal table { + margin: auto; + border-collapse: collapse; + border-spacing: 0; } + +.reveal table th { + font-weight: bold; + border-bottom: 1px solid; } + +.reveal table th, .reveal table td { + text-align: center; + padding: 0.2em 0.5em 0.2em 0.5em;} + +.reveal table th[align="left"], .reveal table td[align="left"] { + text-align: left; } + +.reveal table th[align="right"], .reveal table td[align="right"] { + text-align: right; } + +.reveal table tr:last-child td { + border-bottom: none; } + +.reveal sup { + vertical-align: super; } + +.reveal sub { + vertical-align: sub; } + +.reveal small { + display: inline-block; + font-size: 0.6em; + line-height: 1.2em; + vertical-align: top; } + +.reveal small * { + vertical-align: top; } + +/********************************************* + * LINKS + *********************************************/ +.reveal a { + color: #00008B; + text-decoration: none; + -webkit-transition: color 0.15s ease; + -moz-transition: color 0.15s ease; + transition: color 0.15s ease; } + +.reveal a:hover { + color: #0000f1; + text-shadow: none; + border: none; } + +.reveal .roll span:after { + color: #fff; + background: #00003f; } + +/********************************************* + * IMAGES + *********************************************/ +.reveal section img { + margin: 15px 0px; + background: rgba(255, 255, 255, 0.12); +} + +.reveal section img.bordered +{ + border: 4px solid #000; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.15); +} + +.reveal a img { + -webkit-transition: all 0.15s linear; + -moz-transition: all 0.15s linear; + transition: all 0.15s linear; } + +.reveal a:hover img { + background: rgba(255, 255, 255, 0.2); + border-color: #00008B; + box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); } + +/********************************************* + * NAVIGATION CONTROLS + *********************************************/ +.reveal .controls div.navigate-left, .reveal .controls div.navigate-left.enabled { + border-right-color: #00008B; } + +.reveal .controls div.navigate-right, .reveal .controls div.navigate-right.enabled { + border-left-color: #00008B; } + +.reveal .controls div.navigate-up, .reveal .controls div.navigate-up.enabled { + border-bottom-color: #00008B; } + +.reveal .controls div.navigate-down, .reveal .controls div.navigate-down.enabled { + border-top-color: #00008B; } + +.reveal .controls div.navigate-left.enabled:hover { + border-right-color: #0000f1; } + +.reveal .controls div.navigate-right.enabled:hover { + border-left-color: #0000f1; } + +.reveal .controls div.navigate-up.enabled:hover { + border-bottom-color: #0000f1; } + +.reveal .controls div.navigate-down.enabled:hover { + border-top-color: #0000f1; } + +/********************************************* + * PROGRESS BAR + *********************************************/ +.reveal .progress { + background: rgba(0, 0, 0, 0.2); } + +.reveal .progress span { + background: #00008B; + -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); + -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); + transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); } + +/********************************************* + * SLIDE NUMBER + *********************************************/ +.reveal .slide-number { + color: #00008B; } + +/********************************************* + * CUSTOM HIGHLIGHTS + *********************************************/ +.reveal .slides section .fragment.highlight-grey, +.reveal .slides section .fragment.highlight-current-grey { + opacity: 1; + visibility: inherit; } +.reveal .slides section .fragment.highlight-grey.visible { + color: lightgrey; } +.reveal .slides section .fragment.highlight-current-grey.current-fragment { + color: lightgrey; } + +/********************************************* + * CUSTOM TAGS + *********************************************/ +attribution { + width: 100%; + text-align: right; + font-size: 40%; + display: block; +} \ No newline at end of file diff --git a/slides/talks/.~lock.2018-7-Lightning.odp# b/slides/talks/.~lock.2018-7-Lightning.odp# new file mode 100644 index 00000000..5fb600aa --- /dev/null +++ b/slides/talks/.~lock.2018-7-Lightning.odp# @@ -0,0 +1 @@ +Oliver Kennedy,okennedy,Loki,12.12.2018 18:41,file:///home/okennedy/.config/libreoffice/4; \ No newline at end of file diff --git a/src/teaching/cse-462/index.html b/src/teaching/cse-462/index.html index 682b10f1..f631f0d2 100644 --- a/src/teaching/cse-462/index.html +++ b/src/teaching/cse-462/index.html @@ -1,5 +1,5 @@ --- -redirect: ../cse-562/2018sp/index.html +redirect: ../cse-562/2019sp/index.html title: CSE 462 - Database Systems --- diff --git a/src/teaching/cse-562/2019sp/index.erb b/src/teaching/cse-562/2019sp/index.erb new file mode 100644 index 00000000..4736a015 --- /dev/null +++ b/src/teaching/cse-562/2019sp/index.erb @@ -0,0 +1,96 @@ +--- +title: CSE-4/562 Database Systems (Spring 2019) +--- +

<%= title %>

+

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)

+In this course, you will learn... + +

Course Details

+ +

Lecture Schedule

+ + +

Academic Integrity

+

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 grade of F in the course. It is the CSE department's policy not to provide financial support to any student disciplined for plagarism. University policies on academic integrity can be reviewed at:

+

CSE Departmental Policy on Academic Integrity

+

UB's University-Wide Undergraduate Academic Integrity Policy

+

The Graduate School Policy Library

+ +

Medical Emergencies

+

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:

+

Student Health Services

+ +

Accessibility Resources

+

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:

+

The Office of Accessibility Resources.

diff --git a/src/teaching/cse-562/index.html b/src/teaching/cse-562/index.html index 3539878b..a4d434cf 100644 --- a/src/teaching/cse-562/index.html +++ b/src/teaching/cse-562/index.html @@ -1,5 +1,5 @@ --- -redirect: 2018sp/index.html +redirect: 2019sp/index.html title: CSE 562 - Database Systems --- diff --git a/src/teaching/index.erb b/src/teaching/index.erb index 19069405..82bb8b71 100644 --- a/src/teaching/index.erb +++ b/src/teaching/index.erb @@ -9,9 +9,10 @@ title: Courses