Trying a new pedagogical approach

I’ve been looking at so many valuable computer science education resources shared in the last few weeks – both formally as part of my weekly UFL assignments, as well as informally in discussion posts and shares amongst peers. I myself have already implemented some of these ideas both in years past as well as recently – specifically the CS Unplugged activities.  I’ve been thinking more about a pedagogical approach that I’ve never used before, Comment-First-Coding (CFC) as described in Sengupta’s journal article “CFC (Comment-First-Coding) – A Simple yet Effective Method for Teaching Programming to Information Systems Students” (Sengupta, 2009).

Traditionally, as programming assignments become more complex, I encourage students to develop pseudocode to develop their algorithm prior to implementing it in code. I have never used CFC as an approach; after reading Sengupta’s article, I plan to test it out in my class. I like the idea of CFC because it allows me to provide formative feedback to the students on a tangible deliverable before the student starts coding. I envision myself assigning a programming challenge where students write the comments in the Integrated Development Environment and submit just the comments (without code) as an interim deliverable. Once I provide formative feedback to the students, they can then develop the code.  

Another benefit of CFC is that the comments remain in the students code and are submitted as part of the final deliverable. Students often neglect maintainability and readability of their code when they submit their final version. By encouraging students to use comments as a tool early in the process, the code is documented before it is written. Students don’t need to take an extra step after the program is written to incorporate the comments.  

As an extension, I may allow students to develop the comments in pairs. Once I provide feedback on the commented code, students could then individually program the application and compare their final version of code with their original partner. I think it is important for students to see the many options that exist for solving a problem – even if the algorithm is the same at a high level there can be quite a bit of variability in the final product.

General Resource Discussion

As I review the vast resources that are available and I recognize the depth of discussion for the issues surrounding CS education, I realize that my area of interest is very broad. Computational thinking concepts and capabilities can be implemented across multiple disciplines and grade levels (Barr & Stephenson, 2011) and recommendations for systematic changes have been identified (Wilson et al., 2010). I believe my research focus needs to be much narrower and more tangible – so hopefully someone in the future will refer to my works, just as I’m referring to Sengupta’s CFC works.