CS Education in a World with AI

I recently took part in Stanford’s Code in Place as a Section Leader. At the end of the course, Section Leaders were asked to submit short opinion pieces responding to the following prompt:

The rapid development of AI is having a dramatic impact on Computer Science Education and the day to day experience of programming. Society at large is very interested in knowing what that rise will mean for students and teachers of intro to programming. We think that an important voice has been missed in this important conversation: yours!

Given we are the singular course with the most Computer Science teachers, the Code in Place Section Leaders are uniquely positioned to present an insight into what computer science education really looks like, and a vision for a direction it could move towards in the near future.

We would like to build a collection of short opinion-pieces that represents the view of as many Code in Place Section Leaders as possible. In your opinion piece we invite you to reflect on:

  1. What do you perceive are the current problems we are facing in CS education?
  2. What opportunities await students and teachers?
  3. What is your vision for the future?

Make sure to include the community of students and teachers your opinion is based on, and where in the world they are. This prompt is intentionally open ended so that you can express yourself however you see fit. Feel free to answer just one, a couple, or all of them if you prefer. You can give a vision for Code in Place 2026, or any other intro to programming course of your choosing.

This was my opinion piece.


I am a graduate student studying computer science at a university in California. The opinions expressed here are based on my experience at my university both as a student and a teacher. From my observations and conversations with both teachers and learners, I see two distinct worries related to AI in CS education. Teachers’ concerns tend to focus on how to keep students engaged and learning when there are tools that can do basic assignments instantly. There are questions about how to make sure students still learn CS fundamentals when they could easily find an answer before ever having to struggle to find it themselves. From the students’ perspective, they’re concerned that they’re being taught CS concepts that will be meaningless in a world where AI can code better than they can. Why go through the effort of learning CS if their skills are going to be, or may already be, obsolete?

I want to start with the problem from the students’ perspective. The concern seems to come from the underlying assumption that AI tools eliminate the need for foundational CS knowledge, and I want to push back on that assumption. While not a perfect comparison, there are parallels between what’s happening now in CS education and what happened in math education when mechanical calculators became cheap and accessible. The question then, and still sometimes now, was why students need to learn basic math if a calculator can do it for them. I’d argue that students still learn math because the manual calculation of solving a math problem is only a small part of the picture. The bigger part is learning how that calculation fits into real-world problems and how to interpret the result of that calculation.

The situation in CS feels very similar. The process of writing code is only part of the big picture of solving programming problems. You still need to know how that code fits into the world around it and how (or if) it’s doing what it was written to do. And just like with math, understanding the nuts and bolts of the code is a key part of understanding how that code fits into the whole.

This brings me to the concerns from teachers, which is that students aren’t motivated to learn CS fundamentals if an AI can write their program for them. I believe there needs to be a shift away from trying to fight against AI tools and towards teaching students how to program with them. Yes, I think students should learn to program without AI, just like how students still need to learn how to do basic math without a calculator. Once they learn those basic programming skills though, there’s a huge opportunity to focus on the problem-solving aspect of programming.

Looking at CS education from that angle, coding is a tool, and CS education is a way to teach students how to use that tool to solve the problems that interest them. In my view that means focusing on things like computational thinking, problem decomposition, and code literacy as opposed to just code writing. Concretely, after introducing a concept in the classroom, a lesson might take the form of teaching students to recognize when a problem requires that concept, how to evaluate whether an AI-generated solution is appropriate for their specific use case, and how to integrate that solution into a larger program. This emphasizes that being able to break down complex problems and critically evaluate code is important regardless of who or what wrote the code in the first place.

Taking this view of CS education further, I think that not only is it important that programmers learn coding fundamentals, but that we continue to expand the number of people with basic CS knowledge. AI lowered the barrier to getting a functioning program from “can you write code?” to “can you formulate your problem and verify solutions?” Since the barrier to using an AI coding tool is essentially “do you have a computer with an internet connection?” expanding the number of people with a CS education means expanding the number of people who can use the tool effectively. So, expanding the number of people with a CS education also means getting more ideas out into the world and letting more people solve the problems they want to solve.

Rather than viewing AI as a threat to CS education, we should see it as an opportunity to make programming more accessible and focus on what humans do best: creative problem-solving and critical thinking. The question isn’t whether students should learn to code in an AI world, it’s how we can prepare them to be thoughtful, capable partners with these powerful tools.