I read from Anu’s blog her description of a bad course and that got me thinking.. I have taken the Basics of Databases course that she refers to and I completely disagree with her. I know it is an intensive course that has a lot of content and can come as a bit of a surprise considering how easy most of the courses are in our department, but this doesn’t make it a bad course. On the contrary, it’s one of the best designed courses our department has to offer.
Good design
Learning to draw (E)ER-diagrams is not an easy task. The way entities and their relations need to be analyzed to create a meaningful database model is something that cannot be taught easily. Anyone can draw a simple diagram, but when complex relations have to be analyzed in order to understand what they actually would mean in a database.. well, that is hard.
The lecturer draws diagrams all the time, that’s true.. but he simultaneously actually explains what he is doing and poses questions to the students. There are numerous logical blunders that people can make when they do not know how they should analyze entities and their relations. The lecturer shows us the way we need to think when drawing these diagrams by challenging us to think about the diagrams he is drawing and by demonstrating what the relations actually mean when the a database is created by using that model. This is something one cannot learn from a book, it has to come from experience and that requires work. So the lecturer activates the audience by posing questions and then demonstrates what the consequences would be based on to their answers.
Then there are the labs. Paper labs, where students need to draw ER-diagrams beforehand and then these diagrams are analyzed to see what went wrong. And from time to time a student will ask a question that the lecturer has never thought of because of the complexity of this modeling method. There are SQL-queries on paper to databases and again we are demonstrated what the results would be. All these tasks that need to be solved before a lab and during the lab the mistakes students have made are explained to everybody. So we do not learn only from our own errors, but also from the errors others have made giving us multiple perspectives to a single problem.
During the computer labs on the other hand we are taught how to actually use the SQL in real-life. We need to activate the theory in order to understand how everything actually works.
The compulsory programming assignment on the other hand is a real-life problem that we need to solve. So we have to apply the information we have learned by integrating the theory to practice.
Bad design
Well, Mikko described the course already quite thoroughly. To recap it; 6 ETCS course, vital and compulsory for every student in our department, extremely complex subject. Design: read a few books, see you in exam, no feedback provided.