Week 1 of emergency-online-teaching DB systems

Week 1 Lessons covered: Hashing (Cuckoo, Extendible, Linear) and Buffer Pool Management.

Lessons learned from Assessments

The weekly assessments are a mix of auto-graded (e.g. what value causes an infinite loop in a given cuckoo hashing structure) and open-ended questions (e.g. given the pin-counter, can you do away with the dirty bit?). I used Gradescope’s online assignment feature and it worked wellI highly recommend it. With 25 students, I could still read through and grade open-ended questions — it did take most of my Sunday morning!

I found that students came to Zoom’s office hours to validate their understanding of how certain algorithms worked. So the auto-graded aspects did ensure that students worked through these algorithms individually.

The open-ended questions showed me gaps that need to be addressed. Usually, these questions explored different design tradeoffs (e.g. students often drew an analogy between a B+ tree’s fill factor and a hashing table’s utilization factor and split on a rather low utilization threshold of 2/3.) It is spring break this week but next week my in-class Zoom session will target these specific areas such as why would a DBMS rely on an OS file cache and what are some side-effects/problems that could occur?

Re: Academic Integrity: We discussed online academic integrity at length during our Zoom class and I had my students digitally pledge to maintain (using a piazza poll) online academic integrity. It is definitely worth while to do so. It may seem obvious but there are things that aren’t. For example, asking students not to record zoom sessions without explicit permission and consent from others especially if you have students that would not participate if they know they are being recorded, etc.

Lessons learned from office hours

I guess what would have helped most during office hours was to have back-up worked examples, especially if your weekly unit covers specific data-structures/algorithms, etc. I had a student ask about why do you need local-depth in extendible hashing. As I tried to explain that you need to know at local overflows if you need to double the slot directory or not and if local-depth < global-depth, you don’t need to, it became clear that it would have been much easier (less confusing) if I worked through some ready-made examples on the screen.

Lessons learned from the forum

Students do like to help each other. My students shared links to external materials that helped them understand something better than the videos, assigned reading materials or textbook. They also answered each other’s questions much faster (maybe even better) than I would have.

If you don’t have a class forum, start one!

General student feedback

Some students returned to their home countries to stay with family. Others got caught in between the global travel bans and are stuck (neither at home, nor in the UAE!) I received some extension requests but even those students worked through most of the material and online assessments. I think the students do appreciate/prefer the new format. Students sent “thank you” notes. This made me feel much better about the asynchronous approach at least for this week.

More weekly updates to come.