Placeholder Image

Subtitles section Play video

  • The following content is provided under a Creative

  • Commons license.

  • Your support will help MIT OpenCourseware continue to

  • offer high-quality educational resources for free.

  • To make a donation, or view additional materials from

  • hundreds of MIT courses, visit MIT OpenCourseware,

  • at ocw.mit.edu .

  • PROFESSOR: Good morning.

  • Try it again.

  • Good morning.

  • STUDENTS: Good morning.

  • PROFESSOR: Thank you.

  • This is 6.00, also known as Introduction to Computer

  • Science and Programming.

  • My name is Eric Grimson, I have together Professor John Guttag

  • over here, we're going to be lecturing the course this term.

  • I want to give you a heads up; you're getting some serious

  • firepower this term.

  • John was department head for ten years, felt like a century,

  • and in course six, I'm the current department

  • head in course six.

  • John's been lecturing for thirty years, roughly.

  • All right, I'm the young guy, I've only been lecturing

  • for twenty-five years.

  • You can tell, I have less grey hair than he does.

  • What I'm trying to say to you is, we take this

  • course really seriously.

  • We hope you do as well.

  • But we think it's really important for the department

  • to help everybody learn about computation, and that's

  • what this course is about.

  • What I want to do today is three things: I'm going to

  • start-- actually, I shouldn't say start, I'm going to do a

  • little bit of administrivia, the kinds of things you need

  • to know about how we're going to run the course.

  • I want to talk about the goal of the course, what it is

  • you'll be able to do at the end of this course when you get

  • through it, and then I want to begin talking about the

  • concepts and tools of computational thinking, which

  • is what we're primarily going to focus on here.

  • We're going to try and help you learn how to think like a

  • computer scientist, and we're going to begin talking about

  • that towards the end of this lecture and of course

  • throughout the rest of the lectures that carry on.

  • Right, let's start with the goals.

  • I'm going to give you goals in two levels.

  • The strategic goals are the following: we want to help

  • prepare freshmen and sophomores who are interested in majoring

  • in course six to get an easy entry into the department,

  • especially for those students who don't have a lot of prior

  • programming experience.

  • If you're in that category, don't panic, you're

  • going to get it.

  • We're going to help you ramp in and you'll certainly be able to

  • start the course six curriculum and do just fine and

  • still finish on target.

  • We don't expect everybody to be a course six major, contrary to

  • popular opinion, so for those are you not in that category,

  • the second thing we want to do is we want to help students who

  • don't plan to major in course six to feel justifiably

  • confident in their ability to write and read small

  • pieces of code.

  • For all students, what we want to do is we want to give you

  • an understanding of the role computation can and cannot play

  • in tackling technical problems.

  • So that you will come away with a sense of what you can do,

  • what you can't do, and what kinds of things you should use

  • to tackle complex problems.

  • And finally, we want to position all students so that

  • you can easily, if you like, compete for things like your

  • office and summer jobs.

  • Because you'll have an appropriate level of confidence

  • and competence in your ability to do computational

  • problem solving.

  • Those are the strategic goals.

  • Now, this course is primarily aimed at students who

  • have little or no prior programming experience.

  • As a consequence, we believe that no student here is

  • under-qualified for this course: you're all MIT

  • students, you're all qualified to be here.

  • But we also hope that there aren't any students here who

  • are over-qualified for this course.

  • And what do I mean by that?

  • If you've done a lot prior programming, this is probably

  • not the best course for you, and if you're in that category,

  • I would please encourage you to talk to John or I after class

  • about what your goals are, what kind of experience you have,

  • and how we might find you a course that better

  • meets your goals.

  • Second reason we don't want over-qualified students in the

  • class, it sounds a little nasty, but the second reason

  • is, an over-qualified student, somebody who's, I don't know,

  • programmed for Google for the last five years, is going to

  • have an easy time in this course, but we don't want

  • such a student accidentally intimidating the rest of you.

  • We don't want you to feel inadequate when you're

  • simply inexperienced.

  • And so, it really is a course aimed at students with little

  • or no prior programming experience.

  • And again, if you're not in that category, talk to John

  • or I after class, and we'll help you figure out where

  • you might want to go.

  • OK.

  • Those are the top-level goals of the course.

  • Let's talk sort of at a more tactical level, about what do

  • we want you to know in this course.

  • What we want you to be able to do by the time you

  • leave this course?

  • So here are the skills that we would like you to acquire.

  • Right, the first skill we want you to acquire, is we want you

  • to be able to use the basic tools of computational thinking

  • to write small scale programs.

  • I'm going to keep coming back to that idea, but I'm going to

  • call it computational thinking.

  • And that's so you can write small pieces of code.

  • And small is not derogatory here, by the way, it just says

  • the size of things you're going to be able to do.

  • Second skill we want you to have at the end of this course

  • is the ability to use a vocabulary of computational

  • tools in order to be able to understand programs

  • written by others.

  • So you're going to be able to write, you're going

  • to be able to read.

  • This latter skill, by the way, is incredibly valuable.

  • Because you won't want to do everything from scratch

  • yourself, you want to be able to look at what is being

  • created by somebody else and understand what is inside of

  • there, whether it works correctly and how you

  • can build on it.

  • This is one of the few places where plagiarism

  • is an OK thing.

  • It's not bad to, if you like, learn from the skills of others

  • in order to create something you want to write.

  • Although we'll come back to plagiarism as a

  • bad thing later on.

  • Third thing we want you to do, is to understand the

  • fundamental both capabilities and limitations of

  • computations, and the costs associated with them.

  • And that latter statement sounds funny, you don't think

  • of computations having limits, but they do.

  • There're some things that cannot be computed.

  • We want you to understand where those limits are.

  • So you're going to be able to understand

  • abilities and limits.

  • And then, finally, the last tactical skill that you're

  • going to get out of this course is you're going to have the

  • ability to map scientific problems into a

  • computational frame.

  • So you're going to be able to take a description of

  • a problem and map it into something computational.

  • Now if you think about it, boy, it sounds like grammar school.

  • We're going to teach you to read, we're going to teach you

  • to write, we're going to teach you to understand what you can

  • and cannot do, and most importantly, we're going to try

  • and give you the start of an ability to take a description

  • of a problem from some other domain, and figure out how to

  • map it into that domain of computation so you can do

  • the reading and writing that you want to do.

  • OK, in a few minutes we're going to start talking then

  • about what is computation, how are we going to start building

  • those tools, but that's what you should take away, that's

  • what you're going to gain out of this course by the

  • time you're done.

  • Now, let me take a sidebar for about five minutes to talk

  • about course administration, the administrivia, things that

  • we're going to do in the course, just so you know

  • what the rules are.

  • Right, so, class is two hours of lecture a week.

  • You obviously know where and you know when,

  • because you're here.

  • Tuesdays and Thursdays at 11:00.