CSE 662 – Languages and Databases Class Overview Oliver Kennedy & Lukasz Ziarek
Piazza: piazza.com/buffalo/fall2015/cse662/home Piazza will be our course website All material will be posted to Piazza You can post anonymously to your classmates but I will always know who you are Class participation points will be given for Piazza usage Typically responses to assigned papers
Class Policies Always add [CSE662] to the title of emails, or post on Piazza This will ensure a faster reply as we will prioritize class related emails This tag is mandatory for assignments Emails should be sent to BOTH Oliver and Luke
Academic Integrity All homework must be done by yourself You may ask your classmates questions, but you must acknowledge who you talked to in your submissions Each group will have a separate project you are free to help each other out, but you must acknowledge who you talked to in your submission
Class Learning Objectives: Study advanced database and programming language concepts pertaining to future database systems To study adaptive data structures, compilers, and language runtime techniques for implementing efficient and safe database systems To implement an advanced feature in a modern language runtime system
Course Breakdown Intro, Background and Terminology Data-structures and Algorithms recap Adaptive Data-structures (e.g., Cracked Databases) Adaptive Data-structures (e.g., Adaptive Merge Trees) Adaptive Data-structures (e.g., JITDs) Spatial Indexing: R-Trees, etc... Compiler Toolkits (e.g., LLVM) Compiler Toolkits (e.g., Graal/Truffle)
Course Breakdown Transactions and Deferred Computation (week 1; DB Perspective: e.g., Consistency, Serializability, Out-of-order evaluation, Stickies) Transactions and Deferred Computation (week 2; PL Perspective: e.g., Locking, Transactional Memory, Promises & Futures) Logging, Persistence, and Recovery Algorithmic Optimization (e.g., Legorithmics) Self-adjusting computation (week 1; definition, compiler & runtime support) Self-adjusting computation (week 2; algorithms) Project Presentations
Office Hours MWF 12:00pm 1:00pm Other times by appointment One of us will be available and in many cases both of us
Class Structure Monday – Classic Lecture Background information / advanced concepts Wednesday / Friday – Group Presentations and Q&A
Group Presentations and Q&A Everyone should attend Present design choices, developed algorithms, background information, code, performance metrics and analysis Defend ideas and design choices in a public setting Discuss work in progress
Grade Break Down A: 93 - 100 A-: 90 - 92 B+: 87 - 89 B: 83 - 86 B-:80 - 82 C+: 77 -79 C: 73 – 76 C-: 70 -72 D: 60 – 69 F: 0 - 59
Grade Break Down Final Project 50% Class Participation and Homework 20% Project Checkpoint 1 15% Project checkpoint 2 15%
Homework Grading 3 point System 0 points – nothing turned in / poorly done assignment 2 points – correctly completed assignment 1 point – everything else
Homework Assignment 1 Reading and Response to “Database Cracking” Due 9/6/2015 at 11:59pm
Homework Assignment 2 Form a group of 4 as a project group for the duration of the semester Come up will a clever group name Challenge: form a group with people you do not know or do not know well Due date: 9/4/2015 at 11:59pm
Class Introductions What is your name? What did you do over the summer? Why did you pick this class? Star Wars, Star Trek, or neither? Maybe both?!