An assortment of jupyter notebooks that served as in class demonstrations and assignments for a Computational Chemistry Class taught to advanced undergraduate students and graduate students at Boston University.
These notebooks were developed as part of designing a Computational Chemistry course at Boston University taught by John E. Straub (Teaching Fellow: Conor B. Abraham). In the course, which required no prior experience in coding, we taught students the fundamentals, theory, and application of concepts in Computational Chemistry. Using Python, the course builds from basic concepts in statistics and calculus to developing monte carlo and conventional molecular dynamics code from scratch. There are many great tutorials online to learn how to perform Computational Chemistry research using existing simulation engines (e.g. Justin Lemkul's Molecular Dynamics Tutorials), but few provide an in-depth discussion of the theory and algorithms that lie "under the hood" of those engines. The goal of this course was to provide students with a deeper understanding of the field.
This course was developed with guidance from an unpublished textbook by Professor Straub. I recognize that, in the absence of this text and the lecture material, many of these notebooks lack context. In the future, I may attempt to expand this repo to include proper discussion of each topic. For now, feel free to reach out to me if you have any questions regarding the material. The solutions to the homework assignments can be made available upon request.