Wednesday, November 26, 2008

2008 Retrospective

Well the semester is over, and I'm starting to reflect upon a year with many experiments. The big things for me this year has been trying to put into practice many of the things that I have been reading about in the education area. The main focus has been on helping students to develop a greater understanding of software development and programming in general.

Background & the idea:
Software development is challenging, something that is easy to forget (once you get it). We have taught this through extended practice, in many cases without addressing or even discussing the associated principles. One of my frustrations with this has been the way many people subsequently approach their programming, usually with little thought or understanding. The classic symptom here is observed when the student makes random changes in the hope of fixing a bug, rather than thinking through their program and reasoning about its structure and implementation.

Is this a symptom of a lack of experience, or a greater problem related to the students understanding of the abstractions they are working with.

I am of the opinion that it is largely the latter, and that by refocusing on principles and core concepts we can teach people to better understand what they are doing when they create their own programs.

The idea, for this year, has been to refocus my teaching around the core principles. Teaching the principles of structured programming in first semester, and object oriented principles in second semester.

The method:
My teaching method aimed to get students engaged with the material, it is what the student does that counts...

Along with this I wanted students to be able to be adventurous, without risking losing marks. It was more important to have good quality, that a fixed time line. I moved to an extreme "Theory Y" position, with the perceived benefits of greater flexibility for the students along with greater responsibility.

I also wanted to make better use of the lectures, by distributing weekly reading and creating podcasts and using the lectures to discuss issues students were having with the concepts.

The results:
Now that semester 2 is over I am reflecting on the results of this approach. For me it has been a real roller coaster of highs and lows. Some aspects have worked well, others need improvement.

There was a marked difference between the introductory and advanced programming subjects. In general this approach has worked well with the more advanced students (Enterprise .NET), but how about the introductory subjects?

Releasing control of the system was definitely a different experience, though not an overly positive one in the introductory subjects. During the semester it was obvious that many of these students had failed to take responsibility for their learning. This was seen through missed deadlines, lack of attendance, and few questions on challenging areas. Flexible due dates meant leaving work until the last minute, rather than a chance to do quality work. The marking then reflected this situation, with many of those who "relaxed" failing to submit anything as the workload exceeded their time remaining.

On the positive side, there were some truly brilliant portfolios submitted. Those students who did take responsibility for their learning were able to demonstrate far more than I could have wished for. I hope that these students appreciated the flexibility, and the chance to explore areas they were interested in. But how can I adjust the process to better suite the larger majority of students.

Another positive was the portfolio assessment. This was time consuming and while course grained it has given very "accurate" grades, with no students being awarded a grade higher than they deserved due to a poor testing or marking scheme. On the other hand there were some students who's result I believe could have been better if they applied themselves more to the task, and demonstrating their learning.

The lecture method worked Ok with the advanced students, but need some tweaking. With the introductory subjects it really failed, which was disappointing. I think the problems were many... The text books were really 500% of what was "really" needed. As a result many students didn't do the required reading and subsequently blundered along trying to learn details from "lectures" without any real depth to their understanding. The method was significantly different and I failed to engage them in the process. Not providing my own large design early was not a great idea. Some of the lab exercises were incorrectly focused. Some of the portfolio pieces I suggested were overly large and time consuming, without the intended benefits.

Some bad points:

  • Not enough focus on programming (overcompensation)
  • Only few truly engaged with the method
  • In general students did a poor job of managing their learning
  • Some students didn't end up understanding the portfolio idea

Some good points:
  • Large responsibility on students to manage their own learning.
  • Mature students are better equipped for this method
  • Portfolios were able to capture student learning
  • Assessment was "fair"
  • No penalties for those who learn during the semester, and can communicate their learning by the end.
  • English communication skills can be enhanced, and communication issues are less severe then with exams (which require time compressed communication)

Reflections & Plans:
In summary this year has been a huge disappointment, and I'll need to try and reinvigorate myself before next year. I think the approach can work, and if I can get it right there should be some great benefits for the students. Reading back over this has, however, provided me with some hope.

"Once more unto the breach, dear friends, once more;"

My plans are to focus on teaching the learning process... as well as teaching about programming :). The method is different and I dont think I spent enough time on what was expected, and how to take advantage of the environment. I also have some more practical ideas related to using more "traditional" practices alongside this to help ease students into the experience. I am also more experienced now on what I need them to focus on in this approach. It has been a long time since I really engaged with these principles, and I'll be better equipped next year.

So to my introductory programming students from this year... sorry...

I would love to know what you thought of this experience and any suggestions you have... what do you think could be done to better next time.

I also promise to blog more... if you are interested in my plans and progress stay in touch! I need all the help I can get :)

4 comments:

Anonymous said...

Hey! Long time no 'blog!
Sounds like an interesting year. I'd love to know more about what the portfolio actually is, and how they are marked on it, etc.

It's awesome that you are constantly exploring alternative methods. Some students may suffer as a result but at least it keeps it interesting.

Do all teachers take such an analytical approach to their own teaching or is it just you? Others should take note!

Hopefully some students can comment here about their experiences. I'd be interested to hear.

Anonymous said...

Interesting reading. This is something I emailed to my students today(11/26):
BTW, on Monday, I would like to briefly discuss in class your thoughts about the course, and to what extent the original stated objectives were met.

A teacher must understand how students think, and build from there. See "Teaching and Helping Students Think and Do Better" on amazon.

Anonymous said...

Fail the students who don't take responsibility for their learning. Unis are turning into a place to go to get a job rather than a place to learn.

If you're not ready to learn, sorry, go see the world, come back in five years when you've got some real motivation.

Anonymous said...

Xavier is right although the comment he mentioned here could be mean.

Universities (and schools) today are under pressures to pass students. Failing students is a bad thing and we, Australian academics, want to avoid failing students as far as possible. In fact, failed students are a strong evidence that the lectures/lab tutors cannot be understood. For a subject which has over 50% of students (this figure varies with individual department's policies) failing the subject, the subject coordinator will be called by the Faculty Dean and be asked to explain why it happened and what measures taken to prevent it to happen again in the future.

I find that undergraduates (especially the ones who got into uni straight from Year 12) are less motivated in learning than postgraduates. The reasons are because of their age (being young and "dumb"), not enough world experience, many of them have never been employed, not knowing the expectation of the world of employment and further postgrad studies based on scholarship, relationship issues at the stage of life, maybe family issues, too.

But there are things that academics should remember when dealing with students: some students might have financial problems, family breakdown, etc. So they are not living perfectly and studying.

To be honest with you, I find those who are working part time (paid) while studying at uni are the most motivated students. These people know what is expected from their study committments. Those have worked (but are not working) rank second, then the others rank below them.

P.S. I am a lab tutor at Swinburne and also doing my postgraduate study at the same time and loving it.