When Robert Talbert, associate professor of mathematics and computing science at Franklin College, was looking for inspiration and resources for his CMP 150 Computer Tools for Problem Solving course, he turned to MIT OpenCourseWare's 6.00 Introduction to Computer Science and Programming course, taught by Professors Eric Grimson and John Guttag.
Initially, OCW was helpful to Talbert personally in updating his own programming skills. "I had actually not programmed in three to four years, and so my programming skills were rusty to say the least. The OCW course was actually my re-training course in programming in general, and then I adapted what I was learning generally about programming to the particulars of my course. I wish I had had a course like the OCW course when I was an undergrad!"
Professor Talbert's class was not a direct equivalent of courses offered at MIT—his was MATLAB®-based—but OCW was nonetheless the perfect resource for designing and supporting the course. Talbert planned to teach using an "inverted classroom" approach, in which students acquire the bulk of the course information outside of class, through print and media resources, do preparatory homework assignments, and then put their basic knowledge to work through in-class lab activities.
He recognized that while MIT's 6.00 Introduction to Computer Science and Programming was a Python™-based course, it was conceptually very similar to the one he planned to teach. "Of the 15 students in the course," Talbert explains, "only two had ever had any exposure to computer programming before in any sense, and I really liked the OCW course's way of introducing a sequence of simple yet progressively more complex examples to motivate the basic constructs of programming such as loops and branching structures."
Because of the differences in the two courses, Professor Talbert did not use any of the OCW assignments directly in his class, but he drew inspiration from them as he designed his own assignments.
"One of the out-of-class assignments that students do early on in the programming portion of the course was directly adapted from (and might be identical to) one of the sets of examples that Professor Guttag used in an early lecture in the OCW course," says Talbert. "I certainly made this homework problem up intending to replicate what Professor Guttag was doing. Students are directed in this homework assignment to change various parts of the MATLAB code, execute the script, and then describe what happens. Then, after they hand in the homework and then work on the related lab, they use what they learn about these MATLAB functions to do more complicated things."
Beyond the actual resources used, the approaches present in the OCW course inspired Talbert to be more ambitious with his goals for the course. "More generally, OCW was an inspiration to me to put a fair amount of programming in the class at all — the course proved to me that you can teach elementary programming concepts in a clear, comprehensible way that is accessible to freshmen who are not already computer nerds and get those students writing clean, functional code that does interesting things. That, above all, was my goal in the programming portion of the class, and I think by and large we succeeded."