Course Exam – Comp 266, Introduction to Web Programming

AU courses, up close.

Course Exam – Comp 266, Introduction to Web Programming

Dr. Dron, course designer of COMP 266, Introduction to Web Programming, provides an interview on what makes his course unique from so many others at AU.

What makes the course particularly interesting to you as the creator, the designer, or the instructor?
The challenge of building social pedagogies into a fairly dry, skill-based subject and, above all, into a self-paced course. The fact that students working independently could not reliably be expected to collaborate meant that I had to find ways to support cooperative working, where people working independently could both help and learn from others. Also, programming is a very practical skill that is not unlike music, but it tends to be taught as though it were a science, with formulae and methods to learn and, only once learned, to be applied. I inverted this by focusing on the problems to be solved, so students have to learn the mechanical parts in order to solve those problems. The course is staged so they get to play the ’easy pieces’ first.

When was this course created? When was the last update of the course? Of the learning materials?
The course as it now stands (version 3) was first released around 2012, I think. It completely replaced an older textbook-based version: everything in it was new apart from the title and learning outcomes. From a process perspective it has not been formally updated since then, apart from very minor tweaks and fixes to broken URLs, but that is because it is designed to evolve continuously, which means it should last for many years to come. Informally, the last update from me was a couple of days ago, but the course is designed so that student work becomes part of the fabric of it so it never stops changing. The last student update was a couple of hours ago.

What was the process for getting the course made?
All major course revisions are first discussed in our school meetings, during which the author presents the plan to colleagues and adapts according to feedback. After this I wrote the bulk of it directly using Moodle and the Landing (our social learning commons). At that point the design iterated in dialogue with one of our best learning designers, who suggested changes such as the self-test quizzes and a couple of other tweaks. After I had finished with it an editor did the final tweaks to layout and wording, and put it online. Since then, apart from minor wording fixes, the Moodle content has remained largely static. The Landing group where most of the work happens and where it continues to evolve is my own responsibility.

If it’s an e-text course, have you heard of any issues with the e-text that students might want to be prepared for?
The course has a very open approach to learning resources, offering choices of online resources from which to learn, varying from online books and courses to web pages and problem-solving forums. It has no required textbook. It provides an ever-changing set of links to a lot of different sites, to which others are constantly added both by me and by students. It’s not always easy for students to cope with that. It can become a bit overwhelming for students as there are so many choices and, of course, resources come and go quite frequently on the Web, so it can be hard to find things, and to work out which are reliable and useful. This is quite intentional. It is meant to mirror the authentic process that professional programmers use when learning, so it is one of the skills that students need to learn. We do help as much as we can with it, both in recommending resources and through offering feedback, but it is ultimately down to the students to pick (and discover) resources that suit their needs best.

About how many students take this course, on average?
At any one time there tend to be around 60-80 students enrolled.

What kind of learning style is it? For instance, is it very open ended or does it give fairly detailed instructions?
It’s a scaffolded problem-based approach based on a single project (a website) that evolves iteratively throughout the course. The course provides a staged set of activities going from basic design and site building through to complex programming and from there on to technically simpler but more sophisticated and powerful uses of technologies to enhance the site. There is a very strong emphasis on reflection throughout: students don’t just learn, but learn how to learn. The content and methods of learning are extremely flexible, and different for every student. There are no graded assignments ? students get feedback from tutors and other students, but only to help them with the process and to help them do better. There’s just a single graded portfolio at the end through which students present evidence of achieving the learning outcomes, which can come from any work on the course, not just the web sites they produce. Reflective learning diaries are a crucial component of that, but students can also, optionally, include things like help given to others and engagement in discussions to give evidence of meeting the learning outcomes. It’s very social for those that want it, but those that don’t want to engage with others are not forced to do so. The emphasis throughout is on giving students as much control as possible over almost every aspect of the content and process. It’s not just about giving lots of choices: it’s about supporting and empowering students to be able to make wise choices.

If this course isn’t a requirement of their program, why should students take it as an elective?
It’s a great course for those that want to dip into programming but do not relish the rigid, formal and, for some, dull process of learning step by step. It’s for those that want to actively produce something and learn to think like an information systems professional, engaging in a very practical way with the ideas, skills and processes involved in being a programmer. It can provide a useful foundation for the more theoretical and ’hard’ programming courses that we also offer.

