Chapter 14
Beyond the Analytical Solution: Using Mathematical Software To Enhance Understanding of Physical Chemistry
Using Computational Methods To Teach Chemical Principles Downloaded from pubs.acs.org by UNIV OF ROCHESTER on 05/15/19. For personal use only.
Ashley Ringer McDonald* and John P. Hagen Department of Chemistry and Biochemistry, California Polytechnic State University, San Luis Obispo, California 93401, United States *E-mail:
[email protected].
Numerical and computational problem-solving skills are of increasing importance in modern science. Our current curriculum did not include a required programming class, and there was not room in the curriculum for a new course. Rather, we decided to incorporate numerical and computational problem-solving activities throughout our physical chemistry curriculum using the software package MATLAB. We had four guiding principles in developing our activities: chemistry would be emphasized, MATLAB skills would be introduced through simple, one-page tutorial worksheets, the activities would build on activities from earlier in the term or in prerequisite courses, and the skills would be practiced throughout the term and then tested. This gradual introduction with regular practice and testing would ensure that our students developed real proficiency using MATLAB to solve chemical problems. Introduction of the numerical and computational activities has significantly expanded the range of problems we can expect our students to solve in the physical chemistry courses. Further, students leave the course with real computational skills which they can then apply in other courses and in their undergraduate research activities.
Introduction In announcing the 2013 Nobel Prize in Chemistry, the Swedish Academy said, “Today the computer is just as important a tool for chemists as the test tube (1).” Despite the role of computation in modern science, the undergraduate chemistry curriculum often does not provide the foundational knowledge in theory, computation, and numerical methods that students need to be successful in science today. Several years ago, we decided to incorporate numerical methods and computation systematically across our physical chemistry course sequence. We were motivated to do so after identifying several © 2019 American Chemical Society
weaknesses in our curriculum. Our students are not required to take any computer science or computer programming courses. In a world in which our students will need to code, or at least work with those who do, this seemed to us a glaring omission. In addition, the ACS Committee on Professional Training recommends using programs such as MATLAB to help students connect models to chemical phenomena (2). While the students used this type of software in one or two courses, we did not have systematic plan to develop our students’ skills in this area. In addition, we often were frustrated by the limitations set by restricting class discussion, homework, and tests to problems with an analytical solution. After all, the set of real-world problems is much bigger than the set of problems with analytical solutions. Furthermore, even problems that do have an analytical solution can be intractable for undergraduate students if they lack proficiency in multivariable calculus. Teaching students how to use numerical methods opens up a new world of thermodynamic, kinetic, and quantum mechanical applications for the students. One approach to solving our problem would have been to develop a required stand-alone course, as has been done at other universities (3). We did not have room in our curriculum for a new course. Additionally, we thought that if students learned numerical and computational skills in the context of their chemistry courses, they would see the relevance of those skills, and be motivated to use them. Using computational methods to enhance understanding of chemical principles has been on the rise since the 1990’s. In 1996, the Journal of Chemical Education devoted an issue (Vol. 72, Issue 2) to discussing using computational chemistry in the undergraduate chemistry curriculum. There are numerous examples in the literature of computational based lab activities which can be included in chemistry courses (4–8), but most of these reports describe a single lab activity to be used in an existing laboratory course. Our approach differs in that it presents a strategy to distribute the numerical and computational skills over our entire physical chemistry course sequence, with each course building on the prerequisite courses. Our goal is for students to develop specific chemical problem-solving skills as well as a general appreciation for algorithmic thinking and scientific programming. Another report of a physical chemistry sequence revamp exists (9), but it focuses on reordering the curriculum, moving to a quantum mechanics first approach, and modernizing the lab activities, but not distributing computational activities throughout the entire course sequence. For our approach to be successful, all physical chemistry instructors had to agree to a single software package, so that students could build on the skills they acquired in prior courses. At the time we redesigned our curriculum, the two authors were the only regular instructors of physical chemistry courses. Thus, it was trivial to come to come to an agreement. (In the ensuing years, we have brought in other instructors, with the understanding that they would use our materials.) We chose MATLAB because it is a non-compiled, high-level programming language, which has numerous built-in functions and packages, and includes an interactive development environment. MATLAB is also significantly emphasized at our institution due to its ubiquitous use in our large college of engineering. Although MATLAB was the best choice for us, our approach would work with any other numerical tool—chemical educators have developed numerical exercises for MathCAD (10), Maple, Mathematica (11), Python (12), or Excel (13). Again, the critical element is not which software is chosen, but that all instructors agree to use the same resource. In the summer of 2013, the authors developed a list of learning objectives (Table 1) in physical chemistry where numerical methods could be used to solve problems which were previously inaccessible. From these identified learning objectives, we identified the numerical methods skills the students would require. We then developed a ramped strategy to teach these skills where skills are slowly introduced, and each new skill builds on previous skills. 196
Table 1. Physical Chemistry Learning Objectives and MATLAB Skills Chemistry learning objective
Required MATLAB skills
Take partial derivatives of equations of state; use partial derivatives to propagate error using the general error formula
Perform symbolic math (multiplication, addition, subtraction, division, exponentiation, and differentiation).
Calculate pV work; calculate expectation values and probabilities for simple quantum model systems
Symbolically solve and integrate.
Plot Beer’s law data; plot kinetic data; plot energy density of blackbody radiation in a frequency domain and in a wavelength domain; plot equation of state data
Assign values to arrays, address elements in an array, perform element-by-element multiplication, addition, subtraction, division, and exponentiation on arrays; use arrays to plot functions.
Calculate pV work; calculate changes in state functions with changes in pressure and temperature; calculate expectation values and probabilities for real quantum systems
Perform numerical integration.
Use real equations of state
Write and use custom functions.
Determine concentrations of reactants as a function of time for any rate equation
Solve single-variable and multi-variable differential equations numerically and plot the resulting functions.
Determine the energies of molecular orbitals
Create and diagonialize a matrix.
Identify structure-property relationships for Fit data to a custom function; extract parameters and molecules; extract thermodynamic and molecular errors on parameters. properties from experimental data Evaluate the particle in a box wavefunction to find Numerically solve equations with more than one most probable and average values solution, solve a system of equations. Construction the Hamiltonian matrix for a Write and execute simple code, including FOR loops, diatomic molecule and find the vibrational energy nested loops, and conditionals. levels
Design Principles of Our Ramped Strategy When incorporating numerical activities into our curriculum, we had four guiding principles: chemistry would be emphasized, skills would be introduced through simple, one-page tutorial worksheets, the activities would build on activities from earlier in the term or in prerequisite courses, and the skills would be practiced throughout the term and then tested. Below, we will describe these design principles; implementation is discussed in the next section. 1. Chemistry would be emphasized. We wanted chemistry, not programming, to be emphasized. We did not want to distract students from thermodynamics, kinetics, and quantum mechanics; we wanted the student to use numerical tools to learn these topics more easily. Each time the students would learn a new computational skill, it would be in the context of analyzing or illustrating a 197
chemical phenomenon. To keep the focus on chemistry, we realized that there would be notable advantages to using a stand-alone mathematical software package with a builtin programming language (like MATLAB) instead of teaching a traditional programming language like C or C++. The development environment is already built-in and memory management and compilation would no longer be issues. Further, using the built-in functions of the software package would allow the students to focus their understanding on how the algorithms are used to solve chemical problems, rather than the algorithms themselves. Having each student code a complete Runge-Kutta algorithm to numerically solve a differential equation would be wildly infeasible for our students and would actually detract from their understanding of using numerical algorithms to solve kinetics problems. While there is definitely value in understanding algorithmic structure and development, we wanted to focus our curriculum on how these numerical methods are applicable to chemical problems. It would certainly be possible to translate our approach to a more general programming language, especially one like Python which offers numerous math packages with pre-defined functions. 2. MATLAB Skills would be introduced through simple, one-page tutorial worksheets. These tutorial worksheets would introduce the students to various numerical skills and computational skills. Most students in our courses have no programming experience. In addition, they already perceive physical chemistry as a hard course. We did not want to overwhelm them, and so each handout would be a single sheet of paper. The front side would describe a single skill, give any necessary syntax, and show example code and output; the back side would have practice exercises. 3. Activities would build on activities from earlier in the term or in prerequisite courses. We wanted our students to leave our course sequence with substantial numerical and computational skills. Since each of our courses is only ten weeks long, we could not afford to start from the ground floor with each course. Instead, each course would pick up where the prerequisite course left off. The system would work only if all instructors agreed to a common software package, learning objectives, and set of materials for teaching the numerical and computational skills. 4. Skills would be practiced throughout the term and then tested at the end of the term. In our previous experience, we had discovered that when numerical methods were used in single instances and not repeated, students failed to gain proficiency and failed to realize the general usefulness of these methods. Therefore, we planned that every skill would be introduced in a handout, practiced in lab or homework, and tested at the end of the term. We planned two strategies for doing this, one for lecture courses and one for lab courses.
Description of Our Ramped Strategy Examples of the tutorial worksheets, practice assignments, and test questions are shown below. We started using these materials in class during the winter term in 2014; since the fall of 2014, all sections of all our physical chemistry courses have used them. The tutorial worksheets are listed in Table 2. It is necessary to say a few words about our curriculum to understand the table. We teach physical chemistry over three quarters: thermodynamics (T), kinetics (K), and quantum mechanics (Q). We have two physical chemistry lab courses. The first lab (denoted L1) covers thermodynamics and kinetics. The second lab (denoted L2) covers quantum mechanics. The entire physical chemistry lecture sequence and the first lab are taken by both chemistry and biochemistry majors. The second lab is taken by only chemistry majors. 198
The first course is a prerequisite for the second, and the second is a prerequisite for the third, so the students always take them in this order. The L1 course has the K course as a corequisite, and the L2 course has the Q course as a corequisite. We teach the lecture courses in sections of 40 students, and the lab courses in sections of 18. Our typical cohort size is 60-80 students, so we usually have two sections of each of the lecture courses and four sections of the L1 course. Since the L2 is not taken by biochemistry students, we usually offer only two sections per year. When designing our ramped approach, we took the course prerequisites into account. For instance, since the L2 course occurs after the T and K courses, we knew that MATLAB activities in the L2 course could build on the MATLAB skills from those courses. They can also build on activities in the Q course, if Q activities occur earlier in the term than the L2 activities, since students can take the L2 and Q courses concurrently. Table 2. MATLAB Activities Course
Handout Name
Learning Objectives
Prerequisite
T
Symbolic Math in MATLAB
Perform symbolic math (multiplication, addition, subtraction, division, exponentiation, and differentiation) using MATLAB.
none
T
Using Scripts in MATLAB
Write scripts to execute a sequence Symbolic Math in of commands. MATLAB
T
Symbolic Math II in MATLAB
Symbolically solve and integrate using MATLAB.
Symbolic Math in MATLAB
T
Working with arrays and plotting in MATLAB
Assign values to arrays, address elements in an array, perform element-by- element multiplication, addition, subtraction, division, and exponentiation on arrays; use arrays to plot functions.
none
T
Numerical Integration in MATLAB
Perform numerical integration using MATLAB.
Working with arrays and plotting in MATLAB
K
Functions in MATLAB
Write and use custom functions.
Working with arrays and plotting in MATLAB
K
Solving DE in MATLAB I
Solve single-variable differential Functions in MATLAB equations numerically and plot the resulting functions.
K
Solving DE in MATLAB II
Solve multivariable differential Solving DE in MATLAB I equations numerically and plot the resulting functions.
Q
Matrix Manipulation in MATLAB
Create and diagonialize a matrix in Working with arrays and MATLAB. plotting in MATLAB
199
Table 2. (Continued). MATLAB Activities Course
Handout Name
Learning Objectives
Prerequisite
L1
Functions in MATLAB
Write and use custom functions.
Working with arrays and plotting in MATLAB
L1
Using MATLAB in Error Propagation
Use symbolic math in MATLAB and the general error formula to propagate errors of complicated functions.
Symbolic Math in MATLAB
L1
Curve Fitting in MATLAB
Fit data to a custom function; extract parameters and errors on parameters.
Functions in MATLAB
L1
More Curve Fitting in MATLAB
Fit data to multi- variable custom functions; extract parameters and errors on parameters.
Curve Fitting in MATLAB
L1
Making Publication- Quality Figures in MATLAB
Making Publication- Quality Figures in MATLAB
Working with arrays and plotting in MATLAB
L2
Advanced Equation Solving in MATLAB
Numerically solve equations with more than one solution, solve a system of equations.
Symbolic Math II in MATLAB
L2
Coding in MATLAB I Coding in MATLAB II
Write and execute simple code, Matrix Manipulation in including FOR loops, nested loops, MATLAB and conditionals. Functions in MATLAB
An example of a tutorial worksheet from our kinetics course is shown below (Figure 1). As you can see from this example, the tutorial worksheet is short, includes a complete example with code syntax, and a practice exercise for the students to work on their own. Note that the practice is a chemical example related to the work students are doing in class, in this example, a kinetics problem. While it may seem like there are many steps to setting up the differential equation, many of these concepts have already been covered on previous tutorial worksheets. The students have already learned how to write a script in MATLAB (Using Scripts in MATLAB), how to write a function (Functions in MATLAB), and how to define arrays and address elements of those arrays (Working with Arrays and Plotting in MATLAB). There is really only one new concept and one new piece of code syntax introduced on this worksheet, using ode45 to solve the differential equation. Before discussing how we use these worksheets, it will be helpful for the reader to have in hand the physical setting for our courses. The physical chemistry laboratory suite includes a breakout room with whiteboards, 18 student computers, and one instructor computer. The instructional software on the instructor computer allows the instructor to share screens with the students, monitor student computers, and block internet and external drive access. The building housing the laboratory also contains a computer lab for use by chemistry and biochemistry students with 20 student computers. The computers in both rooms have MATLAB installed. In addition, the university’s sitelicense includes installation on the personal computers of students and faculty.
200
Figure 1. Example MATLAB tutorial worksheet from our kinetics course.
201
In lecture courses, the tutorial worksheets are posted through the class’s learning management site; some tutorials also include a screencast of the example problem shown. Students are assigned to complete the tutorial worksheet and exercises outside of class. Typically, these assignments are not collected and graded; rather, the students check their code output against the solution to make sure their MATLAB code is working correctly. Students are then given homework assignments which use the numerical and computational skills they just learned to solve chemical problems related to the current material they are covering in class. These assignments are submitted electronically through the learning management system and are graded. An example of a homework assignment given in the quantum mechanics course is shown below in Figure 2.
Figure 2. Example of a homework assignment given in our quantum mechanics course. In addition to these graded homework assignments, at the end of the term, students are given an in-class numerical methods test. For the test, the class meets in the computer lab and the students are given a single problem to complete. The problem is not a problem from any of the prior homework assignments, nor is it one of the practice exercises from the tutorial worksheet. It is a chemical problem that is very clearly related to the material from the course, and it uses the same numerical and computational skills they practiced earlier in the course. Frequently, the class must be divided into groups and come in shifts to the computer lab due to the size of the class and the number of computers available. If a computer lab were unavailable, the students could complete the assignment on their own laptops; the instructor would just have to supervise them carefully to ensure they were not using any outside resources or the internet. Examples of tests given in a kinetics class and a quantum mechanics class are shown below in Figures 3 and 4. The reader may note that this is actually a simple exponential decay and has an analytical solution. Indeed, a small number of students, often the better students, will also realize this and derive the analytical solution. In one case, a student submitted a solution where they had not only derived the analytical solution but plotted the analytical solution and numerical solution on one graph! 202
Figure 3. Example of numerical methods test given in kinetics course.
Figure 4. Example of numerical methods test given in quantum mechanics course. In lab courses, students do the tutorial worksheets in class. In the following weeks, they do lab experiments which draw on the skills the students acquired from the worksheets. Usually, the students will use each skill in multiple labs. 203
For example, consider our surface tension experiment. In this experiment students measure the decrease in surface tension of water with the increase in concentration of surfactant (14). Student fit the low-concentration data (below the critical micelle concentration) to the Equation 1 shown below.
Here γ0 is the surface tension of pure water, γ is the surface tension of the solution, ω is the limiting molar area of surfactants at the surface, Kad is the equilibrium constant for adsorption to the surface, and [S] is the concentration of surfactant. Using the nonlinear curve fitting tool in MATLAB, students are able to extract the values and the uncertainty in the values for the molar area of the surfactant and the equilibrium constant for adsorption, and hence the standard Gibbs energy for adsorption. The last page of the lab handout is shown below in Figure 5.
Figure 5. Last page of the surface tension lab handout describing required calculations and lab report elements. At the end of the term, the students take exams in a computer lab; these exams require them to analyze data similar to the data they analyzed during the quarter. Embedded in the exams are questions that cannot be answered without using the numerical and computational skills they learned during the quarter.
Improvements in Learning Allowed by the Ramped Approach When students can use mathematical software and numerical methods techniques, the range of chemical problems that can be discussed and solved increases dramatically. All of our physical chemistry courses have been enhanced by the introduction of the numerical methods curriculum. In our thermodynamics course, we previously found that students had difficulty taking partial derivatives, integrating complicated functions, and visualizing how functions change when parameters are altered. Unfortunately, their mathematical problems obscured the underlying 204
thermodynamics, and constrained us in terms of problems we could assign. For instance, using integration to calculate the work done by a gas during a reversible isothermal expansion is trivial if one uses the ideal gas law, but the problem becomes much harder for other equations of state. Using the MATLAB symbolic package, student can easily do these calculations, and compare the results to those for the ideal gas law. Even better, the students can numerically integrate, using real data from the NIST WebBook (15) Thermophysical Properties of Fluid Systems. MATLAB can also be used to make phenomena that students find mysterious, such as critical points, concrete. In a traditional course, students manipulate derivatives of the van der Waals equation to estimate the values of the critical point. This exercise does not clarify critical points for students; for some students, it seems to obscure the topic further. In the past, we attempted to rectify this by sketching the graph of the van der Waals equation on the board and showing how the disappearance of the van der Waals loops marks the critical point. Now, students can write a script to plot the van der Waals equation, plug in the constants for a material of their choice, and then plot at different temperatures to find a predicted critical temperature—and see the convergence of the liquid and gas densities. Finally, MATLAB usage eases student difficulties with partial derivatives. Rather than doing a few assigned problems to practice taking partial derivatives, students can design their own problems, and check the results with MATLAB. In our kinetics course, our previous curriculum included integrated rate laws only for systems where there are exact, analytical solutions to the differential equations: zeroth order, first order in one reactant, second-order in one reactant, and first-order in two reactants. This seems to be common practice; a sampling of undergraduate physical chemistry textbooks includes only these examples (16–19). The first three derivations are trivial. However, the fourth is not; it requires the method of integration by partial fractions. While students may learn this technique in their calculus course, most are unable to apply it in this context. These four representative model systems apply to a restricted set of chemical systems; many chemical reactions are not simply first or second order in one reactant. When the students can utilize numerical methods, they can find the integrated concentration at any time for any rate law. In our first physical chemistry lab course, which deals with thermodynamics and kinetics, students fit data to functions in almost every experiment. As was common practice in the past, we used to have students linearize non-linear data, and then fit the data to a straight line. Students used the regression tool in Excel to estimate the uncertainty of the slope and intercept. Despite the advantages (20) of fitting non-linearized data, we had only one experiment in which students did this; they used the solver in Excel to directly fit non-linear data. It is possible to estimate the uncertainties of the parameters with the same tool (21), but the process is somewhat cumbersome and so we chose not to require it. It is easy to define a custom function in MATLAB and use it to fit data. Now, we have three experiments, out of ten total, in which students directly fit data to non-linear models and extract the parameters and their uncertainties. We also have an experiment in which students fit data to a multivariable linear model, once again extracting the values of the parameters and their uncertainties. In addition to these numerical exercises, we have the students use MATLAB when propagating uncertainty. Propagation of error is trivial for values generated by a simple function, such as a sum or product. For complicated functions, one needs the general error formula. The application of this formula to complicated functions by hand can be tedious. Instead, we have our students write a script to do so. A simple example from our handout is shown below (Figure 6). Note that students in this course have already taken the thermodynamics course, and so they have already written scripts in symbolic mathematics. This assignment requires only that they apply those skills to error propagation. 205
Figure 6. Example of error propagation handout.
In our quantum mechanics course, we first discuss model systems for which the Schrödinger equation can be solved analytically, and then move on to molecular orbital theory and problems that must use numerical techniques. Applying numerical techniques by hand to even simple chemical systems quickly becomes tedious. For example, in the standard derivation using the variational 206
method to find the coefficients and energy of molecular orbitals, it very quickly becomes tedious to solve the system of equations by hand. Even if one invokes the Huckel approximation to simplify the evaluation of the secular determinant, diagonalizing even a 4x4 matrix by hand is more than many instructors can expect their students to do in a reasonable amount of time, making something as simple as benzene already an intractable problem to work by hand. Using the matrix math functions available in MATLAB, students can find the eigenvalues for systems of arbitrary size and then focus their attention on understanding the physical significance of the molecular orbital coefficients and wavefunctions. In our curriculum, we have a second physical chemistry lab that is a co-requisite with the quantum mechanics course. By the time the students reach this course, they have a significant level of numerical methods skills, carefully developed by our ramped approach in the previous courses. In this course, they receive minimal instruction in new algorithmic techniques and focus on applying their skills to advanced problems. The students derive the Stefan-Boltzmann function for blackbody radiation. While this is a situation where an analytical solution exists, the integration is extremely difficult without the aid of mathematical software. They use curve fitting techniques to fit data collected from a high- resolution IR spectrophotometer to determine molecular properties for small molecules. They use the variational method with arbitrary trial functions to determine the ground state energy of chemical systems. In a final capstone project, they introduce a simple vector basis set, construct the Hamiltonian matrix, and diagonalize it to determine the vibrational states for a diatomic molecule.
Barriers to Adoption and How to Overcome Them 1. Insufficient Infrastructure. In our ramped approach, students practice MATLAB skills outside of class; their skills are tested during class. The students need access to the software outside of class so that they can get adequate practice. The minimum requirement would be a computer lab with hours convenient to students. If possible, students should also be able to install necessary software on their personal computers. If the instructor’s institution doesn’t have the necessary site license for commercial software, we recommend switching to a free option such as Python. To facilitate secure testing of student skills, a computer lab with the ability to lock out internet access and external hard drives is optimal. If this is not available, instructors should use seek help from teaching assistants or colleagues during the testing to assure secure testing. 2. Faculty Buy-In. Our ramped approach won’t work unless all the instructors of physical chemistry courses agree to use the same materials which use a single software package. In our case, this was not difficult: at the time we designed our ramped approach, we were the only instructors regularly teaching physical chemistry. In the succeeding years, we have brought other instructors into the course sequence, with the understanding that they would use the materials we developed. Our advice to departments seeking to adopt our approach is to concentrate on finding a consensus software package, rather than the best software package; which package is chosen doesn’t matter that much.
207
Outcomes With our approach, the students learn basic programming practices and algorithmic thinking. They have to define variables and understand variable types. They learn to write functions and use conditional statements to direct the logical flow of their program. They use fundamental programming structures such as loops and comparisons, all without losing sight of the chemical problems they are trying to solve. The students leave the course sequence with real competency in using mathematical software, specifically MATLAB, skills they often then apply in other contexts, such as their undergraduate research and advanced courses. A few examples showcasing these spillover benefits are discussed below, starting with undergraduate research. We asked the chemistry faculty in our department if any of their research students used the MATLAB skills that they had gained from our curriculum to facilitate their research. We received replies from six faculty: a biochemist, an inorganic chemist, a polymer chemist, a marine chemist, a physical chemist, and an analytical chemist. None of them are coauthors of this paper. The biochemist had two students use MATLAB to process data from vibrational spectroscopy. One student used MATLAB and singular value decomposition to calculate structural changes in a protein as it was heated. The second performed a principle-component analysis on the IR and Raman spectra of a series of complex samples. The inorganic chemist’s student used MATLAB in data analysis and figure preparation. The polymer chemist’s student used MATLAB to make plots in two papers that they published (22, 23). The marine chemist’s students will be using MATLAB to process field data collected in summer 2018. The physical chemist had three students use MATLAB: one to plot and integrate piecewise probability density functions to model hard sphere solvents in water, one to edit code for a genetic algorithm to solve for kinetic parameters in coupled reactions, and one to fit peaks on HPLC chromatograms. The analytical chemist’s students use MATLAB for data analysis and for making figures. An excerpt from his reply to our query is quoted below (24). …I think many students entering our program haven’t been exposed to much if any coding, and they aren’t very comfortable with it. Having MATLAB as part of the curriculum breaks down the barrier to simply installing and opening the program, and being generally familiar with the environment makes it dramatically more feasible to implement for my research. For students that haven’t started the PChem series, just knowing that there will be overlap between research and coursework helps the buy- in. Without the coursework, I think there would be a lot more reluctance to dive in. Another benefit is general exposure to coding. Whether or not the students do any coding in the future, the familiarity with coding logic is a valuable skill. As someone whose research focuses on instrumentation, the ability to think like a computer gives deeper insight into how the instruments collect and organize the data. The MATLAB coursework gives the students a lot of transferrable skills and makes it much easier to branch out into different directions and applications that are useful to my group. In addition to facilitating undergraduate research, integrating numerical and computational methods into our physical chemistry curriculum has resulted in improvements in at least one advanced elective course. We offer an elective course in advanced physical chemistry which covers topics in statistical mechanics and molecular simulation. In most courses like this, a significant amount of the students’ homework is writing and implementing features in molecular dynamics or Monte Carlo code; our course used to be limited in this regard because giving this type of assignment would require the instructor to teach basic concepts of programming. With the implementation of our new curriculum, this limitation was removed. In a recent term, the instructor (who is not one of 208
the authors) assigned a significant programming project where the students had to modify a provided molecular dynamics framework or create a new MD or MC code to solve a chemical problem of their choosing. Students chose a diverse range of problems—simulating adsorption/desorption to a substrate, second-order gas phase kinetics, heat capacity based on energy fluctuations, 3D video/ visualization and even the temperature dependence of an Ising model. Students were not required to use MATLAB. Despite this, every student chose to write their code in MATLAB, demonstrating to us that they left the physical chemistry sequence with real competence in using MATLAB for computational and numerical analyses.
Conclusion Our ramped approach to incorporating numerical and computational skills within our physical chemistry curriculum was effective in helping students not only develop the specific skills taught in our courses, but also develop fundamental skills in programming and algorithmic thinking which benefit them in other courses and contexts. Most of our students begin our course sequence with no programming skills, but our ramped approach of introducing a few new skills in each course and building on the skills from prerequisite courses yields students who are confident and capable. At the end of the physical chemistry sequence, students have the computational skills to solve a wide variety of problems. Since these lessons are incorporated into our physical chemistry sequences, other faculty in our department who teach any subsequent class, such as any 400-level class in our curriculum, can give students assignments which use these skills. We believe our general approach to incorporating numerical and computational learning objectives into existing curriculum is not unique to physical chemistry. Any group of faculty from a disciplinary subgroup in chemistry could use our approach of systematically teaching numerical and computational skills within their curriculum, as long as they follow our design principles and agree on a common software package and approach.
References 1.
2. 3. 4. 5.
6. 7.
The Royal Swedish Academy of Sciences. The Nobel Prize in Chemistry 2013. http://www. nobelprize.org/nobel_prizes/chemistry/laureates/2013/press.html (accessed Sept. 26, 2018). Committee on Professional Training, Physical Chemistry Supplement; American Chemical Society, 2015; pp 1–2. Thompson, W. J. The Purpose of Computing Is Insight, Not Numbers. J. Coll. Sci. Teach. 1985, 14 (6), 505–508. Simpson, S.; Lonie, D. C.; Chen, J.; Zurek, E. A Computational Experiment on Single-Walled Carbon Nanotubes. J. Chem. Educ. 2013, 90, 651–655. Frey, E. R.; Sygula, A.; Hammer, N. I. Particle in a Disk: A Spectroscopic and Computational Laboratory Exercise Studying the Polycyclic Aromatic Hydrocarbon Corannulene. J. Chem. Educ. 2014, 91, 2186–2190. Nassabeh, N.; Tran, M.; Fleming, P. E. Dissociation of the Ethyl Radical: An Exercise in Computational Chemistry. J. Chem. Educ. 2014, 91, 1248–1253. Ochterski, J. W. Using Computational Chemistry Activities To Promote Learning and Retention in a Secondary School General Chemistry Setting. J. Chem. Educ. 2014, 91, 817–822. 209
8.
9. 10. 11.
12. 13. 14. 15. 16. 17. 18. 19. 20.
21. 22.
23.
24.
Wijtmans, M.; van Rens, L.; van Muijlwijk-Koezen, J. E. Activating Students’ Interest and Participation in Lectures and Practical Courses Using Their Electronic Devices. J. Chem. Educ. 2014, 91, 1830–1837. Shields, G. The Physical Chemistry Sequence at Liberal Arts Colleges. J. Chem. Educ. 1994, 71, 951–953. Zielinski, T. Mathcad in the Chemistry Curriculum. J. Chem. Educ. 1998, 75 (9), 1189. Goss, L. M. The Use of Active Learning and a Symbolic Math Program in a Flipped Physical Chemistry Course. In The Flipped Classroom Volume 1: Background and Challenges; Muzyka, J. L., Luker, C. S., Eds.; ACS Symposium Series 1223; American Chemical Society: Washington, DC, 2016; pp 29–54. Srnec, M. N.; Upadhyay, S.; Madura, J. D. A Python Program for Solving Schrödinger’s Equation in Undergraduate Physical Chemistry. J. Chem. Educ. 2017, 94 (6), 813–815. Billo, E. J. Excel for Chemists : A Comprehensive Guide; John Wiley & Sons, 2011. Bresler, M. R.; Hagen, J. P. Surfactant Adsorption: A Revised Physical Chemistry Lab. J. Chem. Educ. 2008, 85 (2), 269. NIST Chemistry WebBook, NIST Standard Reference Database Number 69; Linstrom, P. J., Mallard, W. G., Eds; NIST, 2001. Atkins, P.; Paula, J. de. Atkins’ Physical Chemistry, 10th ed.; Oxford University Press: Oxford, UK, 2014. Monk, J. Physical Chemistry: Understanding Our Chemical World; John Wiley & Sons, Ltd.: Chicester, UK, 2004. Chang, R. Physical Chemistry for the Chemical and Biological Sciences, 3rd ed.; University Science Books: Sausalito, Ca, 2000. McQuarrie, D. Physical Chemistry: A Molecular Approach; University Science Books: Sausalito, Ca, 1997. Pinho, A. C.; Piedade, A. P. Zeta Potential, Contact Angles, and AFM Imaging of Protein Conformation Adsorbed on Hybrid Nanocomposite Surfaces. ACS Appl. Mater. Interfaces 2013, 5 (16), 8187–8194. Harris, D. C. Nonlinear Least-Squares Curve Fitting with Microsoft Excel Solver. J. Chem. Educ. 1998, 75 (1), 119. Bilger, D. W.; Figueroa, J. A.; Redeker, N. D.; Sarkar, A.; Stefik, M.; Zhang, S. HydrogenBonding-Directed Ordered Assembly of Carboxylated Poly(3-Alkylthiophene)s. ACS Omega 2017, 2 (11), 8526–8535. Bilger, D.; Sarkar, A.; Danesh, C.; Gopinadhan, M.; Braggin, G.; Figueroa, J.; Pham, T. V.; Chun, D.; Rao, Y.; Osuji, C. O.; Stefik, M. Multi-Scale Assembly of Polythiophene-Surfactant Supramolecular Complexes for Charge Transport Anisotropy. Macromolecules 2017, 50 (3), 1047–1055. Zoerb, M. California Polytechnic State University, San Luis Obispo, CA. Personal communication, 2018.
210