In short
David J. Malan, Harvard CS50 professor, explains how CS50 evolved into a world-class online course, why “lecturing well” matters, how CS50 uses theatrical “memorable moments,” and how AI affects cheating, enrollment, and learning. He argues engineers must understand underlying layers even if they won’t always use specific tools.
Guest backgrounds
David J. Malan is a Harvard professor and the long-time face of CS50. He first took CS50 in 1996 as a Harvard sophomore taught by Brian Kernighan (and later taught at Harvard Extension School before returning for a Ph.D. and taking over CS50).
Key claims
CS50’s online success grew organically (Extension School, iPod-era distribution, podcasting). Long lectures work because students can pause/rewind/search, and because CS50 optimizes for memorable moments rather than bite-sized clips. AI hasn’t increased detected cheating much, but it makes cases harder to “prove” (no single smoking-gun URL). Programming won’t be useless; AI will shift work toward higher-level problem solving.
Notable examples
tearing a phone book to demonstrate binary search; students physically sorting “gym lockers” to model searching/sorting; CS50’s “virtual rubber duck” (cs50.ai) to scaffold rather than autocomplete; C as a foundation language; students building hash tables by week five.
Written by AI. May contain mistakes. Listen to the episode to check what was said.
Chapters
Tap a time to open that second in VOUnderstanding Engagement in Lectures
0:46 to 2:18
David discusses the challenges of keeping students engaged during long lectures.
“You posted this photo of your first assignment in CS50, not as the teacher, but as the student, actually, under Brian Kernahan.”
David's Journey in Computer Science
2:19 to 5:25
David shares his personal experience transitioning from student to teacher at Harvard.
“So I felt like that was a sign that I'm supposed to study computer science.”
The Evolution of CS50
5:26 to 7:58
David details the evolution of CS50 from a traditional class to an online format.
“But it was really, it happened very organically.”
Challenges of Online Content Creation
7:59 to 10:23
Discussion on the implications of creating educational content for a digital audience.
“But at the end of the day, what people are paying for is the additional support structure you get in a more traditional environment, the more traditional credentialing, the transcript and the credit and so forth.”
Creating Memorable Moments in Lectures
10:24 to 13:31
David discusses strategies to create memorable and engaging moments in lectures.
“I think we'd prefer that they meet us halfway.”
Theatricality vs. Depth in Computer Science Education
13:32 to 14:01
Exploration of the balance between engaging theatrics and deep understanding in lectures.
“But that is very much to engage any learner present or remote, as opposed to being optimized for some technology.”
Balancing Theatricality and Density in Education
14:01 to 14:40
Learn how to balance engaging teaching methods with necessary content depth.
“Do you feel like there's any trade-off there?”
The Importance of Energy in Lecturing
14:41 to 15:55
Discover the significance of engaging delivery in effective teaching.
“to help them see sort of the forest for the trees, like what is actually important and meaningful and fun about this because it's probably not the keystrokes and the debugging and the lower level implementation details.”
Inefficiencies in Education and Resource Sharing
15:56 to 17:53
Explore the need for collaboration among educational institutions to reduce redundancies.
“Like no one wants to be in that situation.”
Optimizing Computer Science Education
17:54 to 20:46
Understand the potential benefits of leveraging shared resources in CS curricula.
“Yeah, that's a good question, since I think our own goal is certainly not to put out of business other educators, other classes.”
Show all 27 chapters
Choosing C in Computer Science Curriculum
20:47 to 26:25
Learn why C is an essential language for foundational computer science education.
“The mindset that you said, the computer scientist mindset of getting rid of the redundancies and kind of consolidating resources.”
Understanding the Full Stack
26:26 to 28:00
Understand the necessity of foundational knowledge for full stack engineers.
“For instance, the CLU programming language is spelled all caps CLU, not CLU.”
Core Programming Languages in CS50
28:00 to 29:20
Learn about the relevance of various programming languages in computer science education.
“So I think the better formulation isn't that you don't need to know these things, but rather you won't need to use these things, use in a literal sense.”
Introducing AI Concepts in CS50
29:20 to 30:50
Discover how CS50 incorporates artificial intelligence into its curriculum.
“But the knowledge and the principles that we extract from those implementation details are incredibly valuable.”
The Role of AI in Student Learning
30:50 to 32:50
Examine the impact of AI tools on student learning outcomes in computer science.
“And three, prepare them to use these tools more effectively by the end of the semester.”
Academic Dishonesty and AI Tools
32:50 to 34:50
Explore concerns regarding academic dishonesty in the age of AI and how it's addressed.
“that leads you to the solution but certainly doesn't autocomplete your whole way through it.”
Navigating the Future of Programming
34:50 to 37:40
Understand the evolving landscape of programming and its implications for students.
“Statistically, we are not catching more.”
Enrollment Trends and AI's Influence
37:40 to 42:09
Analyze how artificial intelligence is affecting enrollment rates in computer science courses.
“They're generating code that is superhuman in many cases.”
The Impact of AI on Computer Science Enrollment
42:09 to 44:28
Learn how AI is influencing student interest and enrollment in computer science programs.
“Like all of that is valuable, whether or not we have robots doing work for us in our future, I think.”
In-Person vs. Online Learning: The Harvard Case
44:28 to 46:35
Explore the differences and values of in-person versus online education.
“So I'm curious your thoughts on going to college versus getting the world-class education for free.”
Teaching Difficult Concepts: Strategies and Tips
46:35 to 48:45
Discover effective methods for teaching challenging concepts in computer science.
“So much so that I'm always very weirdly excited to tell students in class nowadays that I still remember where I was on campus the day I finally got pointers.”
Growth Mindset in Learning Computer Science
50:02 to 54:21
Understand the importance of perseverance and finding the right instructional fit.
“For people who struggle, I mean, this idea of growth mindset versus you're kind of born with some innate talent And you've seen so many students that I feel like you probably have a perspective on this.”
Future of CS50: Evolution and Expansion
54:21 to 56:00
Gain insights into the future direction and evolution of the CS50 course.
“okay, let's say I'm a parent and I'm deciding, should I put my high schooler in the Khan Academy learning track of math or what you plan to offer?”
Exploring Learning Beyond CS
56:00 to 57:48
David reflects on his educational journey and lessons learned.
“And I finally understood aspects of English and Spanish retroactively that I never really had mastered when taking those same classes.”
Insights from GitHub Experience
57:48 to 59:17
David shares his experiences interning at GitHub and its impact on his perspective.
“It wasn't, I don't think I contributed code.”
Reflections on CS50 Course Success
59:17 to 1:01:40
Discussion on the evolution of CS50 and its broader impact on students.
“My favorite book is Hitchhiker's Guide to the Galaxy.”
Advice for Young Professionals
1:01:40 to 1:02:47
David offers advice on exploring career opportunities and experiences.
“That said, not sure I would have gotten the job if I had wandered off campus at that point.”
Transcript
Automatic transcript. May contain errors.0:00David J Malan:I don't want to get into a whole internet fight here, but... This is David Malan. He's a Harvard professor famous for transforming CS50 into a world-class online computer science course. How do you keep people engaged for a three-hour lecture? I think a lot of it honestly comes from a place of insecurity. Like, I really don't want to be the one on stage in front of a bored audience. I'm curious what you would say to someone that has that mindset that you don't need to actually know how the computer works. If you're going to call yourself an engineer, you should be understanding everything that's happening among those layers.
0:34We also discuss how AI is impacting cheating and enrollment.
0:38David J Malan:It's harder for us now to hand to the administrative board of Harvard or the Honor Council, so to speak, a smoking gun. Maybe programming will be useless in the future. Here's the full episode.
0:56You posted this photo of your first assignment in CS50, not as the teacher, but as the student, actually, under Brian Kernahan. What was your experience like getting into computer science?
1:09David J Malan:Yeah, it's a really good question. So I was, that problem set, my first Hello World program was in September of 1996 when I first stepped foot in a class called CS50. I was a sophomore at the time and hadn't honestly gotten up the nerve until sophomore year to even consider taking the class. Like when I came into college first year, and this is a story I tell at the very start of CS50 most years, I really gravitated toward fields that were more familiar, more comfortable for me. And I share with students that I really liked constitutional law. Like that was my favorite class in high school. And I figured that meant when you get to college, I should probably major or concentrate, as we say at Harvard, in government.
1:47David J Malan:And so for the first year, year and a half, I was heads down focused on studying government. But when I finally got up the nerve to follow some friends, I think, into the CS50 classroom that day, when this very well-reputed computer scientist, Brian Carnahan, was at the helm for just that one year, I was totally hooked. And it was the first time in like 19 years that homework was fun, so much so that when the week's problem sets or assignments would come out, But I would look forward to going back to my dorm on Friday evenings to work through the night on my CS50 problem sets. So I felt like that was a sign that I'm supposed to study computer science.
2:22And I saw on that assignment, it says minus two. And there's a little note there that I actually couldn't quite make out. Do you, looking back now as the teacher, like, why did you get a minus two there?
2:35David J Malan:It was something stupid and very easily redressable. But I did not start off computer science or CS50 on the best foot. but I got minus two out of probably two points on Hello World. What was the story behind you going from a student to the teacher eventually? I had an opportunity my senior year of college to teach an introductory course in computer science at Harvard's Extension School, which is the continuing ed program largely for adults. The course was literally called Introduction to Computers and the Internet, because in 1999 we were still in the habit of introducing people to computers and the Internet, as opposed to taking it for granted more so nowadays.
3:09David J Malan:And it was me in a room full of 100 or so adults. I was easily the youngest person in the room at like 21 years old. The story I usually share is that that was the first and last time I wore suspenders because I was so determined to project being older, even though I was still just a senior. But that really whet my appetite in turn, not only for more computer science, even though that was very introductory and more technology focused for teaching. And over time, over the next few years, I realized that doors would be closed to me if I wanted to teach at a place like Harvard College. And I eventually returned to Harvard to do my Ph.D.
3:45David J Malan:for five years in computer science. And then in 2007, when I was finishing up, the former professor, my own advisor, was moving on to be dean of the school. And so there was this vacancy at the helm of CS50. And I somehow talked my way into the job. They were interested in having a senior faculty member take over the course. I guess they weren't able to find someone that first year. So I was meant to fill in for just one year until they found someone else. And that was somehow 19 years ago. When you took over CS50, it feels like the course completely changed. When you got into it, was your first thought, I want to take this online and kind of make all these major changes?
4:26Or was that a process over time? Very much a process.
4:30David J Malan:And so what people see now is really a evolution of the class as opposed to some overnight revolution, so to speak. The online aspect really started with Harvard Extension School since I was fortunate, right place, right time, to be teaching that Extension School course my senior year when distance education, so to speak, was becoming a thing. And my mentor and boss, Henry Leitner at Harvard, offered me the opportunity not only to teach this class, but also to put it online, I think, in the year 2000, give or take. The very first year I taught at spring of 1999, we were still filming the class, but on VHS.
5:04David J Malan:And fun fact, at the time, it was the course's teaching fellows who were, in fact, my friends, who were also undergraduates at the time, who were doing the filming and operating a tripod with a camera. And I swear to God, we still have footage probably on some VHS tape of one of the cameras going when one of my dear friends and teaching fellows fell asleep during the middle of class. So we've aspired to higher production value since. But it was really, it happened very organically. So once we started participating in the Extension School's online education program for several years, Apple released the iPod around 2003 or 2004, give or take.
5:40David J Malan:And so at the time we were distributing the course's videos via real video and or real audio, which are older technologies now, but were state of the art for streaming at the time. We figured out a way how to sort of download all of those bits for redistribution as MP3s initially and put them on iTunes, which back in the day you could upload and maybe still today your own RSS file, which is a flavor of XML, which is kind of similar to HTML, but more custom. that just describes what and where your audio files are. And we made this available primarily for our own Harvard Extension School students because at the time, even though it was very progressive to have streaming, it was a little annoying that you needed a constant internet connection.
6:19David J Malan:The buffering hadn't really been invented yet. Certainly downloading those videos was by design not possible. But with podcasting, of course, you could download the assets in advance. And for our own students, the vision was that they could listen to the class only on audio at the gym or during their commute and just generally make the educational content a little more accessible. A year or two later, Apple released the video iPod, and so we very much steered into that and downloaded those same assets but in video form to make them available on the video iPod and people's Macs and later PCs. And we were fortunate around that time, early 2000s, where Wired Magazine took notice and noted for us that we were among the most popular podcasts in some category, and it was kind of news to us that people cared.
7:01David J Malan:We did know that we were starting to see bandwidth problems. In the very early days, we were using DreamHost to host the MP3 files. And DreamHost had, I think, free accounts, but only up to some number of megabytes per month. And we kept hitting the threshold. And so what we would do is sign up for another DreamHost account, another DreamHost account, another DreamHost account. And we would use like DNS trickery to just reroute the URLs in the RSS file to the new web post to keep up. And so that's when all of our attention sort of was drawn to the possibilities and that we can make available this content not just for our own students, but for anyone else who either geographically, socioeconomically couldn't access that same kind of class.
7:44I see. So the idea was it was a supplementary material for people who had paid for the Harvard Extension School. But other people just open on the Internet could listen if they wanted. Yeah.
7:58David J Malan:And that alone was a touchy subject on campus at first, because here we were giving away the very thing that other people were paying for. But at the end of the day, what people are paying for is the additional support structure you get in a more traditional environment, the more traditional credentialing, the transcript and the credit and so forth. But the knowledge itself, it does society no good to withhold that, I think. So I think this is a brutal reality of making content on the internet. There's so much competition for attention that all the content has to kind of hook people. Let's say you're scrolling on Instagram, that first seconds really got to capture someone, otherwise you're going to go to the next one.
8:35And I'm curious because you are making content for the internet with these lectures that you post online. Do you think about how can I, you know, hook the audience? Does that ever factor into your lecture design?
8:50David J Malan:Lectures, no. Some of our social content, yes, insofar as we are producing, in addition to the course's traditional in-classroom content, things that are designed clearly for social media, whether it's interviews, for instance, whether it is excerpts from CS50's fair, this exhibition of final projects, whether it's steering in the directions of some popular meme just to sort of catch the attention of our own students or new students. But we have been very deliberate over the years from the beginning and especially since the age of the MOOC in 2012 when Coursera and edX and other platforms were coming around to not steer into this bite-sized three-minute, five -minute chunks that I know there is data to confirm that it drives engagement but not necessarily educational outcomes.
9:37David J Malan:We have fairly unusually in recent years stuck to the more traditional model of like CS50's lectures are like three hours long. And there are downsides to that, absolutely. But ironically, online, you avoid some of the in-person downsides because you can pause and rewind and fast forward. You can search for something, open another tab, go down this intellectual rabbit hole or rewind to figure out what some detail you missed. I mean, I can't even count how many times in college, high school, school more generally that I'm sure I zoned out. and it's too often the case that if you miss some detail, you're now, you might as well leave the class at that point.
10:12And like online solves that for you.
10:15David J Malan:And I haven't seen a need pedagogically for us to break up the content into such small pieces and to sort of take that ownership away from the students. I think we'd prefer that they meet us halfway. And if you need to take more than three hours to watch the lecture, that's totally fine, but it's not designed for scrolling type consumption, I would say. Right. What about in the idea of like a long video, there's still this concept that you kind of want to keep people engaged. And so how do you keep people engaged for a three-hour lecture? Yes. So that we are very conscious of and the way we've generally described that is trying to create memorable moments.
10:52David J Malan:And this is not for social media. This is as much for the in-person audience as it is for the online audience. And by memorable moments, I mean, in like CSSD's first lecture, we do this bit where I'll tear a phone book in half to demonstrate the performance of something called binary search, an algorithm for finding information more quickly than linearly searching the phone book one page at a time. And that's really just to be dramatic. It has less and less impact these days because most students of school age are no longer familiar with the technology known as a phone book, but it's literally analogous to the digital form in iOS or in Android, of course.
11:26David J Malan:And so it doesn't take a huge leap for someone to realize, okay, this is the physical incarnation of that. And it's just kind of fun, even though it's getting harder and harder to find the actual phone books. When we get to searching algorithms and sorting algorithms, we very often have a student come up on stage, for instance. And for searching, we have a whole bunch of gym lockers, small versions thereof that we put numbers in, either on printed paper or little plastic numbers. And the goal is to have a student find the number 50 or some other number that we've hidden behind the doors. And it's an opportunity just to talk about either searching the doors linearly, left to right, right to left, maybe randomly, maybe more methodically as via binary search if the numbers are sorted.
12:04David J Malan:That then leads us to opportunities to talk about bubble sorts and selection sort and insertion sorts, algorithms that you probably wouldn't bother implementing or using in the wild because there's more performant ones certainly. But we use them as these pedagogical tools to explore the problem to be solved, which is, all right, I can only use binary search if the data is sorted. So how do I sort it? And how expensive is that going to be to make worthwhile the whole process in the get-go? And so we'll have eight students come up on stage and sort themselves physically and really perform in certain ways.
12:35David J Malan:And there's so many examples of that through CS50. We try to do at least one such thing every class. I mean, not unlike the way John Oliver, for instance, ends last week tonight. We're trying to do some big song and dance, which ironically is always at the end as the hook. We do try to put it maybe toward the beginning of lecture or in the middle. But that's not just for engagement and not to keep folks' attention, but really to latch onto their memories so that even if you're in the weeds of this introductory computer science course, there's so much new information, it's the proverbial fire hose hitting you in the face, you can cling to, okay, all right, I remember like my roommate was literally the one on stage acting out bubble sort and you can kind of picture in your mind's eye what was happening or that phone book example is a perfect one that years after leaving Harvard, we have alumni coming up to us and saying, oh, I still remember the phone book demo and those memorable moments, ideally theatrical in nature, I think are what brings material, whether it's CS or something else to life.
13:32David J Malan:But that is very much to engage any learner present or remote, as opposed to being optimized for some technology. One thing that I wonder, because computer science is such a dense topic, where I guess there could be a trade-off with, imagine another style of lecture is, you know, there's a chalkboard, and you're up there kind of blandly writing out all of the information. I could imagine you could go through much more depth in that case. Do you feel like there's any trade-off there? Absolutely. I mean, this is a criticism we get from some students, particularly those with prior background or among those more comfortable, where do we really need 10 minutes on linear search or, you know, another 15 minutes on binary search?
14:19David J Malan:And the answer is quite clearly no for those students. And even for most students, I would say we do spend a disproportionate amount of time on certain cherry pick topics that we do think lend themselves to this theatricality for really getting students interested in fundamentally and excited by the material to help motivate them the rest of the week when they're going to be spending 5, 10, 15, 20 plus hours on some week's assignment and to help them see sort of the forest for the trees, like what is actually important and meaningful and fun about this because it's probably not the keystrokes and the debugging and the lower level implementation details.
14:55David J Malan:So we talk about this actually in a paper, in a talk we gave at a CS education conference a few years back, trying to find that balance between the theatricality and the density of material. But to your question about dryness, I mean, I would like to think that dryness really has no place in most forms of education because, you know, then it could have been a book or it could have been an email. Like if it's just someone reciting words or worse, writing things down in ways that aren't at all interactive, like, do we really need to be all in this room together? Like that doesn't seem like the best design to me.
15:30In my research and looking at the reception of CS50 and people's perspective on how you are as an educator, they absolutely love your energy and like your delivery. Do you rehearse that? Or is that something that you always had as an educator? Yeah, I think it's just sort of the expression,
15:49David J Malan:you got to bring your A game when you get up onto stage. And I think a lot of it honestly comes from a place of insecurity. Like I really don't want to be the one on stage in front of a bored audience. Like no one wants to be in that situation. And so I think a lot of the energy that I try to bring to bear and the excitement I show is really meant to one, make sure people want to be and stay there for the duration of the class, whether it's short or long, and also help them see the excitement in and the possibilities of and the applicability of a field that I myself have fell in love with so many years ago.
16:22David J Malan:Because then they can decide for themselves if they feel that same emotion, if they too look forward to going home to their dorm or their home on Friday nights and working on programming assignments of all things. But I feel like we certainly owe them, and I think teachers owe students more generally, educationally, the opportunity to make that decision for themselves and to put forward our best foot or to present the field in the most exciting, inspiring way that we can, if indeed we think it's important that other people after us study and research and apply these fields. I noticed this dichotomy in education when I was going to UCLA, which was there were roughly two types of professors that I had.
17:06There was one type of professor that was beloved by the students and really passionate at educating and kind of involved. And then there's this other type of professor, which was really, they might have been really incredible and impressive as researchers, but their classes were really poorly rated by all the students and with the online education that we can do to i mean like cs50 all the resources are available i could imagine that objectively we could take the people who are most passionate about teaching and give it to everyone rather than having some teachers that are not excited kind of consolidate take imagine taking the world's best instructor and giving that to everyone why doesn't consolidation happen if we have all the technology for spreading literally the world's best resources to every situation?
17:57Yeah, that's a good question, since I think our own goal is
18:01David J Malan:certainly not to put out of business other educators, other classes. However, as a computer scientist, I would be among the first to notice that there's a huge inefficiency in the way education broadly works, not only in this country, but presumably internationally as well, whereby you have hundreds, thousands of teachers essentially all doing the same thing in parallel and not necessarily the meaningful part of interacting with and uplifting and mentoring students, but like preparing their presentations or their lecture notes or writing the assignments or grading that work. There's so much meta work involved in education that probably doesn't need to be borne by so many people that the computer scientist in me invariably wants to factor that out somehow.
18:42David J Malan:And so I absolutely think that we educationally as universities, as schools should be leaning on each other much more. I'd like to think that's a lot of what drives us in terms of CS50's own mission and the work that we do. But we too have encountered frictions along the way. It was very unusual, for instance, for 10 years that we were collaborating with our friends down the road in New Haven at Yale University, where we were offering CS50 on both campuses in parallel. And more recently, we've been doing this with some of our friends at Oxford and the Lifelong Learning Group there. This is very much still the exception to the rule.
19:14David J Malan:Unfortunately, even after 10 plus years of MOOCs, massive open online courses, I dare say a lot of institutions, a lot of faculty are very set in their ways. In fact, one of my regrets of the COVID era was that we had this unprecedented opportunity now, an almost mandate to move everything online, and we therefore had this opportunity to say, hey, to Harvard students, why don't you take this Stanford course or this UCLA course or this Yale course or this MIT course that you couldn't necessarily take in person for lack of transport or for lack of safety at the time? and I could get no one on campus to get on board with this idea of maybe offering one computer science course on this campus and let the other students take it.
19:58David J Malan:Then you offer, as we did at Yale, like a digital humanities class on some other campus and let the Harvard students take it. And there's just not much of an appetite, I dare say, in higher education, if not education writ large, for that resource sharing. And I think there should be. I don't think there should be one computer science course, introductory course. I think some healthy competition is a good thing. I don't think there need to be thousands, probably not hundreds, maybe dozens from some of the best teachers, the best schools would probably benefit us all. If those same teachers then were not put out of work, but then could lean on each other, use some of the materials we've created, adopt, or as we say, adapt some of our own resources and treat education as a buffet of educational materials that you can then make your own without having to do so much of the same legwork and reinventing wheels across school and state lines.
20:48The mindset that you said, the computer scientist mindset of getting rid of the redundancies and kind of consolidating resources. I mean, it's immediately logically obvious to me, but what would like, let's say there's three top courses in America. There's like MIT's, there's Stanford's, and there's Harvard's, and you know, they want to give that to other institutions like, I don't know, other colleges. What would stop those colleges from taking an objectively better set of resources and giving that to their students?
Read the full transcript
21:25David J Malan:I sense, but I would defer to others who hold these views, that there is a concern that maybe we are putting ourselves out of business or there's more of a school pride. And I definitely saw some of that on Harvard's own campus where they're like, no, no, no, no. We should be offering courses to our students that we have created and that we are teaching and not lean, for instance, on our friends down the road at MIT who have and have for decades had a larger, richer course catalog than us simply by nature of being a bigger place, at least for computer science. And it seems silly to me not to lean on each other.
21:59David J Malan:Maybe each of us can specialize a bit more. Maybe each of us can offer slightly different modes of instruction for students. Maybe that's a little more intimate on this campus versus that. So as to really leverage shared resources, I mean, this is done endlessly in research, having cross-campus collaborations. and there's something very personal about or very fundamentally threatening, I think, about leaning on each other educationally. And I wish people would move away from this mindset because it doesn't mean some failure of the institution to offer these courses. It means we can do a better job offering what resources we do have, I would like to think.
22:38In designing the curriculum for CS50, how did you pick C, for instance? Because I think a lot of people would look at that decision and think, I'm not going to use C in my day-to-day full-stack job, so why do I need to learn this?
22:51David J Malan:Sure. So it was not picked by me per se, but I chose to keep C in the course, certainly, since as far back as 1996 when Brian was teaching it, Professor Margot Seltzer before that, and many other faculty prior to me and them. it is a wonderful foundation on which to build your understanding of how a computer works and how software is built it's about as close as you can get to the hardware before things devolve at least aesthetically into assembly code which is much scarier looking code i think for most people almost everyone perhaps and certainly beyond that is zeros and ones which is not going to be fun for anyone.
23:31David J Malan:So C kind of strikes, I think, pedagogically this really nice balance of having English-like syntax and abstractions on top of lower-level primitives that allow you to explore procedural programming, in particular, with some constructs that are now fundamental to those kinds of languages, loops and conditions and functions and variables and return values and so forth. It's sort of got everything, but it's also a pretty small language. And unless you download third-party stuff, there's not a very large standard library, in fact. So most anything you want, you need to build yourself. And so we leverage this significantly in CS50, so much so that by mid-semester in week five of the class, students are building their own hash tables.
24:12David J Malan:And we're talking about how you could construct singly-linked, doubly-linked lists, hash tables and tries, trees, abstract data types like stacks and queues and so many more. And what I think is especially meaningful about C is that you can't just instantiate one of those data structures if you want one like you can in Java and C++ with STL and certain other libraries. Like if you want it, you're going to have to build it yourself. And I think that alone is a good educational exercise, not because you're going to need to build that thing again, but because there's value, I think, in really understanding from the bottom up what is going on inside of that device so that one, you can make more informed decisions as to how you want to engineer and design your own data structures down the line.
24:52David J Malan:Two, you can diagnose problems by reasoning through first principles, what could possibly go wrong because you understand how the data is being stored and what the algorithms are that are performing on that data. And three, it's a wonderful scaffold to higher level languages because one of my favorite things from week five to six in CS50 is students go from having written in week five, like their own hash tables implementation for adding data, retrieving data, and so forth, which is like this many lines of code for some font size. And it gets whittled down in week six to one line where you just instantiate a Python dictionary.
25:31David J Malan:And you can be productive with a dictionary. And many courses do teach programming by way of Python alone. And we too have done it for some of our audiences. But you really never get around to understanding what's going on underneath the hood. And our goal in CS50 among them is not to output programmers, but engineers and educated citizens and folks who really understand from first principles how technology works. And so C, for instance, strikes, I think, just that right balance. And for those students who want to go even deeper in a systems class, they can go learn about assembly and compilers and so forth.
26:04David J Malan:But those students who want to go on to web programming or data science stuff or AI nowadays can just build on top of the C and then in turn Python layers that we use in the class. For this podcast, I produce transcripts for every episode for convenient skimming, and I built a custom tool to automate that. Recently, I noticed in the Barbara Liskov transcript, my simple speech-to-text tool was getting a lot of things wrong. For instance, the CLU programming language is spelled all caps CLU, not CLU. So to fix this, I used cursor 3, picked the strongest version of Opus 4.7 extra high, and had an agent make a plan to fix that.
26:43And while I was waiting, I figured I'd trigger a few more agents for code cleanups and front-end improvements. It generated a reasonable plan with rich system diagrams. It applied all the changes within minutes and worked on the first try. So if you want to build something with the flexibility of sending off a bunch of agents with frontier models of your choice, you can go to cursor.com to try out Cursor 3. This is not my perspective, but I was doing research and I saw a YouTube video. said whatever you do don't take cs50 clickbait whatever okay yeah so i watched the video and the person so it worked yeah it got me it got me and the perspective of the author of this video was that cs50 teaches you all the stuff that you don't really need to know if you were like a full stack engineer or something like if you if i was just going into the industry and i'm just making web apps that a lot of this underlying stuff you you might not need and maybe it's not a good use of time.
27:42And I'm curious what you would say to someone that has that mindset that you don't need to actually know how the computer works.
27:50David J Malan:I don't want to get into a whole internet fight here, but I think that is absolutely the wrong mindset, certainly for a full stack engineer. I mean, by definition of full stack, you should be understanding everything that's happening among those layers. So I think the better formulation isn't that you don't need to know these things, but rather you won't need to use these things, use in a literal sense. Like, I don't, my, C is a very popular language, even according to some rankings each year, it's, you know, the number one, number two language in terms of its omnipresence still to this day, because it's very highly performant, albeit more challenging to write than some languages.
28:26David J Malan:I only use C for five weeks during CS50 itself, but that doesn't mean that it hasn't helped me understand higher level languages, what is going on inside of a system, how you can improve the performance of or the design of some system by understanding, again, those first principles. I don't use Scratch except for one week out of the year. I do use Python more frequently, and I use JavaScript and some HTML and CSS. But I think if you're going to call yourself an engineer, you should absolutely have mastery of and knowledge of those underlying building blocks If you want to not just output something that, frankly, AI could output nowadays, but you can understand and you can create the next thing or the solution to some other problem that we haven't even yet solved.
29:12David J Malan:I think that's the better mindset to appreciate, yes, I'm not going to need to use Scratch or C or maybe some of the other things we touch on in CS50. But the knowledge and the principles that we extract from those implementation details are incredibly valuable. if you want to be an engineer and not just say a coder which is a distinction that some folks might make i was looking at the syllabus and there's c obviously and there's all the i mean you know basic data structures those types of things bread and butter and then in the end of the course there's a week on artificial intelligence which i was surprised to see in an intro course because it's kind of like there's no way that you could teach AI in a week.
29:56So I'm assuming it's a more high level introduction.
30:00David J Malan:It is. It's only for an hour. And it technically, temporarily, it's offered in the middle of the semester for the on-campus students. It coincides by design with family weekend when first years and juniors, students, parents come to town very frequently. And so we do it as a very broad introduction to what everyone is talking about nowadays in the AI space. There are full-fledged classes, of course, at Harvard and other institutions that students can take, and it's really meant to whet their appetite but also give them some context for the very tools we're using in CS50. We have this virtual rubber duck that's built on top of OpenAI's APIs and Microsoft Azure's API service that they're using every day or every week, certainly throughout CS50.
30:40David J Malan:So among the goals pedagogically is to help them understand how do the tools work that you yourself have been using. Two, to help them understand what is it that the world is talking about nowadays. And three, prepare them to use these tools more effectively by the end of the semester. Because, for instance, for CS50's final project, students are encouraged and welcome to use Claude or ChatGPT or Gemini or any number of off-the-shelf AI tools, though we don't allow those through policy for the course's assignments. Yeah, I had a conversation with another professor and specifically about, you know, is AI affecting how the kids are learning?
31:17And his perspective was it was kind of maybe he didn't do it properly and the students were over relying on it. And I think that is a concern that a lot of people have is that students these days can be more brain dead. Like you could just go to chat GBT and say, honestly, just solve the problem for me. For you as an educator in computer science, what is the ideal relationship with AI for your students?
31:44David J Malan:Yeah. Yeah, so this virtual rubber duck at cs50.ai, which anyone with a free GitHub account can use, is really meant by design to be a less helpful version of ChatGPT, one that is also more tuned to CS50's own material and syllabus and so forth. And that's because all of these tools off the shelf can pretty much do your homework for you. And this has been true for several years, even before the fall of 2022 when ChatGPT came out. I mean, we were looking closely at GitHub Copilot for some time because if you created an empty text file in VS Code called Mario.c, which is the file name we use for one of CS50's problem sets, and if you so much as type, I think, hash and then I for include, you pretty much get a suggestion to autocomplete the entirety of that particular problem set.
32:28David J Malan:and that's just because, I mean, we, for better or for worse, are part of these models insofar as the open courseware has presumably been slurped up as with the rest of the internet as part of the training data, so to speak, for these AI models. So that is both good and bad and that's why we set out to make our own sort of duck-themed version of these tools that puts downward pressure on that willingness of the tools to be too helpful and we've tried to attune the duck to be more akin to a good teacher or tutor that leads you to the solution but certainly doesn't autocomplete your whole way through it.
32:57David J Malan:I see. So there's like a system prompt or some scaffolding that says, don't answer the question, but help me figure it out. Pretty much. And it's much easier to do this now than it was in 2022 and 2023 when we first rolled this out, which is to say there's a lot of tools, even commercial tools that faculty can use to do the same kind of thing for their own course. For us, it was important to draw a clean line in the sands of students because you could approximate this duck by just telling students, hey, everyone, go copy paste this system prompt, as you described, into ChatGPT before you ask your homework question.
33:32David J Malan:no one's going to do that. And like, it's going to drift out of date and it just feels too clunky. Students are just going to end up typing into the prompt. Whereas I think it's a lot cleaner, if not simpler to know, I cannot through policy, go to ChatGPT, Gemini, Copilot, any of these things, but I can go to and use as much as I want CS50.ai or the plugin we have in VS Code of the same. And that to me is a very healthy line because you know, if you're crossing that line, if you're pulling up chatgpt.com or gemini.google.com and the like. And at that point, it's a conscious choice to be academically dishonest, as we would describe it in CS50's syllabus.
34:09When I was going through my CS education, cheating was already pretty rampant. I mean, people put their code on GitHub, and you kind of paraphrase someone else's code. Well, not me, but other people. and uh i i imagine with the new technology that actually i mean with anything with cheating it's adversarial there's people who are cheating and there's people are trying to catch the cheaters right i could imagine that the cheating tools are advancing faster than the ability to catch them because if you just generate the code it's not easy to say oh that was um you know ai generated or whatever. So I'm curious if you see more cheating on your end and yeah, generally, if you're catching more of dishonesty.
34:59David J Malan:Statistically, we are not catching more. I would like to think that the misbehavior has not markedly increased, if only because we, like a lot of intro courses around the world, have a tradition of looking for academic dishonesty plagiarism code that was copied and pasted off the internet or YouTube video. And we within CS50, like a lot of peer institutions are very good at catching that. And like we have tools that cross compare all of students submissions against each other, against GitHub repositories of past submissions that we have, of YouTube videos that have been described. So we have historically administratively disciplined, so to speak, between five and 10 % of CS50 student body every semester.
35:42David J Malan:And that's kind of a norm among across peer institutions, you know, upper bound of roughly 10%. There's certainly probably some percentage of students who have been cheating in some form all these years and never have been detected. But just based on the rigor with which we go through this, the messaging throughout the course, like I'd like to think that a good 90 % of students are behaving in the way that they should, at least when the boundaries are set through not only policy, but course culture and through the support structure that we provide to students. That said, we've not seen an uptick in detections of academic dishonesty.
36:21David J Malan:What has gotten harder is the so-called prosecution of those cases in the sense that it's harder for us now to hand to the administrative board of Harvard or the honor council, so to speak, a smoking gun. Like here is the URL from which this code was copied because it's not really coming from a URL or a YouTube video. It's coming from the composition of all of the URLs out there and all of the YouTube videos about CS50's problem sets because the AI somewhat pseudo-randomly is spitting out an amalgam of these various training inputs. That said, when you've been doing this long enough, you can tell that this is not the work of this particular student, either in comparison to past work that they submitted or the sophistication with which they're solving a problem or the incorrectness with which they're solving the problem.
37:04David J Malan:And there's often telltale signs like this is not this year's problem set. This is last year's. And so clearly this did not come from you alone. So we certainly are able to detect the easier to detect behaviors. Right. Five to 10 percent. That feels spiritually like a lot, like one out of 10 students doing something. But I mean, you have the. Yeah, I mean, 20 years ago, I probably would have agreed after seeing it year after year after year. I'm just glad it's not higher than that. On the topic of AI, a lot of students, they see where these agentic tools are going. They're generating code that is superhuman in many cases.
37:49And I think it gives people this sense of dread. Like imagine you're spending all this time getting better at programming and you think that maybe programming will be useless in the future. you know if an anxious student comes to you and says I don't know if I should be learning computer science what would you say?
38:06David J Malan:I wouldn't worry about getting better at programming the whole point of so many of these courses has been about getting better at problem solving and like that is a life skill whether you're going to stay in CS or tech more generally or leave it for some other fields in which there's still going to be problems just different types of problems and there too is why we constantly tell students the course is not about Scratch and C and Python and JavaScript. These are all implementation details. And while they definitely have and consciously have pedagogical value, that's why they're in the syllabus.
38:36David J Malan:The goal is not to teach students Scratch and C and Python and JavaScript, but how to solve problems and to give them representative tools with which they can solve those problems and also an understanding of those same first principles from which they can reason about some symptom they're seeing or some problem they are ultimately trying to solve. AI is pretty darn good already at generating code. It's only going to get better, but that's wonderful insofar as it's going to save us humans from the stuff that was never very fun to begin with. Even I am guilty of never really writing as many unit tests for my code to test the correctness automatically.
39:11David J Malan:That stuff can be very easily and robustly generated nowadays. What I don't want the computer to take from me is sort of fun part that's always been there, which is the designing of the system itself, maybe thinking about what the UX should be so that you can optimize for the user experience or what the database design might be or what data you want to collect in pursuit of some business problem because you know you're going to need to analyze or mine it for some valuable insight later on. Like that stuff's probably not going away anytime soon. And the other reassurance I would give students nowadays is like the world is only getting more technological.
39:45David J Malan:And we've kind of seen this pattern before where I took CS50, for instance, at really the peak of the so-called dot com era. So 1996 and then sort of the world started trending down when all the startups were going out of business and students were exiting computer science. But like then the pendulum swung back and I don't think we have saturated the world in terms of technology. Every business, small and large, is probably going to keep using it more and more. We in our personal lives are only going to keep needing it more and more. And so like those are problems to be solved. And yes, I don't think we'll need as many humans to write HTML and CSS anymore, which was at the risk of picking another fight, never that much fun anyway.
40:23David J Malan:And maybe we won't really need to use C or Python anymore, but we can start programming like a PM, a product manager, using our voice, using our words in English or some other human language. But that alone would be wonderful. Case in point, I was playing with Claude this morning to just help me prototype type something. And it was wonderful for me to be able to just think about the problem and sort of the engineering side of it and say, all right, Claude, much like an intern, please go implement this for me because I really don't want to go reading the documentation, which was never that intellectually interesting.
40:53David J Malan:I could if I wanted to, and I understand how it's structured, but I don't need to keep repeating that kind of exercise again and again. But at least in the near term, case in point, Claude came back very confidently with a solution that was like 90 % correct. And I had to convince Claude, so to speak, by chatting back with it that, like, no, no, no, no, like, this is not possible per the API docs at this URL. So, of course, you get the apologetic response from the LLM. And this kind of error rate or hallucination will decrease with frequency. But, like, this is why the human should stay in charge for some time.
41:27In today's environment, we can relatively confidently say these tools empower us and they don't replace fully yet. But I think a lot of people are worried about, okay, but what if it gets even better? What if that 90 % becomes 99 % or maybe it becomes 100 %? Then I think people get scared, but it's hard to say exactly in the future.
41:55David J Malan:But insofar as our goal within even a class like CS50 has always been to output a more educated citizenry, to teach students how to teach themselves, to teach them how to be more methodical, more algorithmic and problem solving. Like all of that is valuable, whether or not we have robots doing work for us in our future, I think. you talked about the enrollment rates and i have this uh little screenshot because you had written this i think this paper from a long time ago about redesigning cs50 and you kind of i'll put this overlay this in the video but um you know there's this trend of kind of enrollment rates going up and then they they tank with the top dot com bubble and then they went up as well because of some adjustments that you've made and that right now we're kind of in this um you know ai is really shifting things.
42:45How, if you were to continue this graph forward, is enrollment and interest in computer science declining because of the AI?
42:54David J Malan:Oh, lately, that absolutely seems to be the case. And that was preceded, I think, over the past few years, really by the downturn in tech offerings. I mean, we were seeing this in the recruiting pipeline on campus where there were just fewer opportunities and there was less of an appetite among some of the big tech companies to even bother coming to campus if they just didn't have many entry-level roles for students. And that was before GPT and similar tooling was sort of omnipresent. So AI has only exacerbated, I think, that concern. But I think what we're going to see if we sort of extrapolate out is that there's going to be these ebbs and flows over the years, much like we've seen, or the pendulum swinging each different way, whichever metaphor you prefer.
43:33David J Malan:Just as humans have a tendency, I do think, especially in tech to overreact to things both positively and negatively. And while AI is absolutely here to stay, I do think it's going to become equivalent in our minds to just what technology is. AI is a nice sort of buzzword and way to distinguish it from some of the more deterministic or predictable outcomes that like technology to date has maybe had. But, you know, I think back even over my 19 years with CS50 and, you know, AR and VR was to be all the rage. And then we had blockchain and Bitcoin and Google Glass even like excited the imagination like no other technology at the time.
44:12David J Malan:And all of these things are still with us in some form or some future incarnation. And especially with blockchain and Bitcoin, like there's some resiliency there. And AR and VR are still very omnipresent in games. But it's just been fascinating to watch the world, the tech world, especially the VC world, sort of react and overreact habitually to these kinds of things until we sort of find a healthier medium where people appreciate the real value and not just the opportunistic value of it all. you're in a unique position because you you teach the in-person harvard class and then you also do the massively online version as well and i think it's an interesting case study because some people have the opinion that the important part of college is actually not the education and it feels like this this you know in-person version versus the online one is It's kind of proof of that, which is that you could not go to Harvard, but get a world-class education, yet the outcomes are very different.
45:17So I'm curious your thoughts on going to college versus getting the world-class education for free.
45:24David J Malan:Yeah, I think it depends on your goals. I think there's absolutely value of places like Harvard, really, because of that credentialing. And also, it's a filter from the get go. I mean, these admissions departments are already identifying strengths among people and sort of the audience you then end up with is very similar along certain axes, certainly along academic abilities and whatnot. But the value of places like Harvard, I do think, has long been the networking opportunities, the connections you make, the life experiences you might have in academics, sometimes to a fault, like is often secondary.
45:55David J Malan:But when it comes to knowledge and learning outcomes and practical skills, I mean, I'd like to think that you're getting as good, if not better, an experience taking a class like CS50 online, if only for the simple technological reasons that you can pause and fast forward and rewind and open multiple tabs, go down this intellectual rabbit holes in ways that a traditional campus is just not designed to support unless those same students are taking the class in their dorm rooms or at home like during COVID. You've taught so many years of this same material. What is the most difficult concept that you see people consistently having trouble?
46:33Pointers.
46:34David J Malan:And that was true for me 30 years ago. So much so that I'm always very weirdly excited to tell students in class nowadays that I still remember where I was on campus the day I finally got pointers. And I'll share here, I was in one of the dining halls on campus with my teaching fellow, RTF, who himself was a student, probably one or two years older than me. We were sitting at the back of the dining hall on these wooden tables in this beautiful old school sort of Harvard-esque room. And somehow or other, something he said that day, after weeks of struggling, that light bulb went off for me. And I'm like, oh, it's just an address, which, you know, never quite clicked, even though I'm sure many people tried to hammer that into me previous to that.
47:16David J Malan:But it's just hard. Like memory stuff is hard, especially if computers to students from the get go is very much this black box, this abstraction itself to really go down to that level. Take some some new thinking. And it took me a while. Let's say someone is trying to help someone else grasp a difficult concept. Like what's your best tip on how to really teach someone something that they're really struggling with? My instinct is to say metaphors and or what we more broadly call memorable moments where it's a phone book where you're trying to teach binary search or even a screenshot of the iOS context app where you're trying to introduce the same algorithm.
47:56David J Malan:It's during COVID, for instance, we worked with a local theater and we had seven physical doors on a stage that were from previous plays that they had put on. And we put fuzzy little numbers behind that the prop shop had kindly developed for us so that we could play that same game of using not lockers, but physical doors. And creating those binary doors for students, I think, helps them latch onto a visual that makes a very esoteric topic that, frankly, who really cares about binary search day to day, just kind of come alive. And you realize, at least back in the day of actual phone books, like, oh, I've been using this the whole time.
48:28David J Malan:I just didn't know what to call it. And I think that's very empowering to use metaphors to create memorable moments that help students realize that even the seemingly most arcane topics are still very much within their grasp and perhaps not so dissimilar. Even when we talk about binary for students, we like to show them that, hey, here's a number like 123. Well, why is it 123? Because there's the ones place, the tens place, the hundreds place and so forth. Hey, guess what? Binary is the exact same methodology, but you just have the ones place, the twos place, the fours place and so forth. And helping people realize like, oh, like that's all it is, I think is very empowering because suddenly they feel like they're part of the conversation and they actually know what they're talking about all the more.
49:11David J Malan:even when they thought that was a domain for those more comfortable only.
49:41is an API layer that lets you meet all of these requirements in just a few lines of code. So let's say you have a new SaaS product and you want to sell to other companies, WorkOS will solve all of these critical feature gaps for you. You can check them out at workos.com to learn more and get started.
49:58David J Malan:And I appreciate them for supporting my work and sponsoring this podcast. For people who struggle, I mean, this idea of growth mindset versus you're kind of born with some innate talent And you've seen so many students that I feel like you probably have a perspective on this. But I'm curious if you think that there's anyone that's just born that can't learn computer science. And that's not the world that I want to live in. But, you know, let's just say you have someone and you explain a race to them a hundred times and they kind of don't get the concepts. do you feel like really you can kind of grow and learn?
50:40David J Malan:I think to an extent. I mean, if it's still not sinking in after 100 times, I mean, frankly, I think good educational advice would be, like, maybe this isn't the field for you, and this is how you've been empirically figuring that out. If it's just not clicking in a way that's exciting you, that's making you happy, then, okay, stop beating yourself up. Like, find something else that's of interest to you. But if you're struggling and you're thinking of getting up after two times, 10 times, 49 times. I'm not quite sure where the cutoff is. Like you should probably continue to try to power through, not necessarily by taking that same approach, but find some other class, some other professor, some other teaching assistant, some other book to try a different perspective or angle on it, because maybe you're just not jiving with like the form of instruction or the style of the teacher, myself included.
51:25David J Malan:So I wouldn't give up thinking it's you alone. And I do think, too, that's really the secret ingredient is time. Like, fine, if you can't quite finish the course in 12 weeks, take 24, take 52. Like, that's perfectly fine, especially if you're juggling other things. This isn't necessarily your primary focus. I think time is a perfectly reasonable knob to turn. And I think that puts it well within reach of so many other people. CS50 is beloved. People have the reception online is so overwhelmingly positive. And you've been doing it for so long. What is next with CS50? Like, do you see yourself kind of continuing the same curriculum for the next decade or will things change?
52:09David J Malan:Yeah, I think CS50 itself will continue to evolve as it long has. I do think it'll continue to change both in terms of tooling and concepts as AI sort of permeates our lives and technology all the more. That said, I think it's always meant to be this introductory course in problem solving. So I think there will be this backbone that remains. and has been there even since my day, even though the problem sets are very different nowadays, the style of the lectures is very different. If you really compare the syllabus from fall of 1996 versus now and what will be fall 2026, like they're not that fundamentally different.
52:42David J Malan:They're just packaged very differently and stylized, I think, very differently. But there's a lot of knowledge and conceptual framework and practical skills that are very invariant over the years. What we have been doing in recent years, though, is steering in the direction of developing all the more of a complete curriculum. So courses that students can take for free online through OpenCourseWare after CS50, earlier courses, gentler courses that students can take before CS50 itself, or even instead of CS50 itself, depending on the goals that they have and the background that they're bringing to bear.
53:15David J Malan:The plan in the near term is to branch out beyond computer science, working with a colleague of ours, Tom Crawford at the University of Oxford on courses in maths or maths, as he says, in all sorts of fields so as to help uplift students who are taking, say, computer science courses, but don't have the requisite math background that might be ideal to have so that you don't struggle with certain things that we might otherwise just take for granted. Beyond that, STEM more broadly is of interest. And while we're not experts ourselves, working with colleagues of ours in the arts and humanities and trying to bring this form of theatricality and these memorable moments to a stage, but with far more people and subjects than me and mine.
53:54When you mentioned math and these other subjects, it kind of reminds me, I mean, I haven't been in the schooling system for a long time, but Khan Academy was like a very popular resource. I imagine that's still around. And so that would be, I guess, a competitor.
54:09David J Malan:I do think some healthy competition is good as if it drives different courses, different teachers to sort of try new things and teach differently. But I think the more the merrier. The world only benefits from more educational resources. And so if those are, let's say I'm, okay, let's say I'm a parent and I'm deciding, should I put my high schooler in the Khan Academy learning track of math or what you plan to offer? From what I've seen, certainly of Khan Academy's work is that they're like ours, I think is more of a cast of characters, at least on video form. At least I know the earliest of Sal Khan's work was sort of the handwritten style for his niece or nephew, which was wonderfully compelling and engaging.
54:50David J Malan:I think we stylistically are just very different. And I think we try across CS50's courses traditionally to have a shared aesthetic, a shared pedagogical style, a shared lecturing style. So that when you take a CS50 course, so to speak, you sort of know what you're getting because it's very similar in spirit to the others in the ecosystem. Coming to the end, like when you look back on your career, what is your biggest regret? I would say I wish someone had told me or I wish I had known to just calm down. Like at least when I was in university, I was one of these students who, again, came in thinking I was going to major in something else, government in my case.
55:29David J Malan:I was one of those students who went to my first RA meeting, proctor meeting, advisor meeting with probably on a sheet of paper, all 32 courses I thought I was going to take at Harvard, which did not come to pass. But it really led me astray in some way the first year and a half of school in that I was really focused on crossing requirements off the list, taking the courses I thought I should. And it wasn't until sophomore year that I took CS50, which was eye-opening and allowed me to start to pivot. But even then, I hadn't broken out of that mold probably until senior fall, senior spring, when I finally took an introduction to Latin course, which was just for fun and was just so interesting and eye-opening.
56:07David J Malan:And I finally understood aspects of English and Spanish retroactively that I never really had mastered when taking those same classes. I took a course on dramatic arts 101, which was a survey class on theater and writing and set design and acting. And pretty much every elemental aspect of theater was introduced in this class. And I wish I had thought to take a class like that. And even in graduate school, I was only gradually learning this lesson. Finally audited essentially a course in archaeology, which was so much fun. So much so I had this existential crisis thinking maybe I should have gone to a PhD in archaeology instead.
56:42David J Malan:But I stayed with CS and I just wish someone had told me to calm down early on and sort of explore more, particularly areas in which I thought I'd be less comfortable. And that's at least a message I try to give to students nowadays. As for professional regrets, thankfully, relatively few come to mind. If anything, I used to joke, even with some of our own TAs, that insofar as I've largely stayed in academia, I've never had a real job. But as recently as a recent sabbatical, I spent a whole semester essentially interning with GitHub as a professor in residence and learning the ropes of a real world software engineering company and having access to the internal issues and bug reports and feature requests and sitting in as a fly on the wall to some of the team meetings and design chats.
57:29David J Malan:And it was so much fun to actually live the life that we've been teaching about for so long. And there too, I wish I had done that earlier or at least in parallel had done maybe more consulting opportunities or done a little bit more in the real world before coming back to school and then staying in school. Did you ship a project or like what was that time at GitHub like? What was the... It wasn't, I don't think I contributed code. I definitely contributed issues and bug reports and feature requests. my sort of role was to be this educational voice at the table, especially in the design of certain products, and to at least speak up on behalf of educational use cases, give teachers a voice at the table when it comes to certain features that would really make the student experience better, particularly in tools like VS Code, albeit on the Microsoft side or some of the internal GitHub tooling.
58:21David J Malan:So I don't think you'll find any code that I wrote, but hopefully one of my issues underlies some code that's now in the code base. What about looking back on your time doing CS50? Like if you were to just reflect on what went well and what didn't go well, just the highlights of your time running the course, what would you say? I think it's been very meaningful, so much so that it's become our mission organically to have this now tradition of open courseware that wasn't certainly our own idea. was really inspired by our friends down the road at MIT who really championed this decades ago, but very happy with how that has evolved because it's made the work all the more meaningful in ways that go beyond just education, but helping, as we've heard anecdotally from some of our students out there, very professional impacts, life impacts, being able to better care for your family or to pivot professionally into a field that you didn't think was for you.
59:20David J Malan:like that has just been very meaningful and rather makes it all worthwhile and i hope too in so far as we've been a bit unusual both with our production volume and openness trying to sort of offer an example that others could follow that hey maybe more people should be doing this more people should be sharing leaning on us us leaning on them because i do think that's still a missed opportunity educationally what's your best like technical book recommendation of someone wants to learn programming, or if there's maybe some other topic that you recommend a book for, I'd love to hear it. My favorite book is Hitchhiker's Guide to the Galaxy.
59:56David J Malan:And I think everyone should read that or play the terminal-based video game that existed when I was growing up of it. Funny enough, within CS50's courses, it's been a few years since we officially recommended any books. This is partly consistent with our commitment to openness and for everything being free so that there isn't some financial barrier to someone out there to needing a textbook for the course. That said, over the years and to this day, some of my favorite tech books, even though they're increasingly outdated, are this brilliantly colorful, picturesque, easy to understand and accessible book called How Computers Work, which we used in that course I first taught in 1999, and How the Internet Works.
1:00:40David J Malan:And I think they eventually stopped updating them some years ago, but they were such wonderful educational tools. I think every subject should have a book that looks quite like that. More arcanely, there's a book that we still recommend to students unofficially, or if they really want to go pursue something more arcane in C called The Hacker's Delight, which is this wonderful hardcover book that just has really neat bit trickery and low level hacks, low level techniques you can use to make your C code, especially all the more performant. So there's a lot of value in a book like that. But I think back years ago to when I was learning some stuff in technology and like the Four Dummies books was great.
1:01:21David J Malan:I think for some time we might've recommended one of the Complete Idiots guides or something like that, which doesn't have the best semantics, but the reality is they are by design written for a very broad, accessible audience. And I think that has a lot of value as opposed to the more traditional textbook where you sort of have to have taken the class in order to understand the book. is there an official textbook for the harvard cs50 not the open one okay so that one also has the other than having access to a computer and the internet there's no financial requirements that's great i love that idea last question for you is yeah if you could go back to the beginning of your career and kind of give yourself some advice what would you say explore more i do think i i wish I had more jobs under my belt early on, which I think was the result of my being pulled back into choosing to go back into academia.
1:02:14David J Malan:I think it would have been healthy if I had allowed myself maybe another year or two in between undergrad and graduate school, or it probably would have worked out well if CS50 hadn't opened up for me right as I was finishing my PhD, because then I probably would have gone off to industry for some amount of time. That said, not sure I would have gotten the job if I had wandered off campus at that point. So it probably worked out for the best. But I had such fun when I was interning, so to speak, at GitHub, that it would be fun to live more of the lives that some of my friends in tech have lived.
1:02:47David J Malan:Awesome. Well, thank you so much for your time. I really appreciate it, David. Yeah, thanks so much. Hey, thank you for watching this podcast. If you liked it and you want to see the show grow, please support with a comment or a like. Also, if you have any recommendations for people you want me to bring on please drop a comment guests like barbara liskov mike stonebreaker mark brooker these were all people that i brought on because someone left a comment on another note aside from the podcast i'm working on building the ergonomic keyboard that i wish existed here's a glance at the prototype it's a split keyboard so there's two sides this is in the case but yeah we launched on kickstarter and we hit our goal within eight hours of launching i really appreciate it if you were one of the people who grabbed one of the early units.
1:03:31We're now working on the long journey of building the tooling now. And so if you still want to pick one up, I've left the late pledges open on Kickstarter. So you can grab one there. I'll put a link in the description. Thank you again for watching the podcast.
From the publisher
David Malan is a Harvard professor known for turning CS50 into a popular online computer science course. We discussed the story behind CS50, how to lecture well, and how AI is changing CS education including in cheating/academic dishonesty.
• My ergonomic keyboard project I mentioned, you can follow along here: https://read.compose.llc/
𝗣𝗼𝗱𝗰𝗮𝘀𝘁 𝗹𝗶𝗻𝗸𝘀:
• YouTube: https://youtu.be/bB2o81DnKHk
• Apple: https://podcasts.apple.com/us/podcast/the-peterman-pod/id1777363835
• Transcript: https://www.developing.dev/p/harvard-professor-cs50-what-matters
𝗧𝗵𝗮𝗻𝗸 𝘆𝗼𝘂 𝘁𝗼 𝘁𝗵𝗶𝘀 𝗲𝗽𝗶𝘀𝗼𝗱𝗲'𝘀 𝘀𝗽𝗼𝗻𝘀𝗼𝗿𝘀 𝗳𝗼𝗿 𝘀𝘂𝗽𝗽𝗼𝗿𝘁𝗶𝗻𝗴 𝗺𝘆 𝘄𝗼𝗿𝗸:
• Cursor 3: a unified workspace for building software with agents, check it out at https://cursor.com/
• WorkOS: makes your app Enterprise Ready with easy to use APIs to add SSO, SCIM, RBAC, and more in just a few lines of code, check them out at https://workos.com/
𝗧𝗶𝗺𝗲𝘀𝘁𝗮𝗺𝗽𝘀:
0:00 - Intro
1:09 - Getting into computer science
3:27 - Becoming the professor of CS50
11:19 - How to lecture well
14:25 - Depth vs engagement in education
18:11 - Why don't we consolidate educational resources
23:20 - Why start with C
31:51 - The ideal use of AI in education
34:54 - Cheating and AI
38:21 - Should we really learn CS still?
45:24 - College vs online education
47:06 - The most difficult concept to learn
51:00 - Growth vs fixed mindset
52:35 - The future of CS50
55:56 - Biggest career regret
1:00:29 - Top book recommendations
1:02:36 - Advice for his younger self
1:03:35 - Outro
𝗪𝗵𝗲𝗿𝗲 𝘁𝗼 𝗳𝗶𝗻𝗱 𝗗𝗮𝘃𝗶𝗱:
• Personal website: https://cs.harvard.edu/malan/
• Facebook: https://www.facebook.com/dmalan
• Github: https://github.com/dmalan
• Instagram: https://www.instagram.com/davidjmalan/
• LinkedIn: https://www.linkedin.com/in/malan/
• Reddit: https://www.reddit.com/user/davidjmalan/
• X/Twitter: https://x.com/davidjmalan
• Threads: https://www.threads.com/@davidjmalan
𝗪𝗵𝗲𝗿𝗲 𝘁𝗼 𝗳𝗶𝗻𝗱 𝗥𝘆𝗮𝗻:
• Newsletter: https://www.developing.dev/
• X/Twitter: https://x.com/ryanlpeterman
• LinkedIn: https://www.linkedin.com/in/ryanlpeterman/
• Threads: https://www.threads.com/@ryanlpeterman
• Instagram: https://www.instagram.com/ryanlpeterman
• TikTok: https://www.tiktok.com/@ryanlpeterman
𝗥𝗲𝗳𝗲𝗿𝗲𝗻𝗰𝗲𝗱 𝗶𝗻 𝘁𝗵𝗶𝘀 𝗲𝗽𝗶𝘀𝗼𝗱𝗲:
• His first program for CS50: https://x.com/davidjmalan/status/1432538424590929920
• Paper about CS50 improvements: https://cs.harvard.edu/malan/publications/fp310-malan.pdf
• Hitchhiker's Guide to the Galaxy: https://en.wikipedia.org/wiki/The_Hitchhiker%27s_Guide_to_the_Galaxy
• How Computers Work book (not affiliate link): https://www.amazon.com/How-Computers-Work-Evolution-Technology/dp/078974984X




