Skip to main content

14 December 2022

Coding in teams to get ready for the programming project

Javier De Las Heras profile image
Written by

Javier De Las Heras

As students in year 12 are starting to have the necessary programming skills to create programs that are modular, validate data, have a GUI interface and processes data from external files, it is important for them to practise how to create more complex programs as a project. One difficulty is that it takes a lot of time in lessons for individual learners to code a more advanced app using an iterative approach. This is where coding in teams using the agile methodology comes handy in lessons.

Agile approach to project development aims to improve the flexibility of software development and adapt to changes in user requirements faster. The problem at hand is broken down into sections or modules which are developed in parallel by different groups of programmers; Different sections of the software that is being developed can be at different stages of construction and tested thoroughly independently. A working prototype is delivered early on and prototypes are built upon and improved in an iterative manner so that new prototypes are delivered regularly throughout the course of the development cycle. This methodology focuses on user satisfaction and therefore ensures that the final product works as intended, ensuring students go through all the phases needed to tackle their programming project.

I use the “There is no I in CODE” activity over 5 lessons:

  • The teacher is the ‘project manager’ with a project brief to be develop by the whole class
  • Students are split in groups of 3 with specific roles in rotation each lesson: coder, debugger and user
  • The teacher split the project into modules (EG; A CV app project will be decomposed into the following modules: the log-in screen, registration screen, data entry screen, PDF page generator)
  • The teacher gives one module to each team to develop and test independently…
    • User requirements to the students acting as client/user so they can give feedback on usability
    • Project brief to the students acting as coder to guide them to start the app so they can create it using procedural programming
    • Test and error log table to the user acting as debugger with tests and expected results
  • Students create their prototype 1 in the first lesson debugged and with user feedback for the next prototypes in the following lessons. During these lessons, the teacher circulates and provides guidance to the teams as ‘project manager’
  • In the last lesson, the teacher place all the coders in a group and they can integrate the different modules into a completed app, then the debuggers test the final product and the users provide final feedback

This can be done in many different ways and formats; The main thing is to provide learners with the experience of how to develop and test a full app in an iterative way so they are ready for their own project. The feedback from students is very positive and they always state that they especially like working in a ‘real’ environment, the experience of doing different roles within the development phase to help them understand the scale of their own project and  working and learning together as a team.

Useful links:

Guide to Agile software development: https://tinyurl.com/3atrzr3c

Iterative software development - A beginners guide: https://tinyurl.com/mppbxy2f

How to test code using a test table: https://tinyurl.com/48xj3fh6

Discussion

Please login to post a comment