The SIGCSE mailing list recently had a long discussion about plagiarism in the context of philosophy of teaching statements being submitted with applications for professorial jobs. While the discussion on plagiarism was interesting what got me thinking was my the idea of a statement of teaching philosophy. Specifically what was mine?
When I think back on the best teachers I ever had, ever worked with, and what I saw as what I copied about them several things came to mind.
- Enthusiastic (about the subject and about sharing what they knew)
I think that the best teachers are knowledgeable in their subject. That seems obvious of course but I've seen too many teachers who were forced by circumstances to teach outside their area of expertise. In my own case I once taught a course using Java when I wasn't that comfortable yet with Java. I had the concepts down but I think there were times when we got bogged down because my knowledge of Java was lacking. On the other hand when a instructor knows a lot more than what is required for a course everyone can move faster and learn so much more.
Enthusiasm is one of those things that is contagious. When students see that an instructor really gets into what they are doing - into the subject and into sharing what they know - they tend to come along better. Oh sure there are those who say "what a nut job. How can anyone enjoy this stuff?" but by and large human nature is to wonder what is it about this subject that has this person so excited. On the other hand if the teacher is bored with the subject how can anyone ask the students to get excited about it?
In some ways fun follows naturally from enthusiasm. After all something you love doing and learning about is almost by definition fun. But somehow we have a lot of people in education who think that learning it just too serious to have fun with. It is almost as if they think that if the medicine doesn't taste bad it can't work is translated into learning.
I've had teachers complain to me that students using Visual Studio for Visual Basic or C# get caught up in the fun of creating GUIs. I have seen students get too wrapped un in creating the user interface of a program to the extent that they lose focus on the main part of the project myself. But honestly I have seen that with console applications as well as GUI ones. I came to see that as a teacher issue, in fact as a "teachable moment" that I could turn to advantage, more than as a tool issue. When a student finds some fun in a project the challenge for the teacher is not to discourage the fun but to channel the fun into areas the student needs to learn more about and to grow the student beyond the narrow vision they are caught up in.
I was thinking today that I could easily write a textbook to appeal to teachers who want to put "education" above fun. The book would be nothing but console projects that involve strictly mathematical or practical business or scientific applications. Games would be banned from the book. The book would avoid sports related projects - no calculating baseball averages/statistics for example. Perhaps we could calculate lift v. drag for airfoils? Hmm, might not work as I found that calculation utterly fascinating when I studied it. But I'm geekier than most so maybe it would work. Hard to say. OK just nothing I would enjoy in the book for starters. If anyone reports enjoying anything we'll pull it from the second edition.
The book would explain each concept one and only one way. We'd stay as old school as possible and draw students through the same concepts in the same order as those of us with 30 years of experience learned them. No short cuts. If it was painful and slow for us to learn it should be painful and slow for today's students to learn it. When we're done we'd have students just as far along as we are - though of course no further. No sense in pushing them ahead and getting them all excited about future possibilities.
On second thought maybe I couldn't write that book easily. It would be no fun and getting the enthusiasm to work on it each day would be difficult. I guess I'll have to stick with fun stuff and let the teachers who want to suck the joy out of software write their own books.
I love software. Writing code is fun for me. Discovering new ways to do things, new features in a language or a code library is a fascinating process for me. Being able to use Intellisence to find new things is, to me, a wonderful advantage of something like Visual Studio. Does it reduce the need to memorize things? Perhaps. Is that a bad thing? Perhaps not. Real life is an open book test. And honestly I really want students to learn and remember what is possible more than I want them to learn the specific spelling of a specific method. Another language or platform may use different terms but as long as they have an idea of the possible they will find out how to do it. Concepts over specifics is my motto.
Not all teachers feel the same way and they are entitled to their opinion. But for me, I want some fun and enthusiasm in my classes. In the long run those things lead to more knowledge and that to me is the goal of the classroom.
BTW if you are looking for fun stuff I highly recommend:
- Coding 4 Fun - A Microsoft site for software hobbyists
- Beginning Developer Learning Center - educational resources for learners of all ages with, sorry about this, a lot of fun learning resources.
- Faculty Connection - One for higher education and one for pre-collegiate educators. Communities of learners and teachers. Honestly besides fun resources there are some resources you could make boring as well. But don't tell anyone I said that ok?
- Popfly - a web based mashup tool that is a lot of fun but some educators I know are using to teach concepts - shssshh!
- Rob Miles XNA/C# based textbook. Learn how to program in the context of game development. Keep this link away from boring teachers. Rob is into bad puns big time. You might not want students laughing (or groaning) in class.