So, we're into the second year of my Software Development class. It's a little different since last time, I taught many of the kids in AP. This time, they're mostly new to me.
In AP, everything is low level. The students build linked lists, binary search trees, heaps, hash tables, graphs and the like. It's all about building the data structure. The Node, if you would.
We're about to start talking about databases. We'll probably spend a couple of days on relational databases and SQL and then some time with MongoDB.
There can be a big gap between a single lower level data structure and something as complex as a database.
I wanted to learn more about the kids and also see how they would go from last years material to solving a larger problem.
So today we talked about designing a database. Actually, we haven't even gotten there yet. We actually talked about what data we'd want to store if we were building a database for a school. Sounds like a typical class assignment.
Turns out, there's lots of data:
- Personal info like name, id number, address
- Transcript based data including:
- class code
- class section
- time stamp
- Teacher information
- Attendance Information
The kids were then broken into groups.
Assume you're working in Java. You can use all the tools covered last years. Both built in like HashMaps and TreeMaps and those that you built like search trees or heaps.You can assume that whatever you design will automatically be stored in a file system without any changes. Design your student database.
It was great hearing the discussions. Some groups based things on Java Classes, some on hash tables, some trees. Some groups started with efficiency concerns and wondered what types of queries they would need. I was really pleased with the level of activity and the types of concerns the students had.
I'm really looking forward to tomorrow when we discuss the designs and move on from there.