What part or concept in the course have you seen students have the most trouble with?
Programming. Always programming. The course tries to introduce that gently but, eventually, students have to grapple with the nature of the beast, which is not so much complicated as annoying. It is really easy to spend days on a problem that results from a single error in code, which is frustrating even to professional programmers. Like any skill, programming demands a lot of practice which, for some, that is at odds with expectations. Students sometimes expect to be told what to do and thereby somehow magically learn it ? textbooks often deliberately give that impression – but, in programming, that simply doesn’t work. You have to do it, do it again, and keep doing it, in lots of different ways, until you become proficient. Also, most students have difficulties at the start because the process is very different from what most are used to, but they normally figure it out in the end. The way the course evolves means that help with the process is improving all the time and it is less of a problem than it was at the start. Some have problems deciding what to do: because it is so open-ended and because some have come from a background of schooling that tells them what to do, being given full creative rein over what they do can be a bit intimidating. One of the roles of tutors on the course is to help them get over that hurdle.

What’s a good way for students to deal with the more troublesome parts?
Share the problems! That’s how the course works. Either in their own blogs or through discussions on the Landing, students are strongly encouraged to seek help and to offer advice to others. One of the reasons we use the Landing is that students who are nervous about doing that (we don’t normally like to reveal our ignorance) can choose who gets to see such cries for help ? just the tutor, the other students, everyone on the Landing, or even the whole world. The more they share, the more likely it is that they will get a timely response, but it is their choice.

Are the assignments fairly similar in the amount of work required, or are some of them much larger? (and, if so, which ones.)
There are no assignments as such, but the seven staged units are very variable in size. The biggest by far is the central programming unit, which is expected to take about a quarter of the whole time on the course. We provide estimates of the time each unit will take but they are only very approximate averages, and there is no such thing as an average student!

Is there a part of the course they’ve heard students really enjoy? What is it?
I’ve heard expressions of joy ? aha! moments ?pretty much the whole way through. What’s nice about it is that, at every stage and many points along the way, students create a very tangible and visible artifact that, by the nature of the course design, almost always meets a goal or need that interests them.

If there’s exams, what are they like? Is it a couple of essays? Short answer questions? Multiple choice?
We have no exams ? they make no sense in most contexts and especially not in this course, which already has copious mechanisms to assure identity and prevent cheating. Any or all the work on the course can contribute to the assessment ? it is largely up to students to choose what they present as evidence in their portfolios. And assembling the portfolio is itself an important learning activity that helps consolidate learning: unlike those courses with exams and summative assessments, there’s no activity on this course that does not contribute to learning, apart from figuring out how to use the two sites it runs upon.

If it’s not a new course, has it been running a while? Is there some part of it you think might need to be looked at in the next update?
A few. I need to make the process clearer and to build in a means to ensure that students get feedback on all their work. Right now, there are some stop points where this happens and students can seek feedback for any unit, but not all take advantage of that, so it is a bit haphazard. I think it would also be worthwhile to provide a little more scaffolding for dependent learners that are lost and don’t know which way to go – the freedom the course offers can be overwhelming for some. Also, although the course is designed to be very future-proof for at least a decade, changes in technologies used in industry are beginning to be great enough to make it worthwhile slightly shifting the balance of the course to make greater use of emerging frameworks that did not exist when the course began. Such things are very much allowed for in the existing course design but it would make sense to make it more explicit.

Or what would you change to make the course even better if you could?
The need to shift between Moodle and the Landing is annoying, especially as they use very different patterns and paradigms. This can be confusing. I’d like to shift the whole thing across to the Landing, but Moodle remains very useful for managing the formal assessments and as a fixed repository of course content, though useless for providing the control that the pedagogies of the course demands, so we are stuck with both for now.

In your opinion, do you think this course is a harder one or an easier one than the average at AU?
Very variable. Some take to it like a duck to water, others find it confusing and hard. One thing is fairly certain though ? most students tend to put in many more hours than they would for most courses, because they get personal value from it. The open-endedness of it, and the fact that they are almost all doing something that has personal meaning to them, means that they tend to spend much longer than necessary in perfecting their work. They tend to be highly motivated to achieve a lot, and it shows in the results. The quality of work on the course tends to be very high.

What kind of personality type or talent is required to succeed at this course?
The course works best for people that like to be in control of their own work, that enjoy challenges and problem solving, and that are not uncomfortable sharing with others. It tends to be much less effective for those that just want to be told what to do and to get on with it in private. This is a very active course that demands a lot of creative thinking and engagement. Of course, these are characteristics of good programmers, so it is quite authentic!

Does this course qualify for any certificates or diplomas?
It can be part of the BSc Computing program and computer games certificates.