Menu
Sign In Search Podcasts Libraries Charts People & Topics Add Podcast API Blog Pricing

David Malan

๐Ÿ‘ค Speaker
438 total appearances

Appearances Over Time

Podcast Appearances

The Peterman Pod
Harvard Professor: CS50, What Matters More Than CS, Lecturing Well | David J Malan

It's sort of got...

The Peterman Pod
Harvard Professor: CS50, What Matters More Than CS, Lecturing Well | David J Malan

it's 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 and we're talking about how you could construct singly linked doubly linked lists uh hash tables and tries uh trees abstract data types like stacks and queues and so many more

The Peterman Pod
Harvard Professor: CS50, What Matters More Than CS, Lecturing Well | David J Malan

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.

The Peterman Pod
Harvard Professor: CS50, What Matters More Than CS, Lecturing Well | David J Malan

Like if you want it, you're going to have to build it yourself.

The Peterman Pod
Harvard Professor: CS50, What Matters More Than CS, Lecturing Well | David J Malan

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

The Peterman Pod
Harvard Professor: CS50, What Matters More Than CS, Lecturing Well | David J Malan

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.

The Peterman Pod
Harvard Professor: CS50, What Matters More Than CS, Lecturing Well | David 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.

The Peterman Pod
Harvard Professor: CS50, What Matters More Than CS, Lecturing Well | David J Malan

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 the week 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.

The Peterman Pod
Harvard Professor: CS50, What Matters More Than CS, Lecturing Well | David J Malan

And it gets whittled down in week six to one line where you just instantiate a Python dictionary.

The Peterman Pod
Harvard Professor: CS50, What Matters More Than CS, Lecturing Well | David J Malan

And you can be productive with a dictionary.

The Peterman Pod
Harvard Professor: CS50, What Matters More Than CS, Lecturing Well | David J Malan

And many courses do teach programming by way of Python alone.

The Peterman Pod
Harvard Professor: CS50, What Matters More Than CS, Lecturing Well | David J Malan

And we too have done it for some of our audiences.

The Peterman Pod
Harvard Professor: CS50, What Matters More Than CS, Lecturing Well | David J Malan

But you really never get around to understanding what's going on underneath the hood.

The Peterman Pod
Harvard Professor: CS50, What Matters More Than CS, Lecturing Well | David J Malan

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

The Peterman Pod
Harvard Professor: CS50, What Matters More Than CS, Lecturing Well | David J Malan

how technology works.

The Peterman Pod
Harvard Professor: CS50, What Matters More Than CS, Lecturing Well | David J Malan

And so C, for instance, strikes, I think, just that right balance.

The Peterman Pod
Harvard Professor: CS50, What Matters More Than CS, Lecturing Well | David J Malan

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.

The Peterman Pod
Harvard Professor: CS50, What Matters More Than CS, Lecturing Well | David 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.

The Peterman Pod
Harvard Professor: CS50, What Matters More Than CS, Lecturing Well | David 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.

The Peterman Pod
Harvard Professor: CS50, What Matters More Than CS, Lecturing Well | David J Malan

I mean, by definition of full stack, you should be understanding everything that's happening among those layers.