Is the teaching of IT/CS in high school turning people off?

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.

What’s next?

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.

6 thoughts on “Is the teaching of IT/CS in high school turning people off?

  1. David,

    While I generally agree with you sentiments about the high school syllabus, in particular the teaching of VB and Access, I have to slightly disagree with your comment about documentation.

    It is true that over-documenting a system is bad. It is also true that under documenting a system is just as bad.

    Yes it is good to get a system working but it is also important to do some design of what you select File | New Project… in your IDE.

    You may want to incorporate something like the Iconix Process (http://iconixprocess.com/) into your lesson plans. The Iconic Process focuses on the “right” level of documentation for a project rather that the extremes suggested by the Agile (i.e. virtually no documentation) method and the Waterfall method (i.e. way too much documentation).

    We teach our 2nd year under graduate IT students the Iconix Process at Monash University and they love it. The students also use it in their final year industrial experience projects.

    You may also want to take a look at the approach to software design taken by the book How to Design Programs (http://www.htdp.org/) and the first year, designed-for-non-IT-students programming course offered by Stanford University (http://see.stanford.edu/see/courseinfo.aspx?coll=824a47e1-135f-4508-a5aa-866adcae1111)

    1. Steve,

      I take your point about documentation. It is important.

      What I didn’t make clear in my post was that I was griping mostly about the type of documentation required in many high school assignments when considered in the light of the other problems (e.g. no-one ever uses the program, no-one ever sees the documentation but the teacher, etc) with the high school assignments. The combination, at least to me, is not great. And this makes the important task of helping students understand the importance of documentation that much more difficult.

      Thanks for the pointers to related resources. I haven’t followed up on these yet, so don’t know how they fit with the next questions.

      What is documentation? Is what is required of students in terms of documentation within high school IPT the same type of documentation that they are seeing with the systems they use? Does the nature of required documentation change in terms of the type of system and the type of development methodology used? Much of what I see in the IPT syllabus represents 1990s (if that) thinking. I’m wondering if 20 odd years later, the understanding of what documentation is and what is important for high school students to learn has changed?

      Then there’s a point I didn’t make in my original post. What should the purpose of IPT courses be these days? At the moment, it appears to be to give future IT professionals a taste of IT. The Guzdial post raises the question about what we should be teaching the future non-IT professional (much like the Standford course you point to). Should IPT be aimed at giving the broader student population a taste of being able to manipulate the digital world? A bit like Rushkoff’s program or be programmed movement.

      David.

      David.

  2. David,

    I think it is important that high school IPT students get some exposure to and experience with documentation. As much as we all like to play with the technology, the reality is that professional IT, even when done appropriately, still involves some level of documentation. It is good for students to be aware of that early and learn that it is part of the process.

    While it is true that we need to include some excitement (i.e. building something interesting that works). it is also important to at least touch on the realities of the the IT world.

    Another thing to consider too is that “documentation” does not just come in the form of word processing document. Many companies are now using modelling tools that are used not only as a design tool but also a documentation platform. At Monash we use a tool called Visual Paradigm for UML (http://www.visual-paradigm.com/product/?favor=vpuml) and when I was working as a consultant my company used Enterprise Architect (http://www.sparxsystems.com/products/index.html). These tools are very powerful and actually fun to to learn and use.

  3. Are the number of students enrolled in IPT type courses shrinking? What are the factors?

    At our school there are 2 main factors:
    IPT is more and more designed for someone contemplating an IT career. With more and more opportunities to use computers outside IPT, there remains little incentive to take IPT unless you’re interested in it as a profession. Considering that IT is a service-based industry, there only needs to be %5-%10 of the population focused on it as a profession. This would indicate that only 4-7 from our current triple-streamed cohort should be proceeding down this path, and this is about what we have. IPT has been overinflated in the past.

    IPT is on the same selection line as Maths C. due to the small numbers, it is currently paired with other combined classes which unfortunately leads to a clash with Maths C. Any OP 1-9 candidate is going to go for Maths C rather than IPT even if they would have enjoyed IPT more as Maths C offers more robust OP results. There are another 3 in the current cohort that that this applies to.
    Added to this is the various University early entry schemes that are more enticing for anyone with pre-existing knowledge of programming.

    The upshot of this is that next year we will no longer be offering IPT at our school.

    1. Tony, thanks for the extra insight into the forces at play with subject selection.

      Is your school offering ITS or ICT? If so, what are the numbers like in those? Mostly a different cohort I imagine?

  4. We don’t offer ITS, but offer ICT as compulsory for year 7, then somewhat optional for 8 & 9 (they can choose 2 of 3 tech strand subjects, the others being design tech and food tech).

    There has been a concerted effort to “sex up” ICT as the 8 & 9 cohort are also dropping in numbers. This may be more to do with the content and method of delivery as the other technology counterparts are also service industries too (and have been increasing at the expense of ICT). I’ve been moving the course to more project based multimedia and less re-training of word processing skills without context.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s