Coding in Chemistry


Computer coding has been getting a lot of attention with the Hour of Code movement and President Obama’s recent “Computer Science for All” initiative. Just like it is no longer solely the job of the English teacher to teach language and communication skills, it is no longer solely the job of the computer science teacher to teach programming skills. According to, 71% of new STEM jobs are in computer science fields but only 8% of STEM graduates major in computer science. Unfortunately, only 1 in 4 schools offers computer science. As STEM educators, we are on the front lines to bridge that gap. So how do we integrate coding into the chemistry classroom in a meaningful and time-efficient way? Here are some ideas to get you started that have been tested in my classroom:

1. Model 3D particles using VPython and Glowscript

If you use the AMTA Modeling Instructional materials (or even if you do not), you are probably familiar with using particle models to represent density. The only drawback of particle models is they are two-dimensional. Glowscript is a free integrated development environment (IDE) that uses the VPython language. With one simple line of code, students can create a hard sphere particle. They can then manipulate that code to change the size and position of their particle. Students can create many particles and ultimately change the density of their substance by either changing the size and/or spacing of their particles. This activity is great as an introduction to programming and it helps students develop spatial reasoning skills by using a 3D coordinate system. You can even program these particles to move!

2. Create all sorts of calculators using Python and Cloud9

Chemistry is a very math-heavy subject and requires students to use advanced problem-solving skills. Many times students can solve specific problems but have trouble generalizing the process. Coding a calculator allows students the opportunity to generalize functions they may have thought were simple.

Python is a very straight-forward coding language that allows for anyone to pick up the basics. As a teacher, I suggest spending some time on to learn the basics of variables, operands and if/then statements. You certainly do not have to complete the whole course to learn enough Python for this application. I have my students spend a class period on Code Academy to familiarize themselves with Python but I do not think that time is a necessity.

Additionally, Cloud 9 is a really nice IDE for coding many programming languages wherever there is internet.

I have students use Python to make mole calculators as well as stoichiometry calculators. The gas laws would also lend themselves well to a coding project. You could even replace a worksheet with a coding challenge if you are feeling short on time.

With IDE’s like GlowScript, Cloud9 and many others, coding is now accessible to everyone. My goal for next year is to have students coding chemistry apps. How are you helping to close the STEM gap?




Join the conversation.

All comments must abide by the ChemEd X Comment Policy, are subject to review, and may be edited. Please allow one business day for your comment to be posted, if it is accepted.

Comments 3

Leonard Freidhof | Fri, 01/12/2018 - 14:03

Hello Lauren,

I have been perusing your blog and Units you made available in chemistry.  I am a physics modeler but have not been in any chemistry modeling workshops.  My school is working on making all classes SBG in two years.  I was wondering if you have any work I could look at that deals with aligning NGSS - SBG and assessments you use in the classroom?  I am old school and have not done multiple assessments of the same learning standard in the course of a grading period to achieve mastery.  Any help would be great - I know I am not making much sense of what I am looking for (really not sure what the administration is looking for).  Thanks.


Lenny Freidhof

Eastland High School

Lanark, Illinois


Lauren Stewart's picture
Lauren Stewart | Fri, 01/12/2018 - 19:33

Hi Lenny! It is exciting to hear that your school is moving towards SBG! I teach in Ohio and we unfortunately have not adopted the NGSS.  I can give you some insight though into how I deconstructed the Ohio Model Curriculum for chemistry and how I construct my assessments based on my learning targets. Hopefully that will help you when you are looking at the NGSS. 

When I first set out to implement SBG, I started by establishing a set of learning targets for my class. Many schools have adopted the use of learning targets without implementing SBG. I love SBG because it gives those learning targets a greater purpose than just being displayed on a whiteboard! When writing my learning targets, I made sure they were in student friendly language and reflected the skills I wanted students to be able to do when they completed my class.

For example, I could look at this standard from the NGSS, "Construct and revise an explanation for the outcome of a simple chemical reaction based on the outermost electron states of atoms, trends in the periodic table, and knowledge of the patterns of chemical properties." and break it into multiple learning targets. This standard as it is written covers a lot of content and is not really in student friendly language. This standard might include learning targets like "I can identify basic patterns in the way substances react (reaction types) and use them to predict products", "I can predict the solubility of products of a chemical reaction based on chemical properties" and "I can construct Lewis structures for simple molecular compounds." 

Writing your learning targets is the most time consuming part of SBG. I recommend starting from someone else's targets and shaping them to meet your needs. Once you have your learning targets, then you can start writing assessments. I give a short quiz once a week. The only tests I give are semester exams.

When I go to write a quiz, I decide what learning targets I want to assess and then write 1-3 questions for each target. The next week, students will see the same targets on their quiz and maybe a couple new ones. I try to assess each target formally at least 3 times. I also increase the difficulty each time students take a quiz. I have a rubric and calculation method I use which I have outlined on my blog and this article:

I hope this helps! Let me know if this is what you were looking for!



Erica Posthuma's picture
Erica Posthuma | Sun, 01/14/2018 - 23:57

Hi Lenny,

If you are a modeler and member of AMTA you might also check out the webinar Mark Schober and I recently did.  A recording has been posted on the member site on the AMTA website.  Mark has written a great piece on writing learning objectives.  

I would also encourage you to peruse twitter and connect with other teachers using SBG - the #sblchat is a great place to start.

Thanks for reaching out!