Faculty committee recommends a computational thinking GIR

A committee of faculty across departments recommended a 12-unit “computational thinking” requirement for all undergraduates, which would cover programming basics.

This requirement would not apply to current students.

The goal of the requirement is to allow students to develop the skills and intellectual framework to “construct or recognize useful, well written algorithms,” “implement them,” and “use them to model physical, biological, or social systems.”

Yet, although computational thinking is broader than programming, the course would cover programming basics.

Topics would cover at a minimum: learning about a specific programming language; fundamentals of programming including loops, recursion, and arrays; programming design principles such as modularity and abstraction; categories of algorithms including greedy, divide-and-conquer, and hill climbing; and modeling and visualizations.

Other topics that may be explored in such a requirement include understanding the limits of computers and using algorithms to enrich art and design.

Computational thinking, according to the draft report published by the committee in September, goes beyond learning a programming language or tools like Microsoft Office. More than programming syntax, it is a mode of thinking.

Edsger Dijkstra, a notable computer scientist, thought similarly when he stated that “computer science is no more about computers than astronomy is about telescopes.”

The committee argued that the widespread use of computers means that even students who are not computer science majors should be aware of the major issues in the field. The requirement is not being offered solely for “pragmatic advantages” that computational tools can offer in classes and careers, members emphasized. Rather, computational thinking provides a unique intellectual framework and can aid in communicating precisely. Thus, as a mode of thinking, it is beneficial for all disciplines.

Many departments do support a requirement for all MIT undergraduates to develop computational skills. Departments in support of the requirement include Economics, Brain and Cognitive Sciences, Physics, Biology, Music, and Architecture. The committee drafting the report itself included faculty from EECS, Physics, Music and Theater Arts, Mechanical Engineering, Architecture, Sloan, and Chemistry.

But some faculty do not agree. A few groups surveyed felt that students in their discipline would not benefit from computational thinking.

Almost 80 percent of last year’s senior class graduated having taken a computational class. Seventy-seven percent took a computational course due to degree requirements, and 1.6 percent took it optionally.

To increase the number of students graduating with computation experience to 100 percent, the institution proposed three possible variations of the requirement.

One possible variation of the requirement would be a single subject that surveys computational thinking. A concern is that vast differences in prior computational experience will cause some students to struggle and others to be bored in the class. The committee doesn’t recommend this option.

Another potential variation of the requirement would be a disciplinary-specific computation course. A concern is that some departments may not have resources to develop such courses. Still, the committee states this option is “worth considering.”

Another alternative would be a 6-unit interdepartmental class, followed by a 6-unit discipline-specific class. Again, a concern is that some departments may not have resources to develop such courses. Nonetheless, the committee finds this option the most favorable.

One pitfall of any class covering such topics, however, may be an unintended and disproportionate emphasis on programming syntax and other low-level details, rather than on a mode of thinking.

Despite advantages of computational thinking training, the committee recognized that they “cannot reasonably expect MIT students to add another graduation requirement without negatively impacting their work and lives.” Thus, the committee explored some workarounds to lighten the student load.

Allowing people to test out of the requirement is a possibility. However, this places a disproportionate burden on students who went to high schools with lower academic standards, and therefore on students who would already be struggling.

Making one GIR optional was another way the committee considered lightening the load. However, this would undermine the point of adding a GIR – all students would not necessarily graduate with computational thinking skills.

The committee found the most favorable option changing one of the two REST (Restricted Elective in Science and Technology) requirements to a computation requirement.

If MIT were to implement an undergraduate-wide computational requirement, it would be the only one among its peer institutions, besides Harvey Mudd, to do so. The committee thus stressed the “opportunity for MIT to lead the way in formalizing the expansion of education in computational thinking.”

Dijkstra agreed that computer science shapes our thinking when he stated that “It is not only the violin that shapes the violinist, we are all shaped by the tools we train ourselves to use, and in this respect programming languages have a devious influence: they shape our thinking habits.”

Before drafting the report, the group asked for feedback from all faculty members and students. They received feedback from seventeen faculty members and two students.

Further feedback on the proposed requirement may be sent to computation-study-group@mit.edu.