Saturday 23 September 2023

"Preparing Coders for Tomorrow: The Evolution of Code Comprehension in Generative AI”! Computer Science Faculty and IT Recruiters' Dilemma!

Dear Friends and Students,

This article is highly debatable, much like the age-old question of whether the chicken or the egg came first. Twenty-seven years ago, during my academic journey, I encountered a significant challenge. As part of a lab exam, we were tasked with writing a quicksort algorithm – a sorting technique used in computer programming to arrange numbers in ascending or descending order. While I understood the logic and could outline the steps in plain English, I struggled to pass the test case when it came to implementing it in C++. Regrettably, this remains a personal weakness to this day.

The mere recollection of that day still makes me break into a sweat. I grappled with the code, but the test case remained unyielding. Finally, in the last frantic 10 minutes, I transcribed the code onto paper and submitted it to the examiner. An anxious moment followed as she asked, "Will this code work?" My response, laden with uncertainty, ranged from "Yes" to "No" and "Maybe." Ultimately, I lost 15 marks due to my inability to memorize the syntax, even though I grasped the underlying logic and had written pseudo code.

It was this fear that led me to pursue a career in Pre-Sales at Wipro. However, my ability to comprehend and adapt others' well-written code to my context allowed me to excel in managing projects and even take on the role of Dev Manager. Nevertheless, if tasked with passing a test case in an examination-style coding assessment today, I might still falter. In fact, I have faced such failures in the past, and I am confident that many students studying computer science degrees share similar experiences.

The landscape of coding education is undergoing a profound transformation. Last year, when I boldly proclaimed at a conference that "Generative AI would write code in the future," I faced backlash. I also asserted that there is no need to teach "How to write code"; instead, we should focus on imparting "Code Comprehension Skills and Task Comprehension skills." These ideas were met with disagreement.

What may come as a surprise is the following statistic: "GitHub Copilot, an AI-powered code completion tool, is now being used to generate an average of 46% of the code that developers are writing. This marks a substantial increase from the 27% generated by Copilot in June 2022."

Copilot has gained popularity among over 1 million developers and has generated more than 3 billion accepted lines of code. With this rate of adoption, one must consider the necessary changes in programming education at universities and in the assessment tests for fresh graduates in coding contests.

If you visit codeium.com/playground, you can write a simple prompt (a problem statement in English), press "Enter," and watch as AI generates code for you. It supports coding in over 70 languages. In light of these developments, I propose a renewed focus when teaching and assessing computer science students:

Code Comprehension Skills (40%): This skill set involves reading and understanding code. It empowers students to maintain, extend, debug existing code, and craft new code that is efficient, reliable, and maintainable. Encourage students to read code regularly, practice coding with AI assistance, employ debugging tools (e.g., Codecheck), consult the documentation, and seek answers from AI tools like Bard, Bing chat, or ChatGPT.

Task Comprehension Skills (40%): These skills encompass understanding requirements, breaking tasks into manageable steps, and identifying the necessary data structures and algorithms.

Syntax and Writing Code (20%): The significance of syntax and writing code has evolved, with my recommendation being to reduce its weight to 20%. We are entering an era of Generative AI, where the emphasis shifts towards comprehension over rote memorization.

Does this approach make sense? Will it work? My intuition says, "Yes, it will!"

Best regards,

Ravi Saripalle

 

No comments:

Post a Comment