Every lab report was the same. We started off by copying down the hypothesis written in the text book or lab assignment, listed the equipment used, wrote out the steps, and then summarized the results. A conclusion confirming the hypothesis ended the report.
Why oh why did we write a hypothesis when we already knew that what we were writing was the correct answer? I never really understood this throughout high school, and as a result, I didn't know what true scientific experimentation was really like until I did my science electives in university (and perhaps even that's arguable). We should have been asked to partially construct the question ourselves, and then figure out how to get an answer. There should have been some actual discovery in the process.
I was reminded of these high school experiences while reading James Paul Gee's book What Video Games Have to Teach Us About Learning and Literacy. I wrote about this book (specifically how identity relates to learning) before. The chapter that most recently caught my attention discussed the difference between overtly giving information to a student and letting her discover information completely on her own. Neither approach on its own is good; instead, a mixture of the two is needed. Unfortunately, my science experiences (and perhaps even most of my primary and secondary education) were pretty much all the first kind.
I'm trying to decide if computer science in university mixed the two concepts well enough. Lectures certainly almost always overtly gave information out of situated context. It's hard to understand programming from reading a book or hearing a lecture where we are given a bunch of technical information that we have to somehow remember when it comes time to do our assignments.
It would be a lot more effective to be given only the bare necessities needed to get us started (perhaps how to enter code into an editor, and how to compile and run it), and then letting us try it on our own. We'd muddle through it as best we could, and the professor would give us the key information we needed as we needed it. After all, that's how video games work, and we seem to be able to learn them smashingly well despite their complexity.
Sometime after I was done first year, our school introduced tutorials where students would do "labs" to practice what was taught in lectures. From what little I've seen from the outside looking in, typical tutorials are pretty step-by-step, just like my high school science labs. I'm not sure they had enough discovery amongst the overt information-telling.
A new stream for our degree is starting this year. It focuses on mobile and social computing. The first course will be offered in the fall and is going to have a very different setup than previous courses. There will be some minimal instruction at the beginning - just the bare bones. Then students will work on problems right there in the classroom on their own computers, figuring out how to do things mostly on their own, but with the professor's help as they need it.
This is exactly what we need in computer science. Let's hope the professor designing the course can pull it off and it can become a model of melding overt telling and discovery.