Skip to main content

In This Era of AI, Will Everyone Be a Programmer?

In a new book on Large Language Models, computer scientists share a roadmap that makes programming accessible to all.

Published Date

Article Content

ChatGPT and Large Language Models (LLMs) are viewed by many as a threat to the field of computer science education because they’re able to produce code on command. But for Leo Porter, a teaching professor at University of California San Diego, these are tools that might actually help bring programming to a wider, more inclusive and diverse audience.

In the retooled, foundational course, “Introduction to Programming and Computational Problem Solving 1”  launched this fall, Porter is teaching a class of mostly first-year UC San Diego students with a curriculum that incorporates LLMs. On the first day, when students saw how well the AI-tool Copilot could write code to solve basic tasks, there was an audible expression of surprise.  The surprise was quickly tempered when the AI made a mistake shortly thereafter, allowing Porter to show students that these tools still need experienced and capable human supervision.  

For Porter, this is all part of reaching a bigger and broader aspiration: “Computing for All is a goal for many of us in the CS Education community. Computing is so ubiquitous in society in the modern era that fluency with computing topics should be taught to everyone just as we teach everyone reading, writing, and arithmetic,” said Porter, a teaching professor in the Department of Computer Science and Engineering at UC San Diego’s Jacobs School of Engineering.

Porter has coauthored a book with Daniel Zingaro, a faculty member at the University of Toronto, "Learn AI-Assisted Python Programming with GitHub Copilot and ChatGPT" to solve long-standing issues with how programming is taught. The co-authors look to LLMs to stretch learning objectives and potentially level the playing field in computer science.

“Computing is so influential on nearly every element of society that we need to ensure everyone has access to opportunities to learn the field and, in turn, enter the profession,” Porter said.

Photo of computer science professor Leo Porter
Computer science teaching professor Leo Porter teaching the foundational course, “Introduction to Programming and Computational Problem Solving 1” that incorporates LLMs.

The unintended arbiter of access 

For decades, introductory programming courses have been notorious gatekeepers to  computing fields, studies show. Repeatedly, students have reached the end of these courses with programming abilities well below expectations, leading to high failure rates and hampered progress throughout the major. 

Until now, the key to success in these courses has hinged on a student’s ability – or inability – to learn syntax. 

Commas, brackets, keywords and other symbols have served as unintended arbiters of access to more advanced curriculum, halting progress until syntax errors could be addressed. By necessity, educators have spent significant time on this micro level skill rather than teaching the higher-level, more impactful elements of writing software.

“Our current introductory programming courses aren’t working as well as we’d like, but it’s hard to get faculty to change how they teach,” said Porter. “LLMs force that change.” 

An opportunity for deeper learning

Enter ChatGPT and GitHub Copilot. When these AI-assisted coding tools crashed into classrooms in 2022, they could generate code instantaneously. More impressively, they proved remarkably capable of producing code without syntax errors.

The resounding success of AI tools posed an immediate threat to norms in introductory programming courses. Many educators suggested the tools should be banned from the classroom. Others, like Porter and Zingaro, recognized an opportunity to adapt curriculum and provide deeper, richer instruction.

“Happily, the skills we need to teach now are exactly the skills we should have been teaching all along,” said Porter. “Rather than writing code from scratch, we want to incorporate AI so we can teach more advanced material early on in the curriculum.” 

Hidden curriculum, the skills students once needed to learn intuitively in their programming courses, are now front and center. 

“Reading code is going to be extremely important, even more so than before. Testing, strong debugging skills, problem decomposition – these skills will be highly valued in the workforce,” said Zingaro.

Computer screen showing coding
What's wrong with this code? LLMs can help students find the answer more quickly and easily. 

A catalyst for accessibility

While introductory programming has been vexing for many students, the research on CS education suggests that outcomes for students from racially underrepresented groups are worse than those of their majority counterparts. A common cause for this inequity is a lack of access to early computing experiences for students from certain demographic groups.

“We believe LLMs lower the barrier for understanding how to program and, in turn, may help us bring in a broader and more diverse group of students and professionals to the field,” said Porter.

Students in the Introduction to Computing course
Students in the “Introduction to Programming and Computational Problem Solving" course. Porter says LLMs lower the barrier for understanding how to program and may help bring in a broader and more diverse group of students and professionals to the field.

According to Porter, one of the most established findings in CS literature correlates prior experience in programming in grades K-12 with student success in introductory college courses. Since access to early programming experiences  has not been equally available to all demographics, particularly low-income neighborhoods, CS has been unable to attract and retain a diverse population of students.  Consequently, there’s a concerning lack of diversity in the field. 

LLMs could potentially bridge the divide by offering beginning students assistance as they learn to program. According to Porter and Zingaro, early research studies suggest students who learn using LLMs have better outcomes when learning programming than students who don’t. Better success in the classroom could lead to additional professional opportunities and a diversification of the field.

“These AI tools, if used correctly, are a superpower. We want these tools to help more programmers get in. Let’s break down some doors,” said Zingaro.

A roadmap to new teaching methods

As educators increasingly accept that AI-tools are here to stay, the urgent need for new programming curriculum has become increasingly apparent. Updated teaching methodologies must account for AI-assisted learning with adjusted goals and appropriate student assessments.

“The typical way we used to teach is not viable anymore. We can’t give students take-home exercises where the LLM solves the problems for them.  Instead, we need to give them larger, open-ended problems,” said Porter. “Dan and I recognized this early on and prioritized coming up with a resource to help.” 

We believe LLMs lower the barrier for understanding how to program and, in turn, may help us bring in a broader and more diverse group of students and professionals to the field.
Leo Porter

Porter and Zingaro's new book reimagines how students should learn to program by teaching a software design cycle that fully integrates working with LLMs.  The new approach teaches students higher-level skills like breaking down problems and testing code, skills essential for career success.

The introductory programming course is ongoing, with students learning these new programming skills in an AI era. It will be studied to see how it impacts student learning outcomes, partially with funding from a Google Award for Inclusion Research that Porter and Zingaro were recently awarded. Porter and Zingaro were recognized with the Google Award for Inclusion Research in support of their proposal, “Exploring the Value of LLMs in Teaching Introductory Programming.” The award will fund further research on the potential benefits of using LLMs to learn programming, particularly for students from underrepresented groups in computing.

Share This:

Category navigation with Social links