Portfolio of Allen Downey at Olin College
Allen Downey
March 2018
This annual report describes my activities and achievements since I submitted my reappointment portfolio in August 2016.
The following themes connect my work in developing students, building and sustaining Olin College, and effecting change in engineering education:
A major goal of my projects is to develop new approaches to engineering, math, and science using computation. These projects make the material more engaging, shift the balance from theory toward practice, and bring into the undergraduate curriculum topics often assumed to be accessible only at the graduate level.
Another goal of my work is to make working with data and reasoning about probability a more central part of the engineering toolkit. In many engineering schools, students study mathematical statistics in a way that does not prepare them to work with real data; and almost none of them study Bayesian statistics. I want to change the way engineers learn about these topics so they use data to answer questions and guide decision-making under uncertainty.
All of my books are available under free licenses that allow readers to copy, modify, and redistribute them. These licenses make possible many translations, adaptations, and derivative works, and lead to collaborations with co-authors all over the world.
In the last few years, O’Reilly Media has published translations of my books in Chinese (traditional and simplified), Japanese, Korean, French, Italian, Spanish, Portuguese, German, Polish, Russian, and Croatian.
In addition, volunteers have translated my books into other programming languages, including a recently-published version in Perl and versions-in-progress in Julia and Go.
My course material, slides from my presentations, and material from my workshops are published on the web. And the supporting code for my classes and books are on GitHub, where anyone can copy, modify, and make corrections and contributions.
Because my books are freely available, they are used in classes all over the world. Since my last report, I have heard from people using them at Lulea Technical University in Sweden, McGill University in Canada, the University of Puerto Rico, Tecnológico de Monterrey in Mexico, Habib University in Pakistan, Khon Kaen University in Thailand, and Sri Sivasubramaniya Nadar College of Engineering in India.
In all of my projects, I “release early and release often”, getting feedback from readers and inviting collaboration. Following the principles of Open Science, I publish data and code along with research results, allowing others to reproduce and modify my analysis. And I don’t publish in venues that do not make papers and supporting materials freely available.
A lot of what students write in college doesn’t work because they are asked to write with no audience in mind and no goal for the project. In my classes, especially Data Science and Complexity Science, I create opportunities for students to write for real audiences.
I also engage students in my writing projects, often using independent study projects to develop and test preliminary materials, then inviting students to provide feedback on early drafts, and providing opportunities for them to contribute material.
All of these projects are intended to have impact within Olin, by preparing students and continuing the development of our curriculum, and outside Olin, by providing materials used by other colleges, helping professions review or retrain, and influencing the content and pedagogy of undergraduate engineering education.
I am continuing work to develop our curriculum in data science.
In Fall 2016 I taught Computational Bayesian Statistics and began work on the second edition of Think Bayes. I wrote Jupyter notebooks that contain the examples and exercises from each chapter, and developed new examples. I published several blog articles based on student work. 1 2 3 4
In November 2016 I published two blog articles related to probabilistic predictions and election results. 1 2
In January 2017 I developed a new series of notebooks that present the code and exercises from Think Stats 2e. I published a series of blog articles with examples from the notebooks. 1
In Spring 2017 I taught Data Science using the new notebooks. Over the course of the semester, I published a series of blog articles highlighting student projects. 1 2 3
Complementary to my teaching at Olin, I have developed a number of workshops related to Data Science.
I presented a half-day workshop, “Computational Statistics”, at SciPy 2017 in Austin, TX, and offered it as an online class with O’Reilly Media in October and December 2017.
I presented a half-day workshop, “Bayesian Statistics Made Simple”, at The Boston Data Festival, September 2016, and at ODSC East in Boston, May 2017. I developed and presented a customized workshop for Wayfair, Inc. in Boston, March 2017.
These workshops have turned out to be useful in classes, as well. In Computational Bayesian Statistics, I run the workshop during the first week of class to provide a fast, high-level overview of the whole class. In Data Science, I run the workshop later in the semester as a one-week introduction to Bayesian methods.
In May and October 2017 I published two articles related to the decline of religion in the U.S. in the Scientific American blog. 1 2 I gave a related talk for PyData Boston in June 2017.
During Summer 2018 I plan to work on the second edition of Think Bayes, which I will use to offer an expanded (4 credit) version of Computational Bayesian Statistics in Fall 2017.
In August 2018 I will go to the Joint Statistical Meetings in Vancouver, Canada to present “Inference in Three Hours, and More Time for the Good Stuff” as part of an invited session on Statistical Education.
I will continue to write blog articles as opportunities arise, looking for topics that demonstrate the methodology of computational and Bayesian statistics, applied to topics in science, engineering, and social science. During Spring 2018 I am working on a series of articles related to changes in support for gun control laws. 1 2 3 4 Depending on how the project goes, I might publish a paper in an appropriate venue.
In Spring 2018 I will teach Data Science again. I am not planning major revisions, but I have accumulated a substantial collection of datasets and articles since the last offering of the class.
I expect to continue teaching workshops on computational and Bayesian statistics, and to look for opportunities to work with companies interested in these areas.
In September 2016, I presented “Python as a Way of Thinking” as my developmental leave talk at Olin. It is about the use of programming as a way of communicating, teaching, learning, and thinking. I have presented related talks at several venues.
In March 2017 I was invited to EdFoo, a conference on education co-sponsored by Google, Macmillan Learning, O’Reilly Media, Scientific American, and Sesame Workshop. I presented a short version of this talk, which led to an article published in the Scientific American blog in April 2017 1.
In Fall 2017 I worked with Jason Moore at U.C.Davis to develop a workshop, called “Computation in STEM”, based on these ideas. We presented the workshop for the first time at Davis in January 2018, and I will offer a version at Olin’s Summer Instutute 2018.
In May 2017, I developed a workshop based on Think DSP, which I presented at PyCon 2017 in Oregon. I will present a revised version of the workshop at PyCon 2018 in May.
In February 2018 I published a blog article related to new challenges in teaching programming. 1 It was picked up by Reddit, Hacker News, and Slashdot, and has now been viewed nearly 100,000 times, making it my second most popular article. As of March 2018, articles on my blog have been viewed more than 1.9 million times.
I published a second article related to the use of software engineering tools and practices for computational science 1, and gave a talk on these topics for the METAA CTO Clinic in March 2018. On a related point, I developed a module for Software Design on the use of Git for version control, and published it as part of a Git booklet I am working on. It got a lot of attention on Twitter, earning nearly 100,000 impressions and almost 5000 engagements, making it my top tweet ever.
In March 2018 I appeared at the Jupyter Popup in Boston on a panel related to “Jupyter in Education”.
In Spring 2017 I co-taught Software Systems with Ben Hill. During the first half of the semester, we used an EduScrum format, which I had tested during the previous offering of the class. Contrary to my expectations, EduScrum did not work well for us, and we abandoned it in the second half.
I am teaching Software Systems again now (Spring 2018). Continuing the changes Ben and I made last time around, the class is going very well.
I am continuing work on the two textbooks for the class, Think OS and The Little Book of Semaphores. In many CS programs, introductory classes are moving from languages like C and C++ to higher-level languages like Python. This shift creates a gap between the introductory sequence and classes like “Operating Systems” and “Networks”. Think OS is in a good position to fill that gap; as it matures, I will work toward publishing it with O’Reilly Media.
During Summer 2017 I worked with Jason Woodard, Alison Wood, and Chris Lee on a substantial revision to Modeling and Simulation. Changes included switching from MATLAB to Python, developing a new code library to support the class, creating Jupyter notebooks with examples and exercises, and writing a new book, Modeling and Simulation in Python.
The class went well for a first iteration, and we are making plans for a second iteration in Fall 2018, with almost the same teaching team. During Summer 2018 I plan to make revisions to the book and work toward publishing it.
I am also working with Craig Scratchley at Simon Fraser University to revise and publish Physical Modeling in MATLAB.
In Fall 2016 I co-taught Complexity Science with Jason Woodard. This class was a substantial revision of Computational Modeling. I started work on the second edition of Think Complexity and developed Jupyter notebooks containing the examples and exercises from the book. The class went very well; I learned a lot, and the class benefited greatly, from Jason’s contributions.
In May 2017, I developed a workshop based on the class, which I presented at PyCon 2017 in Oregon. I will present a revised version of the workshop at PyCon 2018 in May.
In Fall 2017 I taught Complexity Science again, this time without Jason. I continued work on Think Complexity, developing two new chapters on evolution. Recently I signed a contract to publish the second edition with O’Reilly Media. The book is in technical review now and should be published by June 2018.
In Fall 2016 I led an independent study on Object Oriented Programming, based on material from my Software Engineering class, to help students prepare for a student-led class on Data Structures and Algorithms.
In Spring 2017, I was the faculty adviser for Data Structures and Algorithms (DSA), which was based in part on the curriculum I developed for the Flatiron School in New York. I revised that material into a book called Think Data Structures, which was published by O’Reilly Media in July 2017.
In Spring 2018, another group of students is offering DSA as a student-led class. These offerings help address a need, perceived by students, for more traditional computer science topics in our curriculum.
I have my eyes open for opportunities to collaborate with colleagues to develop computational approaches in other areas of engineering, math, and natural and social science.
In Spring 2017 I helped the QEA team transition the first project from Mathematica to MATLAB.
I have started work on a computational approach to Linear Algebra.
During Summer 2017 I worked with Scott Hersey and the Cambridge School of Weston to help them develop a new course that integrates engineering, math, and science.
I have worked with several Argosy fellows in my classes, including Manish Datt in Data Science, Spring 2017; Mitaxi Mehta in Complexity Science, Fall 2017; and Srikrishnan Divakaran in Software Systems, Spring 2018.
I participated in Summer Institute in 2017; I plan to participate again in 2018, as well as leading a workshop on Computation in STEM.
I hope to continue to engage with other institutions through the Collaboratory.
In 2016-17, I was the chair of the ARB. I initiated a project to revise our policies and processes for student planning, declaration of major, tracking progress toward graduation, and auditing graduating seniors. The goal of this project was to design procedures and structures that reflect our curriculum and the organization of the faculty.
In 2017-18 I continued this work as a member and co-chair of the Curriculum Working Group. Working with Linda Canavan and Jeremy Goodman, we rolled out the first step of the new process, the Sophomore Declarathon, in November 2017, and the second step, the Junior Reality Check, in March 2018. So far, these transitions are going smoothly, and I think they are taking us in a positive direction.
I have been working with the CWG on two other policy changes: (1) a substantial revision of our policies for independent study, student research, student-led classes, and the OSS, and (2) a revision to our requirements in math and science, intended to support experiments in these areas including the next iteration of QEA.