KotlinCS 124 LogoJava

AI in CS 124

Software development is changing rapidly due to the incredible capabilities of generative AI. CS 124 has embraced AI coding agents to prepare students for the future of programming.

Since the dawn of computing, humans have always been trying to find more efficient and effective ways to author computer programs. Punchcards and mainframes gave way to interactive systems; assembly code gave way to higher-order programming languages; and programming languages themselves have continued to improve by providing more powerful abstractions. These changes represent significant improvements in leveraging the incredible power of computational technologies. Software developers have always had to keep up and learn new tools—but we’ve wanted to, because tools have kept improving.

Generative AI represents the latest advance in computer programming, and it’s a big one. Properly used, it acts as a multiplier: changes that used to take hours can be done in minutes, projects that used to take weeks can be done in days. This is all happening very rapidly. According to prominent computer scientist and programmer Andrej Karpathy, we’ve quickly moved from Software 1.0—classical programming, or writing code by hand—to Software 3.0—conversational programming, or working with generative AI using human-language prompting(1). Many experienced software developers are describing these rapid changes.

Why We’re Embracing AI
Why We’re Embracing AI

Why are we embracing AI? The main reason is simple: This is the future of software development. We’re preparing students today for the programming of today.

When higher-order languages emerged, introductory courses stopped teaching students to write assembly code. Pretending that these new approaches don’t exist or neglecting to teach students how to use them effectively would be wrong. Employers expect graduates to know these skills. These tools are far too powerful to ignore!

There are a few more specific reasons. 80% of CS 124 students are non-majors, and many complete little or no further computer science coursework. For these students, the ability of AI to generate entire apps from human-language specifications is tremendously important, and significantly increases the value of the basic programming skills that CS 124 will continue to teach. And a similar argument is also applicable to computer science majors, who after CS 124 must run a gauntlet of programming courses that focus on low-level development in languages like C and C++ that are less-suitable for application programming. Getting started with generative AI will ensure that students can complete fun and high-impact independent projects along the way for themselves and others.

Our journey to embracing AI has also been shaped by direct experience. In Fall 2024, we began allowing students to use AI on the course project as an experiment. Over the summer of 2025, Geoff tested whether Claude could complete the Fall 2025 project from test suites alone—and it could, completing almost everything with minimal human intervention. In Fall 2025, we tried a compromise: keeping the same project structure while allowing AI. But this approach didn’t work. Traditional programming assignments hinge on a specification that students translate to code. AI coding agents have become too good at this translation step, and the tension between precise specifications (needed for fair automated grading) and imprecise specifications (needed to prevent AI from doing all the work) proved irreconcilable. Some students used AI to complete almost all the work without learning much in the process.

This experience led to a key insight: if AI handles the translation from specification to code, the valuable human contribution is formulating the idea and specification itself. That’s what the new independent project MP(2) is designed to teach. For the full story, see Geoff’s presentation to CS 124 students at the end of the Fall 2025 semester, and a follow-up talk on using and teaching coding agents.

How We’re Embracing AI
How We’re Embracing AI

CS 124 introduces students to how to use the most capable AI programming tools: coding agents.

AI agents move past interactive prompting like ChatGPT and allow AI to understand and update source code directly, with configurable engagement with the human user. This kind of conversational programming requires creativity, planning, and critical thinking, even if using natural language avoids many of the syntactic challenges that software developers used to face. To borrow an analogy from Karpathy’s talk, we’ll be sure to keep our AI agents on a leash—and we must always understand the software AI helps us create!

CS 124 has always had students complete a multi-part Android programming project. Starting in Spring 2026, we’re taking this to the next level with My Project: each student will design and build their own unique Android app, working with AI coding agents throughout the process. We’ll discuss effective prompting strategies, understanding AI-generated changes, validating code through automated testing, and how to redirect AI when it gets off track.

This shift reflects a fundamental insight: the old model—where students receive a detailed specification, translate it to code, and submit—is broken in the age of AI coding agents. Agents can handle the translation step. What they cannot do is get the specification out of your mind. The independent project gives you practice with these essential skills: coming up with good problems to solve and describing solutions in a form that agents can use.

