Teaching Computing in Science and Engineering

Teaching Computing in Science and Engineering


I’m Cynthia Barnhart. I’m the Chancellor here and
Ford Professor of Engineering. And like with the
other panels, we will go through and have
each one of our guests provide you a brief
presentation and then we will open it
up for discussion. So we’re going to do this
in alphabetical order, and we’ll begin
with Steven Boyd who is the chair of the Department
of Electrical Engineering and the Samsung
Professor of Engineering at Stanford University. He has courtesy appointments
in the Department of Computer Science and the Department
of Management Science and Engineering. I won’t go into all the
various research awards he has, but I will say, relevant
to today’s theme of teach, he has earned some prestigious
awards for his teaching, including the Walter J. Gores
Award, Stanford’s highest teaching award, and the IEEE
James H. Mulligan Junior Education Medal. Steven. Thank you very much. I assume my slides will
come up there at some point. Yep, they should. OK. So first of all, I should say,
surprise, we are your lunch. So I mean, actually,
you’re the ones that didn’t head out for lunch
or something like that. So let’s see if I can– oh, OK. Oh, no, no. That’s going backwards. OK. So let me go ahead and start. No, no, no, no, no. All right. Fine. I’ll just go ahead and start. I think that’s the first one. So first off, I’ll just say a
little bit about my background and then I’ll explain what
I’m going to be talking about. So I mean, my original
training is pure mathematics and super applied EE. I should actually go back. I said it on the panel this
morning on digital humanities. So I actually grew up,
and both my parents were English professors. And what the panel
brought back to me was the painful
recognition for me that the humanities is so
much cooler than what we do. [LAUGHTER] Max, I want to take your class. I want to take all
of them, actually. So I want to write Python
scripts and compose– anyway. So for us, it’s not
anywhere near as exciting. But anyway, sorry, too bad. So I teach big classes
on applied optimization, linear algebra. And it’s for students with very
diverse technical backgrounds, right? So I have to say
technical there, because it’s not really
diverse backgrounds. It depends which PhD
program they’re in, right? But it is– I mean, it
is actually interesting. It’s multicultural in
a mathematical sense because we have people who come
from a lot of different areas and they speak a lot
of different dialects. Actually, most of them don’t
think they speak a dialect, and I’ll have to tell some
of them, oh, by the way, you’re speaking a hick dialect,
a mathematical hick dialect. And I’m going to talk
about the courses that are mathematical type
courses, actually none in math but typically in
engineering and science. So this would be things– most courses in
electrical engineering, computer science, mechanical
engineering, aero astro, statistics, machine
learning, econ, all these kinds of courses. Anyway, so not anywhere
near as interesting as glass blowing or composing
or Victorian literature, but that’s just what it is. OK. So the first thing
I’d like to do is actually I’d like
to change the title. So I actually prefer
the title Teaching Science and Engineering
with Computing or– and this one is long winded, but
I think it actually says better what we really want, which is
Teaching Computational Thinking and Doing– that’s going
to be a big theme– in Science and Engineering. So that would be
my preferred title. No disrespect meant, by the
way, at the choice of the title. And now I’ve gone to
some other random– OK. That’s the price you pay. OK. Yeah, this is– OK. All right. So what now I’m
going to state what is completely obvious which is
that what computing does when you wrap it in with
these courses is it makes them actionable, right? So it means you can
actually do something. And it means that beyond gaining
insight and understanding, students can actually
do practical things. And you can do it pretty
soon, like we saw something approaching music in
five minutes, right? So it’s actually just like– I mean, that is a huge big
deal for these courses where a colleague of mine,
Bob Dutton, refers to– he referred to
our EE curriculum– he may still refer
to it that way. He said it’s a deferred
gratification with nothing at the end. So I mean, it was
actually pretty good. It was actually a
pretty good description of our EE curriculum, right? You always take a class
and students say, you know, can I do something with this? And you’re like, no, no, just
wait for another four years, then you’ll be able
to do something. And then they come back as a
senior, can I do something? No, not yet. So anyway. All right. So what’s very cool about this–
it means that in these classes, you can bring together a lot
of different ways of knowing. So you have the ideas. What are the essen– what are
the Ideas This is with no math. You would have the
theory, so you’d actually tell people about the math. You’d say, these
things are just true. If you believe this
hypothesis, then this has to follow, period. That’s the math or the theory. You would have things
like the practice. Does this really work? How do you do this? And then you have what
we call the practice– street fighting tricks,
like, OK, here’s something. This actually works in practice. No one knows why, but it does. OK, so that’s the
street fighting. So we have all these
different ways of doing this. And of course, this is enabled
entirely by the computing. And it’s also very nice because
it brings a maker culture to mathematics and
applications, right? So what’s kind of
cool about that is we’re very jealous
of our friends in mechanical engineering. They’d sit there, and
the freshmen sit there and they do some CAD stuff,
and then they press a button. Half an hour later, this
thing comes out a 3D printer, and it’s, like, cool. And then you think about
the classes we teach, and they’re like so boring
by comparison, right? So it’s like we’re jealous,
but this kind of at least– I mean, OK, it’s not origami,
and it’s not a composition, but still, for us,
it’s pretty cool. We have very low standards. [LAUGHTER] So all right. And it also introduces
an empirical component to these things, right? So you can teach these classes. You can talk about
various things. You talk about the theory,
all sorts of other stuff. And then you can say,
let’s just try it. Let’s just see what happens,
maybe on simulated data, maybe on real data. And that’s actually really cool. I’m going to try to press
the right button now. No guarantees. I didn’t. It was the wrong one. [LAUGHTER] OK. I’m giving up. I quit. Let’s see. OK. No, no, look at that. OK, maybe that’s just
going to the end. Oh, OK. I think I have it. There was a button
I hadn’t seen here. OK. Mhm, all right. So OK. All right. There we go. I did it. OK, great. And the 10 minutes
is almost over. That’s fine. So the idea– now I’m going to
talk a little bit and quickly about some of the things
that makes all this possible. So encapsulation and abstraction
is extremely important. I think Ellen is going
to talk about that. That’s very important. It means that you have
high-level interfaces that are going to match the
ideas and the theory closely and hiding the
implementation details. That’s very important. And so there you really
have to accept the idea that you and the students
do not need to know all the implementation details. By the way, there’s people
who think that you do, and they are just wrong. So that’s simple. So what it does is
it shifts the focus to what you can do with
the methods and not the implementation. You may spend some time
talking about how it works, but the most important thing
is what can you do with this. And this is actually
very important because it allows you to
create outreach classes. When someone from maybe
quite a bit further afield is taking this class,
they don’t want to know the stupid
details of the algorithms. They want to know that’s
super cool, what is it, what can I do with it, and
how can I apply it in chemical engineering, for example. OK? All right. Now the enablers, they
were mentioned actually in the last panel– one is kind of obvious, but
it’s sort of not stated enough. And that is open-source,
non-proprietary software. That’s critical to all of this. I mean, without that,
you can’t do any of this. Software that supports
high-level abstract interface to users like, for
example, a Julia would be a perfectly
good example. You’re going to hear
more about that later. And actually very
important is cultural– it’s a culture of
openness and sharing. And so this varies by
field, but the idea is that the fields that are
thriving if you look around are precisely the ones where
it is expected that you write a paper or something
like that and everything goes on– you would not dream of
writing a paper where there was not associated code. This is openly available to
the entire world, period. OK. In my opinion, not only
is that morally correct, it’s also a huge advantage to
the quality of the teaching and the research
and everything else. So I’ll start with
some suggestions. So the first is– I mean, these are
all kind of obvious. But the first is I
believe computations should be infused
into everything in all of these courses, right? I’m talking about all
the way from the lowest level immediate
introduction, all the way to the most advanced
PhD level courses, right? So I can’t imagine this not
improving all of these courses. And that allows
you to co-develop these different modes of
understanding, the ideas, the theory, the practice,
the software, the street fighting tricks. It’s great. And I should also
say what’s very important is when you do
have these multiple modes of understanding, it’s
extremely important to be very clear about which
level you’re at, right? Was that an idea? Was that a theory? Was that an empirical
observation? Or was that actually,
for example, a street fighting trick? Those are the ones where
I tell the students, don’t tell anyone I
told you, and I’ll deny it if you tell anyone. So OK. So in the end, I think
this is basically what I’m describing,
which is actually– I mean, I think it’s done
in a lot of universities, certainly at MIT. I know that. But my claim is
this is the training that students want and need. And it’s the ability
to fluently move between the big
ideas, some theory– some, notice I said. I qualified that– algorithms
and computation, software, and applications. And what this does
is it allows you to go into a whole variety
of existing fields. And this is much more important. It actually prepares
the students to create fields
that don’t exist yet. And that is actually what
we’re training people to do. So when students say to me,
oh, can I get a job with this? Yeah, but that’s not the point. Can you start an
industry with this? And that’s the point. OK. So I’ll quit here. And we’ll go on to the next one. [APPLAUSE] So next up– Steven, maybe you’ll
have to teach Tony how to use this while
I am introducing Tony. So Tony Derose is an
educational consultant. From 1996 to 2018, he was a
senior scientist at Pixar where he led Pixar’s research group. Previously, he was a
professor of computer science and engineering at the
University of Washington. So over the past
seven years, he’s developed several initiatives
to help make math, science, and engineering
education more inspiring for middle and high
school students. So please welcome Tony. [APPLAUSE] Thank you. And thank you for being here
this morning as opposed to, I don’t know, maybe listening
to Michael Cohen’s testimony in front of Congress. So thank you for
the introduction. Thank you for the invitation
to speak here today. I may be the only one
talking about education below higher education. So I’m really interested
in K12 education, general public education. I primarily have been focusing
on middle and high school for reasons that we’ll talk
about in a couple of minutes. And the most visible projects in
those lines that I’ve worked on are two. One is The Science Behind
Pixar, and the other is Pixar in a Box. So these are kind of
companion projects both intended to bring some
relevance and inspiration to a lot of the material that
students are learning in class. We feel like and there’s
a lot of evidence to show that students don’t
learn if they’re not engaged. If they don’t see a reason
for why to learn something, it’s hard for many students
to really take interest. And so that’s the
end of the spectrum we’ve been focusing on. The Science Behind Pixar
was a collaboration– about a seven-year
collaboration, actually with the Museum of
Science right here in Boston. It opened here in
the summer of 2015. Did anybody manage to see
it while it was in town? Great. A few of you. It’s a 13,000 square
foot exhibition that really shows how
much math and science goes into the storytelling
that we do. Back in the early
days of Pixar, we were viewed primarily
as a technology company that happened to tell stories. And then the stories
became so successful, the films became so successful,
we became a film studio, and people kind of forgot
about the technology. And so this is an opportunity
to share that with people. It’s got dozens and dozens
and dozens of activities. Some of them are screen
based like this one. Others are physical. There’s video. It’s a physical experience. So you go– typically
family units go together. There’s a lot of
really wonderful intergenerational
learning that goes on. It’s generally
the younger guests teaching their grandparents
how computer graphics works. And that was a really
great collaboration. We know the business
of making films. We have the domain
knowledge about how math and science and engineering
is used to tell stories. And the team at
the museum really understood how to take
all those complex ideas and package it in a
way that is consumable by the general audience,
the general public, so ages three and up, really. Partway through that
project, we realized if we could find a partner in
the online education space, we could bring
that sort of story in a virtual way to potentially
many more people and really– and for free. And so we went knocking on
the door of the Khan Academy. And they said, yeah, let’s
partner to put this together. So we had funding
for three years. We call these seasons. So season one was really
focused on math topics primarily, season two on science
including computer science, and season three focused
on arts and humanities. So we’re really trying to
help answer the question, why do I need to learn this stuff
and what’s going to keep it from becoming boring? The math and science lessons– there’s 24 of those in all. And they basically
have the flavor of– each one kind of picks a
different creative challenge faced at the studio
and then demonstrates how math and
science concepts are used to address that challenge. So there’s a lesson,
for instance, on the water in Finding
Nemo, in Finding Dory. How do we create the water? There’s a lesson on creating the
beautiful landscapes in Brave. And it turns out parabolic
arcs play a huge role in that. Each blade of grass in the
forest is a parabolic arc. So why do you need to
learn about parabolic arcs? Well, making grass. Each of the lessons is hosted
by one or more Pixar employees. We really wanted to give a
personal face to this material. We also wanted to
put forth what’s kind of an aspirational
sense of diversity. So the diversity of the
hosts doesn’t accurately reflect the diversity
of the studio at large, but it’s sort of what
we’re shooting for. So for instance,
Fran hosts a couple of lessons, one on combinatorics
and how to use combinatorics to create the robot armies in
WALL-E. Alonzo Martinez, who’s a character modeler, Susan Fong. There’s also a chance to
do some career modeling. Each of these people
does a career– is involved in a career that
most people don’t know about. Fran’s a great example. She had interest both in
computer science and clothing, fashion. And at Pixar she’s been
able to put those two disciplines together. She’s a digital tailor. Who knew that digital
tailors was a career and that you could
be very happy at. I thought what I’d do
next is jump over and try to do a quick demo. Showing is better than telling. So the content of
Pixar in a Box– it’s video content, typically
three to four minute tutorial videos
featuring people. There are some exercises that
help students demonstrate mastery. And then there are a lot
of interactive outlets, many of which are
patterned after the tools that our artists use. So in the animation
lesson, for instance, the creative challenge is how do
we bring our characters to life with motion. It turns out
polynomial functions play a huge role in that. These math and science
lessons are typically broken into two parts. There is a part 1, which
is more middle school oriented, where knowledge
of that creative challenge is deepened. And there is an
interactive that goes along with that here, which is– my challenge here is to
make this ball bounce. I’ve got a little timeline. And then I have access to
a Bezier curve editor here which, again, is patterned
very much after– can I grab that– very, very much patterned
after the artist tools that our artists use. Let’s see if I can
get that to play. Yeah, there it goes. So I’m controlling the
height of the curve. At this stage, students
are thinking of themselves as content creators. They’re not worried so much
about how the technology works. And that’s where
part 2 comes in, the second part of the lesson. They’re typically more
oriented to high school level. This is where computational
thinking and algorithm design comes out. And so we walk
them through what’s known as De
Casteljau’s algorithm for constructing Bezier curves. And there’s a bunch of
interactive elements and exercises that
help them experience– see if I can grab that– help them experiment with
how this algorithm works. And by the end of this lesson
these high school students really understand
cubic polynomial curves and how they’re used
to create animation. There’s a lesson on how we
brought Meredith’s hair to life in the movie Brave. We use a mass spring
system underneath. So her hair is being simulated. There’s a physics simulation. And we give students access
in lesson one to a simulator. And at this stage,
they’re basically operating as a technical artist. So they’re working
to dial in parameters to get the kind of creative
look that the director might be interested in. And then in part 2, we kind
of go behind the scenes– and, well, what does someone
writing this simulator need to understand? And that’s where we
bring, in this case, the laws of physics
to bear, along with a computational framework. Let’s see if I can restart this. Si there’s a little simulator
here that is running live. And the Khan Academy CS
Platform is really kind of nice. You can interactively
manipulate parameter values to see what effect it
has on the simulation. So they’re hopefully building
up a bunch of intuition for how these ideas work. But they’re doing
that in the context of solving a creative
challenge and in the context of storytelling. So I will stop there. [APPLAUSE] Thank you, Tony. Next up is Alan Edelman. Alan is a Professor
of Applied Mathematics and a member of CSAIL, a
Computer Science and Artificial Intelligence Lab here at MIT. He’s passionate about
the interactions between classical
computer science and computational science
and is a founder and chief scientist of Interactive
Supercomputing and Julia Computing Inc. Thank you. Thanks very much. The previous
speaker, Dr. Derose, was talking about
for younger students, but I’m already ready to go to
infinity and beyond in higher education. So when thinking about education
for computational science and engineering, I
was thinking about, do I talk about the
math or the software, because in my
lifetime, it’s always been math and software and the
interactions between the two. And then I thought about it,
and I realized that, you know, the first order MIT
is the Massachusetts Institute of Applied Math. So I don’t have to
talk about math. I think math,
everybody’s sold on. So I’m going to
concentrate primarily on software and the
interactions with mathematics. So I’ve got one slide talking
about computational science and engineering and a kind
of prediction for the future, and then the rest
of my slides are going to be about software
and its interaction with mathematics. So that works. I got the right button. So computational
science and engineering goes by the name of CCE
here at MIT, the Center for Computational Engineering. What is it? Well, it’s actually in
a lot of places at MIT. It’s computation that involves
the physical universe, whether it’s in biology or
chemistry or aero astro. It’s literally
pervasive around MIT. And what I like to say,
is that of course we know why it’s important
because the physical world is the world we live in. And many of our problems are the
problems of the physical world. And when I look at today’s
machine learning, which is exciting
everybody these days, I tend to think of it as sort of
the big data machine learning. Forget about anything
about the physical world, just take the data, which
of course may come from the physical world, but
in the end it’s the data, process it through something
like a deep neural network, which is kind of a big overgrown
[INAUDIBLE] fitting– really, it’s a regression problem– and see what we can get. And we’re doing a lot
of things these days with this technology,
but we’re not bringing in the physical
world as much anymore. People are trying. There’s a lot of
good work coming on. But I think– and this
is my prediction– that there’s going to be a
lot more machine learning in the physical
world in the future. And I think it’s going to even
have a rather different kind of character than
the kind of character of machine learning of today. And I would love to
see this happening in the College of Computing,
in the Schwarzman College. I’d like to see it happen
through our students here at MIT. So that’s my first
prediction and now I’m going to get into the teaching. So I was very happy to see
that our president talked about bilinguals at MIT. I kind of feel like I’ve been
a bilingual much of my career at MIT, or a multilingual. And we certainly–
everybody else has been talking
about multilinguals. And of course this is
the right way to go. So here’s sort of an outline
of some of the slides that I’ll be talking about. So let me sort of
jump right in, though. So Professor Boyd already
mentioned abstraction. The problem with talking
about abstraction is that it’s abstract, right? It’s very hard to talk
about abstraction. So what I thought I would do
is talk about a real example that happened this year. Am I speaking properly
in the microphone? Is that OK? So a real application
that happened this year involving a big
climate model– you know, the folks who
want to figure out exactly how global
warming is happening. So the climate modeling folks
came over to my office in CSAIL and they brought those
scary looking equations in the upper right over there. And my computer science graduate
students were like, well, we know lots of things, but
we don’t know that math. But I did what I always do. I said, you know,
let’s figure out what are the right abstractions. And for me, abstractions are
both in mathematics as well as in software. And so I just said, you know,
let’s talk abstractions. Let’s figure out what’s
the right thing to do. So in talking to the
climate modelers, they said, we use abstractions. We use matrices and vectors. They are our abstractions. And then, of course,
it became clear, there are levels and
levels and levels. And this particular is
a differential equation. It has gradients and divergence
and all these scary math words. But in the end, the
abstraction, the one that really comes to
heart for everybody, are mathematical functions. So can we just get
those functions at the highest level
in the software. And then you see some
Julia code down there which just does exactly that
after a few weeks working with the computer scientists. And it never would have
happened by either group alone. It would never have happened. You’d need to have
that combination. But I think everybody’s kind of
sold on interdisciplinary work now. So I’m going to see if
this button still works. And I’ll move on
to my next slide. So again, a software slide. So I’m going to
make up a kind of– I want to talk about elegance
and reproducible science. I’m going to kind of make
up a fictitious story about a conference
that you might go to. So you go to a conference
and big fancy professor gets up there and talks
about his computation. He talks about the math
behind his algorithm. He might talk about the physical
simulation that he’s doing. He might tell you how much
time it took to calculate. And suppose a student
in the audience is all excited and inspired by
Mr. Fancy Professor and says, can I– oh, I want
to do this too. Can I have your software? What machine did you run on? How did you do it? And I’m not saying that
professor is really snobby. In many cases, the
professor actually doesn’t know how it was done
because his graduate students wrote the software. And he doesn’t know. And he doesn’t even
think it’s important. But as far as
teaching our students, this culture has to change. The very essence of
science, as we all know– whatever it is that makes
us believe in science is the reproducibility
of science. And so many people are
talking about that these days. We really have to
change the culture that you can’t say that the
software is coming out later or it’s not ready yet. It just can’t be done. If you’re going to
publish a paper– it’s even a question
of whether the paper is the primary anymore, or is
the software the primary? This is already changing. And then I think we’ll
see more changes. And on a completely
related note, there’s the question about
elegance in computation. And so as a
mathematician, I’ve often seen beautiful
mathematics, mathematics that makes me just
feel very happy and mathematics that’s
just nuts and bolts. And it’s time that we
also talk about what’s really good in computing. When we see an
elegant computation, we should praise it. And we should teach students
to do really nice computing. All right. Now the story of bridges. And so as I’ve mentioned,
I’ve been involved with the Julia project– I have it on the back
of my phone here– for the last several years now. And our dean of
engineering talks about creating bridges at MIT. And I’ve had all kinds of
interdisciplinary work at MIT. Many people have done it. But the Julia project for
me has been a very different experience. And I’d really love
to tell you about it. So Julia is happening everywhere
at MIT, in all the courses. I asked one of my PhD
students to put together a list of sample names–
it’s not everybody– but you could see that Julia is
happening in every department at MIT, just about. If your name is missing, or
your department’s missing, please let me know
and I’ll add it. And I’ll also give a plug
for Manvitha’s poster. You’ll see her later today. But I want to say
something about how this is more than just– I could build a calculator and
mass produce it and give it to everybody at MIT. And I could say, oh
yeah, everybody’s using my calculator. But there’s something
different that’s happening. And this is what’s
exciting me more. People are talking to each
other across departments. People are using each
other’s software. And people are
building– it’s not just everybody doing the same
software reinventing the wheel. People are going bigger
and bigger and bigger. And this is really
what the excitement is. This is what we want
to see from computing. And it’s exciting for me
to watch exactly that. OK. And this is my last slide. And this is kind of related
to my previous slide which is the notion of how software is– software for sure is
mathematics gone live. There’s no doubt about it. And it’s enabling us,
as Professor Boyd said. But it’s actually
even more than that. I mean, that’s pretty good,
that mathematics going live. And we’ve gone far with that. But it’s actually
more than that. And this is the sort
of thing that I’m not sure I appreciated until just
a year or two ago myself, but I’m watching it happen. And the idea is when
you can actually compose software, when
software can work together with other software
so you really can build upon other
software, things that you can’t even imagine
happening start to happen. So I’ve got sort
of a bad example, and then I’ll give you the
more modern good example there. In the box there, I have
an example of a homework that I gave in my
parallel computing class. This was an old homework. I only did it once. I didn’t dare do it again. But what I did was
I asked students to download a parallel program
off the internet, anything they wanted, and make it run. Sounds simple enough. 75% of these good,
hardworking MIT students succeeded, but not 100%. Then I asked them
to do two things. You can compute a fast
Fourier transform on a matrix and invert it. You know, whatever. And they couldn’t do it. Nobody could do it. Nobody could get it
to work together. One student finally got it
working after the deadline. And he’s gone on to become
pretty famous in the area. So nobody could do it. And that’s a problem. Now what’s happening today. And I’m sort of seeing
it in the Julia world, and it could happen
in any world that lets software compose, is you
could do something like take a machine learning program. Machine learning is built
on matrices with parameters. That’s what deep
neural networks do. What if you’re creative? I don’t want to use
matrices with parameters. I want to think out of the box. I want to think differently. I want to use
differential equations. Well, Chris [INAUDIBLE] is doing
that with the Julia software because the technology lets you. He goes ahead and does
it, and they’re now using that in
customized medicine now to be able to give
the correct dosages for individual people. So I’m going to finish
with my motto here, which is that when software
composes, humans compose. And I literally mean working
together and being creative. So thank you very much. [APPLAUSE] Thanks, Alan. So next up is Wendi Heinzelman. Wendi is the Dean of the
Edmund A. Hajim School of Engineering and
Applied Sciences at the University of Rochester. She’s also a professor in
the Department of Electrical and Computer Engineering
with a secondary appointment in the Department
of Computer Science. Her research interests
span diverse areas from wireless communications
and networking to mobile cloud computing and
multimedia communications. Wendi. Thank you. It’s an absolute pleasure
to be back at MIT. I graduated from here
a few short years ago. And so it’s really nice to be
back and see so many professors and colleagues who I
haven’t seen in a long time. So thank you for the
invitation to come and speak. Let me get that working. Where am I aiming this? The big button? There we go. OK. So I don’t think I have to
convince anyone in this room, but there are a lot of people
who don’t really understand that there is basically no
field today that doesn’t either produce or consume just massive
enormous amounts of data. And that data is
really the thing that’s going to drive the new
innovations, the new insights into those fields. So I loved hearing the
example this morning from the humanities about
the program that figured out all the words of
she and he and him and her in, like, massive
amounts of textbooks. Can you imagine asking graduate
students to do that by hand? You know, just 10,
15 years ago, that’s what you would have had to do. It’s almost impossible. But nowadays, we have the
tools and the techniques to be able to gather
that data and make key new insights that we
could never make in the past. And really, data
is the new gold. It’s going to be the new thing
that is going to set industries apart, that’s going
to make them be able to come up with new
advances and new techniques. And so it’s really important
that any student who is educated in the 21st century
understand how important this is, understand how to
compute on the data, and how to be able to make these
inferences out of that data. Now, computational thinking
is not just about coding. I certainly think it’s important
that every student know how to code. And many students,
particularly here at MIT, probably all of your students
come in knowing coding, whether they’re in
the music department or they’re in the
aerospace department. They are tech savvy. That’s probably
one of the things that attracts them to MIT. But that is not the
case in hundreds of universities and
institutions around the country where many students come in
never having touched a computer before, never having coded. They certainly have
their smartphones and they’ve played on
them, but they’ve never actually done any
design, analysis, creation of their own. And so it’s really
important that we do teach them how to code. But it’s also important
that we teach them about computational thinking. So it was already talked
about abstractions before. I think abstraction
is a key concept where we have to get
students to understand that there are these massive
problems that they’re trying to solve. If you can abstract away
some of those details– maybe you come
back to them later, maybe you don’t need to
come back to them later– that helps you solve
those problems. Same thing with decomposition. If you can take
a massive problem and decompose it into
manageable pieces that you do know how to
solve, and then build it back up together to solve
the original problem, again you’re going to get
really interesting new insights and you’re going to be able to
find new solutions to problems. Obviously, algorithm design. That’s sort of one of the keys
to being able to describe step by step how you can go
about solving a problem or doing something. And then, finally,
pattern recognition. We all know how important
pattern recognition is becoming. We have lots of different AI
machine learning techniques that are basically taking
all this massive data and figuring out how
to find these patterns and how to use those to
predict things going forward. Now I’m going to talk about a
few different models for how we can teach this sort
of computational thinking to all students and in
particular, in this panel, we’re focusing on science
and engineering students. And so as I mentioned,
I feel very strongly that for a student to be
educated in the 21st century, they need to have some
sort of computing chops that they can go out
into the world in. And this is not just
about getting a job but as someone
was saying before, it’s about how are we
going to advance all sorts of different disciplines. Having students
educated in these skills is going to make
a huge difference. So in the foundational
computing model, the idea is that computing
is sort of a generic skill that all students need to learn. This is similar to how we’ve
been teaching math in science and engineering over the past
several decades, I would say, where in the current model
students take math courses, they take their calculus,
differential equations, linear algebra classes. They all take that
in years one and two. And then we all build on that. We assume the students
know that math, and we can use it in our
classes that we teach in the disciplines themselves. You can imagine a similar
model in computer science where you have computing skills,
very introductory courses that are taught that are open
to all students within all of the disciplines. They take those courses. Everyone assumes that once
you complete those courses, you have the skills and then
you can use those skills in your subsequent classes. And there are pros and
cons to this model. So one of the pros
is that you’re creating a standard skill set
upon which everyone can build. And you’re providing
the education, you’re providing the
knowledge of these techniques by the experts in
the field themselves. Another advantage is
that oftentimes students will change their major. They might start as a
biologist and decide, I really don’t
want to do biology, I’d much rather do biomedical
engineering or chemistry. And if they have a sort of
common skill set that everyone can build upon, they can
transfer those skills into the other majors. However, it’s really hard for a
computing course or any course to be everything to everyone. And so this makes it
very challenging for how do you teach these courses that
really meet the needs of all the different disciplines. And of course, this creates
a very, very heavy load on computer science which
becomes a big issue. The second model is
teaching computing as a domain-specific skill where
you’re actually teaching it within the domains
themselves, and you tailor computing, the
skills that are taught, as well as the
examples that are used to the discipline themselves. And this has a lot
of advantages in that the domain-specific examples
can be really motivating to students,
especially students who think, oh, computer
science, computing, I have no interest in this. I’m going to be a biology major. I don’t need to know this. But if you teach it to them
within the context of something they’re really interested in,
it can be very motivating. It also does distribute the load
to teach all of these courses. However, it’s very
challenging to ensure that you have experts who can
teach these courses in all of the different disciplines. And then there’s the model
of the CS plus X, which I believe there is a whole
panel on this afternoon, so I’m not going to go
into much detail on this. But this is basically the idea
that you take half your courses in computing, half your courses
in whatever other discipline you have, and kind of meld
those together into degrees. And one of the things I
really wanted to focus on is we know that
computing in general has not attracted
the numbers of women or underrepresented
minority students that are representative
of the population. And we also know the importance
of diversifying our field because without getting lots
of different backgrounds, lots of different ideas, we’re going
to be missing out on solutions. We’re going to be
missing out on systems that have inherent
biases in them that we don’t see because we’re
not part of those communities. And so it’s really important
that we diversify the computing field. And there’s been a lot of work. I want to call out the
CRAW, the Grace Hopper Celebration of
Women in Computing, and the TAPIA conferences. These are all great ways
to create communities among diverse groups of
students so that they can feel welcome
in the communities and thrive in these communities. One of my concerns is that some
of the science and engineering departments are much
better at attracting underrepresented students and
attracting women in particular. And so the concern is that we
don’t want computing courses to drive further away
some of these students. And indeed, what we’d
like to do is create nice on-ramps to computing
so that the students who take those courses and say,
hey, this is really fun. This is a lot of fun to code. It’s a lot of fun to think
about database systems. Maybe I could double
major in computer science, or maybe I could minor
in computer science. We actually could attract more
diverse students into computing by offering these different
on-ramps onto computing. And in fact, at
Rochester, we’ve done this in trying to create
lots of different ways that our students can learn
about computer science with zero background, not
having any skills in computing in the past. And what we’ve found
is that about 30% of our graduating class
is female at this point. It’s about 33% right now. And about half of those
are double majors. So half of them came in wanting
to major in something else, tried a CS course,
realized how great it was, how fun it was, and
then decided to double major in computer science. So I think that there’s
a real opportunity to help us diversify our
field by teaching computing sort of throughout the
disciplines as well. Thank you. [APPLAUSE] Thanks to all of you. That was great. So I think in the
interest of time, since what does follow this
session really is lunch, maybe I’ll just open it up to
questions from the audience. Great. Mic. So one of the things I’ve
been thinking about listening to these talks is
that when we want to get computer science used in
related fields, how much people from those fields actually need
to understand about computer science, right? If I’m a chemist,
I assume that I can use a spectrometer without
knowing how to build one. And I wonder whether we can
get to that point in computing where we’ve sort of boxed things
up enough so that they’re just tools that people use versus
the need to actually become a jack of all trades
computer scientist in order to do the work they
want to do in other fields. I know some of you have
opinions about this, so jump in. I think that’s–
actually, I can’t see you. There’s a column. OK, so you are here. I guess you couldn’t see me. Reciprocity. That’s a superb question. And I think actually we have
to struggle to achieve that. Actually, it works
both ways, right? How much– I guess the
traditional curriculum is that you teach people
everything in that field. You start from
the very beginning and then a year later
you know a little bit, two years later you
know a little bit more. And you teach them everything. And I think there’s
a new– actually, this also means for
doing outreach stuff. You need to condense– it’s
not like you shorten that. You throw away a
lot of that stuff. You abstract it away. So it would be wonderful
to have courses– I know they’re
starting to exist– that teach you just the basics
and a lot of is obscured. And it’s actually OK
as a professor when someone says, how
does that work, and you simply look at them and
you go, none of your business. And then you lean
forward, and say I’m going to let in on the
secret, I don’t even know. But it does. So I think it’s a
very good point. Wendi. Yeah, I’d also like
to address that. I think that’s an
excellent point. I think one of the
concerns that is not just the case of not knowing
how a microscope is built. When something goes wrong, do
you know that it went wrong? And so in the microscope case,
if something is malfunctioning, you’re getting
crappy data, you need to know that you’re
getting that bad data and why you’re
getting that bad data. I think the same thing is
true in a lot of computing instances, especially
with deep learning and with any kind of
machine learning techniques where, depending on
the data that you put in, the data you get
out is telling you something based on the data you put in. And if you look at
it as a black box and don’t really understand
how it’s working at all, you can get into making really
bad decisions because you don’t understand how it’s working. So I think there’s
a very fine line. I think for sure– and my
computer scientists tell me this all the time– it’s not that we need to
create computer scientists in every field. That’s not the case. We don’t want people
who are advancing the state of the
art in computing and designing new algorithms
and things like that. We need to get people the
skills so that they can use those tools and techniques. And that’s a different
thing than creating a bunch of computer
scientists sort of all across the community. To address Professor
[INAUDIBLE] question, I’d like to say yes and no. So less computer science
and more computer science is going to be my answer. Of course, it depends. If the thing that’s
being built is a tool, then you don’t need to know
how to do a bubble sort. That’s clear. If what you’re
doing is advancing computational
chemistry, say, and you are building a
computation on a grid, and so somebody in EAPS
and so is somebody else, maybe you do need to
start to figure out what computer science
abstraction that lets everybody work
on a grid and not have to reinvent the wheel
or push further ideas. And so it depends. Another question. Thank you so much for the talk. So my name is
[INAUDIBLE] I’m a postdoc in mechanical engineering. So I have a question about– so because when students they
choose the majors, sometimes they believe that they can have
better career because of major and sometimes they believe
that they like this major. So I was wondering
as an educator, is there any
difference to treating these different scenarios
and how to make sure that they align together? Thank you. I can address that. I think in any engineering
and science field, you’re going to have lots
of career opportunities. But we deal with this a lot
at the University of Rochester with humanities
majors, for instance. There’s a lot of parents
who tell their kids, don’t go into the humanities. You’re not going to get a job. And we fight back
very hard against that because there are
so many skills you get in the humanities
that will serve you well the rest of your life. And we have data from
our own students, for our alums, that show
that your major does matter for your
first job, and it has almost no impact after that. So it’s more about
the skills that you can get in those majors. And so we do try
to really encourage students to find what
they’re passionate about because whatever
you’re passionate about is what you’re
going to excel at. If you don’t like
what you’re doing, even if you think does
a good job at the end, you’re not going to do great in
it because you don’t enjoy it and you’re not putting your
heart and soul into it. So I think it’s really
important to make sure students are thinking
about what they enjoy, what they’re good at,
what they want to do, as opposed to just
thinking about a job. Now that being said, I think
infusing computation skills into everything is going to
make students that much more marketable when they get out. Thank you. Go ahead. Hi. Warren Seering, also from
the Mechanical Engineering Department. We’ve just heard that it depends
how much computer science do you need to know
to do something. If it depends, who decides,
and particularly can we trust the students to decide? Hmm. Who wants that one? It’s yours. [LAUGHTER] I tend to trust the
wisdom of faculty in consultation
with the students. So I’ll just say that. Any rebuttal? That’s an excellent answer. Faculty in consultation
with the students. Sounds like the right way. Great. A question. [INAUDIBLE] Excellent. We talked about
improving diversity. Before the break,
several of us were talking about how
computer science is just like mathematics. It’s something everybody
learns and they infuse it in their work. But by expecting students
to be A, skilled in math; B, skilled in CS, we’re probably
creating some new barriers to diversity because
the reason a lot of students who really have
the creativity and such, the problem solving
to be an engineer, is they drop out because
they can’t do the math. And now we’re
saying, well, you got gotta be able to do
the math and the CS. We know, in
underrepresented groups, math skills coming out of high
school are frequently poor. Now we’re saying, oh, and you
have to be good at CS too. Aren’t we creating
some new barriers? Tony, you may want
to address this. Others may want to address this. Sure. I mean, one of the core skills
is collaboration, right? And I mean, we like saying
at Pixar that making a film is a team sport. It takes 100 people
working together. There are artists
that really don’t have much technical skill. There are technologists that
don’t have much artistic skill. But they work together to
create these beautiful stories. And so I think the more we
can create opportunities for students to hone
collaboration– somebody said it earlier that it’s
something you have to teach, right? It’s not something
that’s emergent. And so I think
collaboration is something you really need to
focus on, especially in the context of diversity. I would also say,
again getting back to this concept of
on-ramps, that you have to have ways that kids
can get into these fields where they haven’t been
coding their whole life. And so that’s, I think, one of
the big turnoffs to many women and underrepresented
minorities in computer science is that they’re sitting in
a class with someone who built their own computer
from scratch when they were 10 years old, and
they’ve never done anything. And then you just feel
like, hey, wait a second, I’m not good enough. And that’s not the case. They just haven’t been exposed. They don’t have the experience. So if you can create
lots of ways– and you don’t want to take
the person who’s been coding their whole life in and do– you don’t want to hold them up. So you have to have
opportunities for them to go soar, but you also have to
have opportunities and on-ramps for those who are not
comfortable with this, who’ve never been exposed, to try it. And they may hate it and go
away, but they may love it. And so giving them
that opportunity– and I think the same
thing is true with math. We’ve been experimenting
at Rochester with creating different
types of math courses that are teaching
the same content, but maybe slowing
it down, having it be utilizing summers– so students do
have to stay and we pay for them to
stay over the summer so that they can
kind of get caught up with some of the
other students who had great math in high school. So it’s a huge issue. And unfortunately, I
think it’s something we have to address
in the high schools that we have such lousy
math, science, and computing education in so many
inner school high schools and such great versions of those
in suburban, well-off, affluent high schools that we create
this two class system. How do we address that
both at the high school level and then creating
on-ramps at the college level? My name is Curt Newton. I’m with MIT Open Learning. Reflecting on Professor
Edelman, the story you’re telling about how
you were able to come up with this really
fortuitous collaboration between the climate modelers
and what you’re doing in Julia, how are we doing at people who
have those kind of problems that they’re wrestling
with finding the resource? How proactive or
how intentional are we able to be versus
just getting lucky? Everyone’s looking at me again. So you know, the internet
is an amazing thing. And I’m sure we’re at
the tip of the iceberg as I think your
question suggests. There could be way
more collaborations. GitHub is an incredible thing. People can collaborate online. The Julia project– many
people were involved in the creating of
Julia who had never met each other until
some conference happened. There’s lots of ways now. And probably we need to foster
that as part of the education until it becomes
familiar to everybody. Any other questions? Please. Hi. My name is [INAUDIBLE]. I’m a PhD from MIT from the
Media Lab, then research scientist here the last 20
years and entrepreneur building technology companies and
e-learning, teaching computer science, design thinking,
computational thinking. I think that one point
about what many of you are talking about is that
we want to teach computing in the disciplines– we heard it in the
earlier panel– because it teaches
students how to think, how to solve problems. And it’s a great tool to
think about that discipline in some creative,
innovative way. And yes, learning about
the disciplines teach the engineers and the
computer scientists, give them tools to
think about programming and making decisions. And what’s lacking a
little bit is how we also orient the students, not just
about ethics but about impact, solving problems that matter,
doing engineering and computer science, and using these tools
in ways that are actually changing the world. And maybe you can talk a little
bit more about that, Wendi, when you are hinting towards
starting doing the computer science in the disciplines and
the disciplines in the computer science already
in the K12 system so people can grow and
be ethical but also solve problems that matter and
really make an impact on what the world needs now. Yeah, no, I think
that’s absolutely key. And I love the panel that we
had before on teaching ethics in computing and in
all of the disciplines because if you think about
it as an afterthought, you’re already using
tools and techniques now that are inherently based
on a set of assumptions. If you think about it from
the get go, from the start, you’re looking at how you create
solutions that are ethical. Now, that being said,
of course, there’s all sorts of unintended
consequences. And it’s going to
be impossible to be able to think through all
the potential outcomes of technology use in all
of the different fields. But if you have lots
of different people from different backgrounds
coming together to think about these
ideas, and I think bringing in the philosophy
folks and the ethicists to help kind of formulate
even what the questions are, because it’s very hard
for engineers and computer scientists who haven’t thought
about this before to be thinking about that– so having those
interdisciplinary teams I think will help and go a long
way towards addressing that that concern. Tony, do you want
to say anything about computational thinking
in the context of youth storytelling? Sure. This kind of comes to teaching
it from within another domain. So we piloted a CS course with
the Oakland Unified School District. It was a middle school
class where it was– they have a, you know, teaching
how to build web pages. This was a second class which
was coding for storytelling. And so about a
third of the class was walking students through
the storytelling principles in season three. And so that came
out of that project, that part of the course with
an original story of their own, with original
characters, so really kind of their personal voice
that meant something to them. And then the rest
of the class was how do you realize
that story in code. They were using Code.org,
but it could have been Scratch or other things. So I think it brought students
that might not otherwise be interested in computing– you know, they’re coming from
the arts and humanities– brought them into
the field a bit. OK. I think there’s
one more question and then we’re going
to break for lunch. Hi. I’m Roy McDonald,
PhD student here. And we heard about the
importance of making sure that software is open
source especially as things become
more black box, and I think that’s a tradition
that looks set to continue. But it seems sometimes
that the data required to kind of either put things
into practice or push research or play around with
your own ideas, if you’re going
to start companies in that kind of things,
it seems that data is becoming less available
sometimes, especially as more and more of it is being
collected by private companies. And I was curious what you
think universities’ role is in making sure that that’s
available to students. Thank you. I would say that we need to do
our best to make this a value. And we should all be
talking about this question, about how important it is
to have access to data. And very often the very
same private company that trying to protect
its data, picking sort of in its own self-interest, as
perhaps companies need to, might even benefit in ways they
don’t realize by opening it up. And so the more stories
like that, the more people realize that, the more
we all ask for that, the better we will all be. I think there’s also a role
for government agencies. So for example, NSF has
a number of programs that is trying to entice and
provide funds for faculty, students to create
data sets that then have to be open, that are
then available for the entire community to build off of. So I think the more that
agencies like NSF and NIH really support open
access of the data, the better off
we’re going to be. I would say one thing. I think your point is dead on. Access to data is extremely– public access to data
is extremely important. And it’s not that good now,
and it’s getting worse. But I think actually
one of things we’ll have to address
to take care of that is a bunch of incentive
structures in universities and among researchers. So what’s wonderful is if
you win some fancy prize or you write some fancy
paper or something like that. There are other extremely
important artifacts. One is software that
we’ve talked about. Another is data and
making it available. These provide incredible
value to a very wide range of researchers. And it’s approximately not
valued at universities. I’ll speak from my own. Maybe at MIT where it’s
much more enlightened, that’s not the case. [LAUGHTER] But I think that’s– now the good news is that sort
of the younger people coming up who will eventually
be running things, they’re totally board with this. So it’s a very good point. So we are going
to wrap it up now. And please join me in
thanking our great panelists. [APPLAUSE]

