Escolar Documentos
Profissional Documentos
Cultura Documentos
30-31
Issue Date: September 4, 2017
Spreadsheets are a standard tool in chemistry for simple tasks such as data analysis and
graphing. Chemistry students are often introduced to spreadsheets their first year of college,
if not earlier, and those who continue on to do research will likely use them as a means of
handling and visualizing data.
Weiss uses Jupyter Notebooks, like these examples shown, in his scientific computing undergraduate chemistry course.
Credit: Charles Weiss
Although spreadsheets have more capabilities than many people realize, they are still limited
in comparison with science-specific data-analysis software applications. For example,
spreadsheets are currently incapable of or not well suited for image analysis, automated
data processing, high-dimensional data analysis, complex simulations, and machine learning
that are needed in modern chemical research laboratories.
While some educators in the chemistry community have embraced advanced data-analysis
software, it’s surprising that its use isn’t more common. And going beyond that, it’s surprising
that computer programming has not effectively permeated the training of undergraduate
chemistry majors. The American Chemical Society’s guidelines for undergraduate training do
not directly address educating students on using digital tools and programming for dealing
with experimental data.
In an age when chemistry classrooms have long been equipped with computers, and when
research labs and companies where our students will go to work are experiencing a digital
data deluge, it seems that we are leaving them ill prepared.
Software better geared to those earning chemistry degrees or conducting research is readily
available. Common examples include MATLAB, Python’s SciPy stack, and GNU Octave. The
last two are free, open-source packages. So why haven’t these become standard tools taught
to all undergraduate chemistry majors? A key barrier to their adoption is that each of these
packages requires some level of programming ability ... and computer programming is not
part of the standard training for chemists ... but it should be.
The importance and utility of the course content, which assumes no previous programming
experience, is underscored by the postcourse survey, which revealed that three-quarters of
the students had applied what they were learning to their independent research projects or
other courses before the computing course had concluded. The survey also shows that the
students believed they learned to perform valuable data analyses that they didn’t previously
know were possible and that the course provided them better understanding of and
confidence in working with digital data. I am teaching the course again this fall.
My chemistry colleagues have noticed a difference because of the course, stopping me in the
hallway to comment on how excited the scientific computing students were for taking it and
reporting how student coding carried over into other courses. For example, one professor
noted that the students taking the advanced analytical chemistry course in the spring
approached many of the problems using Python and Jupyter Notebooks. Instead of
performing the calculations by hand or using spreadsheets, students immediately went for
the more advanced tools.
Incorporating more data analysis into the undergraduate curriculum takes time. Chemistry
departments have increasing requirements placed on them for granting undergraduate
degrees and, further, have limits on the number of courses they can require or offer for a
major. This situation can make it difficult to include a topic such as computer programming
that educators may not view as central to chemical science.
But that is an outdated view of chemical science. Scientific computing can be introduced to
students in a course as described above or through a course from a computer science
department. It can also be infused into other existing chemistry courses.
Last spring, I replaced an outdated piece of software for an intermediate-level chemistry
course lab activity with Python and Jupyter Notebooks. Our general chemistry radioactivity
lab this fall will include students running precoded, stochastic simulations of radioactive
decay to examine how randomness influences experimental outcomes. The students are
being asked to modify values used in the code, but they do not need to know programming
for the activity. This exercise will provide our first-year chemistry students with an early
exposure to using more sophisticated tools for running simulations and visualizations.
No matter how this new knowledge is incorporated into the curriculum, we should work to
equip our students entering the field of chemistry with the digital skills to be efficient and
effective scientists. This includes the ability to process, analyze, and visualize data using at
least one programming language and to be comfortable writing scripts to automate research
tasks. While it will take time and effort to implement, emphasizing programming skills will
empower students and better prepare them for their careers.
Charles J. Weiss
<https://www.wabash.edu/academics/profiles/home.cfm?
site_folder=chemistry&vdeptid=1&facname=weissc> teaches
chemistry and scientific computing at Wabash College and conducts
research in organometallic catalysis and bioinformatics. He taught himself
to program in Python to support his teaching and research.
Weiss
Credit: Courtesy
of Charles Weiss
Comments