This post from Mark Guzdial is the last of three looking at a PhD thesis examining the influence of using computational/programming approaches to teaching physics. This post talks about the finding in the thesis that students attitudes towards computational modelling became more unfavourable after instruction.
That’s right, the course in computational modelling made the more negative about computational modelling. It turned them off and made them focus more on rote memorisation.
Is IPT doing the same?
My interest in this idea comes from recent observations at schools. This year I’m training to become a high school teacher in Information Technology and Mathematics. As part of this I’m spending time in schools doing some prac teaching and observing how IT is being taught. The main academic version of IT being taught in local schools is called Information Processing and Technology (IPT) (PDF syllabus link). As part of my prac teaching, I’ve been lucky enough to observe two experienced and knowledgable teachers teach classes in IPT. But, even with their experience and efforts, I’ve not formed a great opinion of IPT.
I’m currently wondering whether the content and pedagogy of IPT in high schools is turning people off?
My anecdotal observations seem to suggest yes.
The number of students doing IPT at the schools I’ve been on is shrinking. Though this reduction could also be contributed to by the observation that IPT requires students to think and do work. There’s a belief that many students don’t want to do this and thus avoid IPT.
There are almost certainly other factors at play as well.
Is anyone aware of research into this? Particularly research based within Queensland or Australia? Are the number of students enrolled in IPT type courses shrinking? What are the factors? Does the content play a part? What about the pedagogy?
Between prac teaching and university study, I don’t have the time to look further at the moment. Which is one of the reasons for this post and the hope that others may point me in the right direction.
Some of the problems
The following is my first attempt to listing what I see as some of the problems with IPT teaching. It needs more work, but you get the idea. I recognise that there are all sorts of limitations in schools that explain why some or all of the following limitations are there. Increasingly I am becoming unsure whether the grammar of school that currently exists would allow any sustainable and meaningful change.
- Continued reliance on Visual Basic and Access.
This seems to be the predominant development environment, and I can understand why. Relatively simple to produce something that works. Works on the computers most schools and students have. Is free to very cheap to provide to students and there is a body of textbooks written around the IPT syllabus using these tools.
But the major problem I see with these tools is that they aren’t networked. i.e. there’s no environment for students to contribute their code to so that others can see it. The types of applications that are produced aren’t something that the friends and parents of students are going to be able to use and get excited about. I need to develop this more.
- Unrealistic assignments.
How many video stores use an Access database to manage their DVD/video collect? Especially one that doesn’t support bar codes and cash registers. The staff teaching IPT try to make the projects authentic, but they just aren’t. The students can see that their programs would never be used in reality. Every time they make an unrealistic tradeoff/assumption in design, the authenticity of the assignment is further reduced.
- Too much emphasis on creation over enhancement.
All of the assignments I’ve seen so far – in class and online – assume that the students must start with a blank slate. i.e. they are creating the program/system from scratch. Sorry, but I don’t know of too many people these days who are starting systems from scratch. Most are modifying or adding plugins to existing systems. They are seeking to enhance existing systems.
Creating from scratch is hard. Especially when you are new to programming or relational databases. I think it can be easier (and more realistic) to be set the task of enhancing an existing system. Having to start understanding the system and how it works, seeing examples of code/system design before trying to create your own.
- Too much overhead.
These assignments also place an emphasis on the design and documentation of the systems, over the working code. I’ve heard talented teachers talk about the systems development as only contributing a small/minor part of the project and final marks. Sorry, but if there’s a fun part in systems development it is getting it to work. Not writing elementary sentences or documentation for a mickey mouse system no-one is ever going to use. Especially when the teacher is the only person ever likely to see the documentation.
This is not to reduce the importance of design and documentation in the production of systems. But when it comes to giving students a positive learning experience around systems development, the over emphasis on documentation etc is killing enjoyment.
Not to mention, that if you ascribe to agile methodologies, the amount of documentation often required of these assignments is just plain bad. Not to mention the absence of any notion of test-driven development and other factors…
- Too much solo work.
Pair programming? Nope that would be open questions of plagiarism? Too much of what I see in IPT classes is each of the students working alone and trying to stay motivated while completing elementary sentences, conceptual schema diagrams etc. Occasionally providing each other help, but not having the peer collaboration built in.
Then there’s the question of no-one else ever really seeing their work. Not to mention that the fact that some students would be hesitant to show off their IPT assignments because they are aware of the trade-offs
- Systems that are not used.
For me, the point of systems development is always to build systems that people use. If people aren’t going to use the systems/tools I build, why build them? Even if it’s a tool that I use, I don’t mind as long as it is useful for me.
More importantly, trainee IT professionals who don’t get experience of supporting users using their systems, aren’t getting the full picture. Seeing how people understand, react, and use your tools is a huge learning curve. It can be incredibly frustrating to see how people don’t get your wonderful design. But it can also be incredibly revealing and fantastic fun.
Last term I design a unit of work for the first 12 or so lessons of an IPT course that captured some ideas about an alternative. It will be a while before I can put that into action, and frankly I have my reservations about how practical many of those ideas are.
In the shorter-term, I have to develop 3/4 lessons around decision trees, decision matrices and expert systems for two IPT classes for next week (Wed-Thur). So I’m going to try and implement some of my alternatives in those. Will probably try and post the ideas.