Posts created 20963

One thought on “Teaching Computing in Science and Engineering

  1. Alright so heres the advice/avdannce type thing, voice technicitics or technology, lets say your company is a worm of whole of fi "prairie dogs" .. there not fuckin dogs, there moles with allergies, ground worms… i think thats what we have the chupacrabla for
    Alright, do praie dogs care about there kids, is that only thing there care about, so what you do is " some people call it sucking the juice", you say your kids will fucking die, you can put cancer on them, but the chupacobra ispretty good way to go, kind of mind freak them, its so that the prairie dogs start eating themselves, going fuckin nuts…eventually it is that there kid is the cubacobra, and there parent is afraid they start sacrficing there self, or goin haywire. Im ust thinking about how to stradegicallythat are bad, that are truley, liars… you know yo can take there names, bu

    ( i might of been partly laced up by a mongoose ( i litterly had them in backyard) but ive alaways been connected to animals, alot of kids get connected to bikes and call them "mongoosess BMX's and things, my nieghboor had one) in the past,
    so to speak
    I spent alot of my life lookin for the chupacobra, no joke, in the mangroves, any time i knew my parents were going to be out at a movie or the chiefs hut, i would grab my hiawaiin sling, go down to the tree for with my googles ( lived on a colde-sack on the the highest mountian in puerto rico, i could to the beach in 3 minutes, its was all extreme down hill, super speeds), I got underwater flashlight, that helped if i friends stay over, they either stayed at home or the house went with me, or we went out, type stuff ( some people where into catching iguanas or snakes boa constricters,"oh and i met a pack of wild dogs, they where really cool, i used to feed them all kinds of shit, (started with stealing my sisters lets overs from the friderator, then bringing it down to them, then i found out they fish, they basically ate everything, that iw ould put in a bowel type shape i even got them to eat out of a cocunut, thats hard to do for a wild pack of animals in the past, By the way, they looked like the happies fucken animals you ever saw, imagine in stead of natures sarah mcglcalin commerical where you see dogs starving, or a wild pack (those dogs never came within 6ft or 9thousand eet of me, they where alaways alawasy far away in the sunlight, but they woul ever know and then look over, by formation after eating and say "that was awesome" ["salty dog influencecapitol grillTGBtheway imean it" of wolves running huntin and eating, a bunch of pack cool lookin dogs, running free playing swimming, be on there own, they looked like golden retirievers, bowns ,hounds, cheetas, a cas and gos, they all looked cool, they all had hair, fur all types, the played in salt water all day, and drank numerous sources of fresh water, it was likea open spring of cool dogs but that chupcobra(him or her) was never we saw him a couple of times, looked like a rear view mirrior or "agency shadow" type. (lots of big fish come in at night TGB the way i mean it. )
    so to speak i was 9- to 12
    14 years olds around those times… been there since a couple of times, got some stuff going on TGB the way i mean it

Leave a Reply

Your email address will not be published. Required fields are marked *

Begin typing your search term above and press enter to search. Press ESC to cancel.

Back To Top