More specifically, our learning objectives related to AI-supported programming include:

Our excitement about teaching you about generative AI is inspired and guided by our own usage of these tools. Geoff is actively collaborating with Claude Code on the many pieces of CS 124 courseware that he maintains. He’s used it to vibe code entire websites, to create study materials for courses he’s taken, and continues to be amazed by what it can accomplish. These experiences inform how we teach students to harness AI’s power effectively.

How We Prepare Students
How We Prepare Students

We don’t simply hand students an AI tool and tell them to build something. The independent project includes a carefully scaffolded sequence of activities that move students from initial idea to working app:

Students start with brainstorming sessions—paired interviews where they help each other generate and refine app ideas. From there, rotating pitch sessions let students present ideas and get feedback from multiple peers. Next, structured Claude planning sessions teach students to work with AI to develop a concrete project plan. Finally, a series of scaffolded implementation checkpoints guide students through building their app, with decreasing guidance at each stage—early checkpoints provide more structure, later ones give students more independence.

Each activity builds on the previous one, and the sequence ensures that by the time students are working independently with AI coding agents, they have a clear idea, a plan, and the skills to execute it.

We’re Still Teaching Classical Programming
We’re Still Teaching Classical Programming

Having access to a computer-based testing facility puts CS 124 in the unique position of being able to teach both classical programming and conversational programming.

Because AI represents a multiplier, it is still critical that users develop and maintain classical programming abilities—writing code by hand. Think of it like weightlifting: even if you’ll eventually operate heavy machinery, building your own strength matters. CS 124 will continue to develop these skills through our daily lessons, homework, and particularly the weekly quizzes.

We will continue to prohibit AI use on our proctored quizzes given in the CBTF. Every quiz includes programming and debugging challenges, which must be completed without access to AI. (At some point in the future we may add prompting challenges to the quizzes as well.) We’ve also increased the grade weight of the proctored quizzes, which now represent 70% of a student’s grade. Over time we will continue to monitor student performance in CS 124 and in later courses and make adjustments as needed to ensure that we are still effectively teaching classical programming.

CS 124 only teaches AI-supported programming on the independent project. We learned from our Fall 2025 experience that simply allowing AI on a traditional project structure wasn’t enough—students need explicit instruction on how to work with AI effectively, and the project itself needs to be designed around AI collaboration. That’s why we moved to My Project: each student designs and builds their own unique Android app, exercising the skills that matter most in an AI-assisted world.

Embracing the Future
Embracing the Future

There are plenty of reasons to be concerned about the rise of AI: safety, human autonomy, job loss, ethical concerns, and many other issues. We are living through an age of anxiety, and these fears are legitimate. We encourage CS 124 students to engage with these issues in conversation with each other and with the course staff.

However, we should not lose sight of the fact that these developments are tremendously exciting! Computers have always been powerful tools that you can use to change the world. And they just got much easier to use. As Kailash Nadh wrote:

An experienced developer who can talk well, that is, imagine, articulate, define problem statements, architect and engineer, has a massive advantage over someone who cannot, more disproportionately than ever. Knowledge of specific language, syntax, and frameworks—code—is no longer a bottleneck. The physiological constraints of yore are no longer impediments. The machinery for instantly creating code at scale is now a commodity and available to everyone, just a pip install equivalent away. It requires no special training, no new language or framework to learn, and has practically no entry barriers—just good old critical thinking and foundational human skills, and competence to run the machinery.

That’s a good thing. There are complications to navigate, but we’ll do that together. It’s a great time to be a software developer—or become one!

Educators interested in a broader overview of CS 124’s approach—including our daily lessons, tutoring model, and assessment strategy—can visit our page for educators.

Frequently Asked Questions
Frequently Asked Questions

If you have a question about the statement above, please ask on our course forum. We’ll try to anticipate a few common questions below.

Note that Claude reviewed the document above and suggested some of the questions below. Geoff reviewed all questions and answers for correctness.

