More Introductory Computer Science

A visualization of clusters found by a clustering algorithm.

By Joe Pickett, OCW Publication Director

Back in February we told you about a new OCW course in computer science, 6.0001 Introduction to Computer Science and Programming in Python. It’s a true introduction, for students with little or no programming experience.

Now you can develop your newly acquired skills further with the 2nd module in the sequence, 6.0002 Introduction to Computational Thinking and Data Science. It picks up where 6.0001 left off, providing you with “an understanding of the role computation can play in solving problems and to help students, regardless of their major, feel justifiably confident of their ability to write small programs that allow them to accomplish useful goals.”

The OCW site has full video lectures, featuring Professors John Guttag and Eric Grimson, along with lecture slides and supporting code, problem sets (so you can try out what you’ve learned), and files to install the latest version of Python, version 3.5.

Topics include Optimization Problems, Stochastic Thinking, Monte Carlo Simulation, Understanding Experimental Data, Introduction to Machine Learning, and Clustering.

This module offers a fresh approach to teaching how to think like a computer scientist. It joins our collection of Introductory Programming courses from MIT’s Electrical Engineering and Computer Science department, and is sure to join 6.0001 as one of OCW’s most visited courses.

New Computer Science Courses!

A blue and yellow fractal image.

A fractal generated from the hailstone sequence, as discussed in Lecture 1 of 6.005 Software Construction. (Public domain image from Wikipedia.)

By Joe Pickett, OCW Publication Director

One of the great strengths of OCW as an educational resource is its extensive list of course sites from MIT’s Department of Electrical Engineering and Computer Science. You might think, with so many courses published from the EECS curriculum, that OCW’s work for this department has reached a plateau.

But OCW continues to climb higher, augmenting and refreshing the course list, and two new publications present superb cases in point.

Learning to Think Like a Programmer

6.0001 Introduction to Computer Science and Programming in Python represents MIT’s evolving approach to this core subject, in which students with little or no programming experience learn how to write small programs that accomplish useful goals. 6.0001 is a six-week module using the Python 3.5 programming language.

Screenshot from video, of woman speaking in front of a chalkboard, holding a laser pointer.

Dr. Ana Bell explains a Python programming example (“robot cheerleaders”) in 6.001 Lecture 3.

The course site, showing the Fall 2016 class, has full video lectures featuring Dr. Ana Bell and Professor Eric Grimson. Slides and code for each lecture are also provided, as are interactive in-class questions with videos showing the answers to those questions. The textbook for the course was written by Professor John Guttag, who is well known to OCW fans for his popular OCW Scholar course, 6.00SC Introduction to Computer Science and Programming. The 6.0001 assignments page has helpful links to the 6.0001 Style Guide and a handy list of programming resources, including the Python Tutor.

Learning to Construct Software

Students who have developed some programming skill might then move on to 6.005 Software Construction, as taught in Spring 2016 by Professor Rob Miller and Dr. Max Goldman. As the instructors say in the syllabus, the course “introduces fundamental principles and techniques of software development, i.e., how to write software that is safe from bugs, easy to understand, and ready for change.”

Image containing some notes and a bubble+lines graph.

“Graphs—what are they good for? Poetry!” A page section from the problem, “Poetic Walks,” in the 6.005 Assignments.

An advocate of active learning, Professor Miller has his MIT students read a carefully structured textbook before coming to class so that most time can be spent doing exercises. The OCW site includes the full set of class readings, along with problems sets and a project, the ABC Music Player.

6.005 uses the Java programming language, for which help is available via the 6.005 Getting Started page and OCW’s popular course on Java, 6.092 Introduction to Programming in Java.