Yesterday, I had my first class (times three sections) of the data structures course I’m teaching this semester at Fairfield. The class didn’t talk much about data structures, as it was mostly background and process related things. I like to spend some in-class time (“synchronous” time) going through part of the class syllabus, so that the students at least see it once.
I did want to have the first class do an in-class activity, so I decided to do two: an introduce yourself one and one related to data structures.
The Introduce yourself activity was to say your name, say your major and your minor (if any), and what your favorite ice-cream flavor is (or IEU* if you don’t like ice-cream).
I hadn’t thought of it before, but while we were doing it I noticed that this had the added benefit of hearing how the students pronounce their names.
A slight dis-benefit is a couple of students who don’t like ice-cream reminded me that sorbets are a thing: one of them said their favorite was mango sorbet, and now I want mango sorbet.
What is a data structure?
The in-class exercise related to the topic of data structures was the start of a curation exercise. The exercise is for everyone to define what a data structure is, with supporting links / content from the internet.
The prompt I used is below.
During class, I gave each of the three sections 3 minutes to add their own definitions or information. The aim is that they decide their own definition (potentially borrowing someone else’s) by the end of the week.
At the end of the three classes, 42 out of the 50 students had made an entry. I’ll remind them again during the Friday class, and the class will close at 11:59pm on Friday evening (Eastern Time).
# What next?
For the next class, I asked the students to review my post about moving from memory to an array and this Stack Overflow post about different types of memory. I also asked them to read the slides we have for arrays in Java and C++.
So I’m wondering what the next exercise should be?
This one should be a bit more extensive, because I want the students to build up a knowledge base in Quip (the collaboration tool I pictured above) for all the data structures we look at.
I’m thinking that the categories we should look at are:
- Definition : define what we mean by the data structure (array).
- Used for : what is the data structure used for?
- Operations : what operations does it support?
- Analysis : how quickly can it do the operations?
For arrays, we should be able to do the first three bullets, but the last one will need me to introduce big-O analysis or asymptotic notation.
So I guess that tells me what I’m doing in class next week!
* IEU = Ice-cream Equivalent Unit AKA dessert.