Transcript
MIT Prof. Explains AI-Assisted Programming: Part 2
From MIT CSAIL · Episode page · Watch on YouTube
· 11 min · 1,734 words · 16 timestamped sections
This is the full, timestamped transcript of "MIT Prof. Explains AI-Assisted Programming: Part 2", an episode of MIT CSAIL published October 15, 2025 (11 min, about 1,734 words). It mentions 6 people, works and ideas, including LINC, MIT, Cursor, Amazon, Google LLC.
What is discussed, and when
Notable quotes from "MIT Prof. Explains AI-Assisted Programming: Part 2"
And require a very high level of expertise in order to use them, which is why you really only see them used at, some of the largest companies like Amazon, or Microsoft, or…
about Amazon · atSo the question says, Your LINC framework combines LLMs with symbolic reasoning.
about LINC · atSo for example, there are research languages like Haskell, created by academics for researchers that are just beautiful in terms of the abstractions and the power that they provide.
about Haskell · atMost of the programming that I do on a regular basis, I use Cursor.
about Cursor · at
Who and what is mentioned in this episode?
Companies & orgs
- MIT — Company · Affiliation · 1 mention · first at
Collaborative institution in the development of the LINC framework.In collaboration with several of our colleagues here at MIT, I had a privilege of participating in this LINC project a couple of years ago where we explored, what happens if…
- Amazon — Company · Case study · 1 mention · first at
Mentioned as one of the largest companies using advanced programming tools. - Google LLC — Company · Case study · 1 mention · first at
Mentioned as one of the largest companies using advanced programming tools.And require a very high level of expertise in order to use them, which is why you really only see them used at, some of the largest companies like Amazon, or Microsoft, or…
Products & tech
- Cursor — Product · Tool · 1 mention · first at
An AI-assisted software engineering tool used for enhancing productivity.
Concepts & topics
Full transcript with timestamps
(graphics whooshing) So, let's look at the next question. "Large language models often generate code that looks right, but fails in practice. So, how do we make this systems more reliable?" So, this is actually a really good question because this is a question that the programming systems community has been working on actually with a fair bit of success over the last two decades. You know, I remember when I had my first laptop, I could never run it probably for more than a day without the machine crashing, right? And compared to that, the level of reliability that we have today in our computer systems is actually quite remarkable.
And a lot of it is due to techniques that we have developed over the years to analyze programs, to help find bugs and software, to help even identify certain kinds of security vulnerabilities. Now, the tools are not perfect, which is why we still have lots of buggy software. And they do have one major shortcoming, which is that they tend to be pretty hard to use and require a very high level of expertise in order to use them, which is why you really only see them used at, you know, some of the largest companies like Amazon, or Microsoft, or Google, and mostly, for those places where the stakes are very high, right?
Where you have the core infrastructure software, where the cost of an error is very high. I do think that one of the big open areas for research is how do we bring the benefits of many of these tools and many of these techniques that today are mostly restricted to the lab and to some of the largest companies, and how do we put them at the fingertips of everyday developers? I think that's going to be one of the really interesting stories in the next few years. And it could potentially lead to very dramatic improvements in software quality if we do it right.
Let's go on to our next question. This is again, a question about some research that my group has done in the last couple of years. So the question says, "Your LINC framework combines LLMs with symbolic reasoning. Is this hybrid path the key to safer, more trustworthy AI in programming?" Yes. So, a little bit of context. What is LINC? In collaboration with several of our colleagues here at MIT, I had a privilege of participating in this LINC project a couple of years ago where we explored, what happens if when a language model is dealing with a question that involves some detailed logical reasoning?
Instead of just outputting the question, it translates the question to a formal notation that can be given to an automated reasoning engine, that can then come back and produce a reliable answer and produce that answer. And this is part of a broader agenda that we have been pushing for some time around neuro-symbolic techniques that combine a lot of the very important benefits of neural networks with the kind of very precise symbolic reasoning that machines are very good at. In the context of programming, this is especially important because some of the properties of software that we really, really care about, such as the lack of security vulnerabilities, such as having very precise control over the behavior of the software, a lot of those things really require very detailed, logical reasoning.
And so, I think a lot of the energy that we're going to see in the near future is going to be into how do we get these language models and these AI tools that we have today to make better use of logic and symbolic reasoning in those cases where precision really, really matters. Let's take another question. "You've said that the core ethical challenge is ensuring machines do what we want and only what we want. How does that principle shape the future of AI programming?" I think this actually very tied to the question we had before around verification.
I do think that we have a responsibility to make sure that the software that we put out there in the world, that we actually have some confidence that it's going to do what we expect it to do. That it's not going to have these gaping security vulnerabilities that today leave a lot of people vulnerable to cyber criminals, to loss of their private data, and leave our whole infrastructure potentially vulnerable. And so, this is directly tied to this question of how do we make sure that the software we put out there is actually going to behave as we expect it to behave?
The big thing about software is that we do have a lot of tools to help us ensure that software does what we expect it to do. And so I think it is going to be, in many ways, society-wide choice that we have to make, to push for software quality to be a priority. To make sure that the software that is put out there in the world, actually is fit for purpose and it's going to do what we want it to do. So the next question is one that I actually get asked a lot. "Should students still learn programming the hard way or should education shift toward human-AI collaboration?"
So I think there's a couple of layers to this question. So there's no question that learning to program early on is hard, right? For many people, this is the first time they are encountering this need to describe something at this level of precision, and with the level of care that is required in order to get a program that actually works. To some extent, LLMs are going to be very helpful in helping students get through that early phase where nothing they program works and where it's very easy to get frustrated. However, once you get past that initial stage and once you're more proficient in the tools, I think a lot of the things that we teach today are things that are still going to be very, very important in the future.
How do you take a big, hard problem and decompose it in a way that allows you to solve every piece one at a time? How do you actually think through all the different contingencies and all the different things that can go wrong as users are using your software? How do you think about the software not just as an artifact that is trying to solve a problem now, but as an artifact that is going to have to survive potentially over decades and evolve as requirements? All of those are things that are still going to be very, very important for students to learn.
That said, of course it's going to be very important that students know how to think through this question using the most advanced tools and the tools that they are going to be using in their professional life. I don't think there is a tension, at least in the case of programming, between students learning how to use these tools but also learning the fundamentals. Next question. "What is your preferred programming language?" Oh, this is actually a hard question. I think it really depends on what you are trying to accomplish, right?
So for example, there are research languages like Haskell, created by academics for researchers that are just beautiful in terms of the abstractions and the power that they provide. But I probably wouldn't use them to create a new website, for example. People in the programming languages community tend to look down on JavaScript, for example, as a language that is full of holes and inconsistencies, and problems that programmers are constantly tripping over. And it is true, it has lots and lots of warts,. But it's also a really expressive language with remarkable infrastructure that actually allows you to build things very, very quickly and deploy them without a lot of hassle.
So I think the right language for your problem is going to depend on what you're trying to accomplish. I think the most important thing is for everybody to have a broad set of languages that they are familiar with and proficient with so that they can actually pick the best tool for the job.
And now we have our last question. "What are some AI-assisted software engineering tools you use to enhance productivity? And what are the optimal ways to use them without compromising your own learning?" So that's a really good question. Most of the programming that I do on a regular basis, I use Cursor. I also use ChatGPT. Both of them are very useful in their own way, and I find they are especially useful for some of the aspect of programming that I don't particularly like. For example, once you put all the functionality into a function, writing all the little checks to say, "Oh, make sure the input is correct and make sure you're throwing the right error message when this happens," right?
These tools are actually amazing for things like that. They're also really, really good, for example, when running experiments, in helping you build a lot of the scaffolding that is required to run experiments, and collect data, and even plot that data. So I do think that one of the things that is important as you work with these tools more on a regular basis is building that intuition about what are the kind of problems that you can easily delegate to the tool and will usually do a good job at, and what are the things where you shouldn't even bother, right?
Where you're just better off focusing and taking out your pencil and paper and thinking clearly through what you're trying to do, and then just writing the code yourself. And that intuition is not going to be set in stone. The tools are evolving quite rapidly. But I do think that maintaining that internal mental model of what you can delegate and what you have to do for yourself is really important in using these tools productively. And so these are all the questions that I have today. I hope you had a good time. I certainly enjoyed answering all your questions, and I look forward to being here again.
Questions about this episode
What is discussed in "MIT Prof. Explains AI-Assisted Programming: Part 2"?
In order: 0:00 LINC, MIT, Amazon, Google LLC; 6:00 Haskell; 9:00 Cursor.
What is mentioned in this MIT CSAIL episode?
6 people, works and ideas are mentioned, including LINC, MIT, Cursor, Amazon, Google LLC, Haskell. Each one on this page links to its own page with every episode that mentions it.
How long is "MIT Prof. Explains AI-Assisted Programming: Part 2"?
The episode runs 11 min; the transcript is about 1,734 words in 16 timestamped sections.
More from MIT CSAIL
About this transcript: the episode's spoken words as captioned on YouTube, split into timestamped sections. Reclip.Me locates every person, work and idea in the text, keeps the time it is first named, and quotes the words around it verbatim. Last updated January 24, 2026.