1. Does this policy apply to other courses?
1. Does this policy apply to other courses?

No! This policy only applies to CS 124. Other courses will take different approaches to incorporating generative AI. You are responsible for understanding and complying with the policies published by the courses you are taking.

2. Will I have to spend money to access AI coding tools?
2. Will I have to spend money to access AI coding tools?

Yes. We want to show you how to use the latest and greatest AI coding agents, and access to them does cost money. We will endeavor to keep the cost reasonable: perhaps $40 for the entire semester, an amount that we consider appropriate and similar to what you might pay for books or materials required by other courses. Please speak to Geoff if this amount represents a barrier to your success in the course. (Note that all other CS 124 materials are provided free of charge.)

3. Isn’t this cheating?
3. Isn’t this cheating?

We want you to learn how to use AI effectively! So using it on the CS 124 programming project will not be cheating. In fact, we’re going to show you how.

However: You will not be able to use AI on your CS 124 quizzes. And using AI to complete projects in other courses might be cheating, depending on the course policies.

4. Will I still learn classical programming in CS 124?
4. Will I still learn classical programming in CS 124?

Yes! Our weekly quizzes will continue to ensure that you learn how to write simple programs without AI assistance.

5. What if the AI generates bad code?
5. What if the AI generates bad code?

AI-generated code is often high quality, but you are still responsible for validating all the code in your project. We’ll teach you how to do that effectively, primarily through automated testing.

6. What if I want to work without AI?
6. What if I want to work without AI?

Starting in Spring 2026, AI coding agents are an expected part of completing the independent project. We will teach you how to use them effectively, and the project will be designed around AI-assisted development. You’ll still need to understand the AI-related concepts covered in lessons, as they may appear on quizzes. While you technically could try to complete the project without AI, the project scope is designed with the assumption that you’re using AI coding agents, making it significantly more challenging to complete without them.

7. Will using AI hurt my learning in future CS courses?
7. Will using AI hurt my learning in future CS courses?

That is definitely not our intention. Our 70% quiz weight should ensure you develop strong fundamentals. We learned from our Fall 2025 experience and adjusted our approach accordingly—the independent project is specifically designed to develop skills that complement traditional programming. CS 124 students have always succeeded in later courses, and we will continue to monitor this data carefully and make adjustments as appropriate. The programming skills tested in our AI-free quizzes directly prepare you for CS 128, CS 225, and beyond.

8. What if AI gives me code I don’t understand?
8. What if AI gives me code I don’t understand?

That’s expected when doing conversational programming! You’re responsible for validating that the code works correctly through automated testing, not for understanding every line. That said, AI is great at explaining its own code—just ask. Course tutors can also help you understand AI-generated code.

9. Can I use ChatGPT instead of the required tools?
9. Can I use ChatGPT instead of the required tools?

We require using Claude Code for the independent project, as it’s specifically designed for coding and significantly more capable than alternatives. While you technically could use ChatGPT for other work, you’ll likely struggle more and learn less effective practices.

10. Will AI replace programmers?
10. Will AI replace programmers?

AI is a powerful tool that makes programmers more productive, not obsolete. Someone still needs to understand problems, design solutions, verify correctness, and maintain systems. AI changes how we program, not whether we need programmers. Think of it like calculators didn’t replace mathematicians—they made them more capable.

11. What about AI hallucinations and mistakes?
11. What about AI hallucinations and mistakes?

AI coding agents have become remarkably capable, but they can still make mistakes or misunderstand your intent. That’s why we teach you to validate AI-generated code through automated testing—a valuable skill for industry, where you’ll regularly work with code written by others, whether human or AI.

12. Can I work with a human partner on the project?
12. Can I work with a human partner on the project?

No. Starting in Spring 2026, the independent project is an individual project where each student designs and builds their own unique Android app. You will work with AI coding agents, not human partners. In many ways, learning to prompt AI effectively prepares you better for providing clear specifications for humans to follow as well—a skill you’ll use throughout your career.