Software development is changing rapidly due to the incredible capabilities of generative AI. CS 124 is embracing AI coding agents to ensure you are prepared 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—authoring programs using traditional high-level languages—to Software 3.0—working with generative AI using human-language prompting: (The talk begins with the discussion of the evolution from Software 1.0 to Software 3.0, but some students may enjoy watching the entire presentation.)
Why are we embracing AI? The main reason is simple: This is the future of software development. We’re preparing you today for the programming of tomorrow.
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 you how to use them effectively would be wrong. Employers expect you 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 you can complete fun and high-impact independent projects along the way for yourself and others.
In addition, after we began allowing AI usage on the project several semesters ago (see below), we noticed students using AI badly. There are better and worse models for coding, and better and worse ways to work with them on programming projects. Using bad models badly is not only frustrating—it also gives you an incorrect impression of what these tools can do. Effective collaboration with AI is a skill like any other skill—it must be learned and we will teach you.
Starting in Fall 2025, CS 124 will begin introducing students to how to use the most capable AI programming tools: coding agents.
AI agents move past interactive prompting like ChatGPT—which many of you are probably familiar with—and allows AI to understand and update source code directly, with configurable engagement with the human user. Note that we are not going to teach you “vibe coding”, although we would support students experimenting with this completely hands-off approach on their own independent projects. AI agents are tremendously powerful and capable, but we’re going to learn how to keep that power under control. 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 Fall 2025, the lessons and video instructions for the project will demonstrate how to use coding agents to complete portions of the project. We’ll discuss effective prompting strategies, understanding AI-generated changes, AI-generated code quality, test-driven development patterns, and how to redirect AI when it gets off track.
As an example: Previously we’ve had students implement basic sorting and searching features in the app. We provided a written specification: e.g., “first identify if there are whole-word matches, then sort the result by the number of times the search term appears”. Students translated that into code. Going forward, we will not provide a written specification, instead providing a video demo or other explanation more akin to what you might receive from a senior developer or customer. Students will be expected to translate that into a clear prompt to the AI agent, and then allow the agent to write the code. Students may also be expected to write test cases to both guide the agent and allow it to check its work.
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’ll teach you to harness AI’s power effectively.
Having access to a computer-based testing facility puts CS 124 in the unique position of being able to teach both programming fundamentals and how to effectively work with generative AI.
Because AI represents a multiplier, it is still critical that users develop and maintain programming abilities. CS 124 will continue to do this 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 programming fundamentals.
CS 124 will only be teaching AI-supported programming on the longer multi-part Android app programming project. Since Fall 2024 we have allowed students to collaborate with AI on this project, and we have not seen significant negative affects from this experiment: Course grades have remained stable, and students using AI do similarly on the project to students who choose to work independently or collaborate with a human partner. However, as we have observed students using AI, we have seen many instances of students using AI badly, which we will address with instruction focused on effective AI usage.
Initially we’ll be using a project similar to the one assigned in previous semesters, but with a few strategic adjustments made to accommodate AI usage. However, we anticipate that soon we will be able to expect students to do more with AI support, potentially even designing and implementing their own bespoke Android app from scratch.
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 encourage CS 124 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. 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!
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.
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.
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.)
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.
Yes! Our weekly quizzes will continue to ensure that you learn how to write simple programs without AI assistance.
Part of what we’ll teach is how to review AI-generated code critically. You remain responsible for understanding and verifying any code the AI produces. We’ll discuss common AI mistakes and how to catch them.
While we encourage learning to work with AI as it’s an important industry skill, you may complete the MP independently if you prefer. However, you’ll still need to understand the AI-related concepts covered in lessons, as they may appear on quizzes. And keep in mind that the difficulty of the MP will be adjusted under the assumption that students are using AI coding supports, making it more challenging to complete without them.
That is definitely not our intention. Our 70% quiz weight should ensure you develop strong fundamentals. CS 124 students have always succeeded in later courses, and we have and 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.
Never submit code you don’t understand! Part of working with AI is knowing when to ask it to explain, simplify, or try a different approach. We’ll teach you how to prompt for explanations and how to verify your understanding. Course tutors can help you understand AI-generated code, but won’t fix it for you.
We strongly recommend using the tools we teach (Claude Code, Junie, etc.) as they’re specifically designed for coding and significantly more capable. While you technically could use ChatGPT, you’ll likely struggle more and learn less effective practices.
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.
AI regularly makes mistakes—that’s why understanding code remains critical! We’ll teach you common AI error patterns and how to catch them through testing and code review. This is actually a valuable skill for industry, where you’ll often review code from both humans and AI.
We’ll see. In many ways, prompting AI prepares you better for providing clear specifications for a human to follow. Given that we are moving to a model where AI usage is expected, we may eliminate the option to collaborate with a human partner.