Case Study BP624: Interactive programming for school-based clients


Delivery

Sam's presentation at Parliament

The year was divided into two parts – first the selection of the project and client, and the associated research and design this involved, culminating in an initial brief. The second part was the development and implementation of project proper.

The class started by first choosing their project and client – out of the 10 students that finished the class, nine chose either the interactive Technology project or the student database, and one came up with their own client. "Another student also came up with his own client for an ordering system on a cell phone," says Vince. "He did substantial research and looked at wml (the wireless markup language used in cell phones) – in the end he looked at three projects, but ended up doing the interactive Technology test."

Each student analysed their project and researched existing solutions. Research was centred at the library, to get students out of the computer lab. Most students were doing the interactive Technology project, and were pointed towards online examination environments such as WintecActive and HotPotatoes.

Vince Brannigan:

"Once you have your existing situation and your preferred solution, then you can construct a plan between the two points and organise your time. So after we did our research assignment we planned our time and resources. We did Gantt charts in Excel. And then they started interviewing the clients, planning and working on their projects."

After deciding on a possible solution, initial plans were made based on several factors: the time available, the research required, and the amount of time expected for the project to be complete. Time was a major issue as students only had 11 weeks available for implementing the project. Students used a Gantt-style chart (but made in Excel) to allocate time efficiently throughout the year in order to maximise levels of output in regard to the project. Stakeholders were identified and defined, and key factors identified and prioritised to allocate resources effectively.

The initial brief that evolved from this process was made into a PowerPoint presentation by each student, and given to the others in the class.

Students now had an applied context for the two terms of skill development that would be required for the project – the learning of different types of mark-up language for writing an interactive program from scratch, and a query language so they could include a database.

"When designing their project, students had to think very carefully about its requirements, so they can use the environment and language that is most appropriate," says Vince.

"They already had a good idea of programming. We extended that to PHP, a scripting language. They also picked up how to use a markup language and then how to use a query language and gained understanding of how it all fits together.
In the end students were given an introduction to and advice on a wide range of open source development environments and languages so they could make the most appropriate choice. These included learning to write html coding using Notepad++, learning PHP, a server-side scripting language used for generating dynamic web pages, CSS scripting for global styling, MySQL, an open-source online databasing application, and using the XAMPP package to serve the database and site.

Database design was an important new skill. "A lot of the teaching was how to design a database – something they all had to learn. They had already learnt what a database was in Year 11, and had a good understanding of how to use a SQL query language."

In terms of the design/useability, Vince encourages the use of the functional over the flashy. He uses the concept of the iPod over the ghetto-blaster as an example everyone can understand. "Do you want all these unnecessary bells and whistles, or a good clean, simple functional design that is pared-down to its absolute essentials," he asks his students.

Scott Abernathy at Wellington High School

This year Futureintech Ambassador Scott Abernathy, Senior Software Engineer at Stratex Networks (NZ) Ltd, Lower Hutt, spoke to the class only once – his role with the previous class as ongoing consultant to the development of prototypes was taken over by the Victoria University student mentors. Two student mentors visited once a week to help students with their work.

"Their involvement was crucial to the high quality of the final outcomes," says Vince. "Including me that made a staff/student ratio of 1:3 at the most critical time of the project, which, of course, was fantastic. All the Year 13 students thought it was great."

Although not involved so much for this class, over the past few years, Scott has been a regular visitor to Vince's classes and has been extremely valuable in introducing workplace methodology and perspectives to his classes, and shares his practical experience and advice in individual feedback sessions with students on their projects.

Scott has been fantastic," says Vince. "He introduced us to Extreme Programming XP, which he uses at his work. XP is a break from procedural programming and enables designers to think of the system as a set of interacting objects. We now use objected-oriented programming in our teaching. Students find out what the client wants, deciding what they have to do, breaking down these tasks into smaller events or objects, then they structure their code to match. We now introduce students to objected-oriented programming in Year 11 and by Year 12 they're right into it. This Year 13 class benefited from this planning and were all using use objects in php.

Scott also introduced extreme programming XP. XP uses CRC Cards, which is a technique that would get students to role-play their system, interacting with each other as if they were each a module in the system. In 2007 we're definitely using a module approach to building stuff, as it lines up very well with the new curriculum strands."

"Also Scott doesn't use comments in his code – in fact it's company policy. His object-oriented code has very descriptive names – good variable names and good function names – so when you read it you understand what's going on. Generally the code itself tells you what's happening, with comments only for things that need a bit more explanation.

"It's great for students to be exposed in this way to innovative procedures straight from industry, to learn different ways of working. An important part of technology education is understand what models are available and to pick the right model for a particular situation."

Documentation was done is a variety of ways, using visual diaries, PowerPoint presentations, saved versions of prototypes, "I like them to have their visual diaries out when they are doing any work," says Vincent, "and make sure they are up-to-date at least once a week. Every time students reach a crossroads in their coding – either adaptations or a 'wow it works' – then they save that as a version and record in their diaries what they have done and what they're going to do next.

Excellent overviews of the project can be seen in Mounika's visual diary of her Biology quiz project and in Sam Archer's final report (.pdf 622kb) and final prototype.

Time was allocated at the end of the year for reflection for those students who wish to submit their project for Scholarship – these two students took up this opportunity.