What’s New in Chemical Education?

Jason Sonnenberg & Camilo Castrillon-Toro
Wolfram|Alpha Chemistry Team

(RowDefault[, (Spacer1), , (Spacer1), ])  #WolframTechConf

Abstract

Recent and upcoming features of Wolfram|Alpha, Wolfram|Alpha Notebook Edition and the Wolfram Language related to chemical education are discussed. These features include expanded Step-by-Step support, improved free form input and new Wolfram Function Repository and Wolfram Paclet Repository submissions. Example activities and educator resources are highlighted.

Tools for Chemical Education

Summer Programs

ChatGPT + Wolfram

ChatGPT Needs a Chemistry Tutor Too

General Prompts

• It may be helpful to look up the syntax for the chemistry functions that you plan to use before executing code. You don’t need to report out what you learn from looking up the syntax.
• When solving chemical equilibrium problems, include an equilibrium table in the output.
• If chemical conversions are required try Wolfram|Alpha first before writing Wolfram Language code.

Chemical Structure

Phenol

User prompt
What is the structure of phenol?

https://chat.openai.com/share/73fea441-7803-4282-a1ea-b6928f0cb869

MoleculePlot[(Entity["phenol", Entity["Chemical","Phenol"], "Entity[\"Chemical\", \"Phenol\"]", "chemical"])]

Allicin

User prompt
Display the space filling, ball and stick, tubes and wireframe plots for allicin next to each other.  It may be helpful to look up the syntax for the chemistry functions that you plan to use before executing code. You don’t need to report out what you learn from looking up the syntax.

https://chat.openai.com/share/d65821f5-af67-4fb7-98f4-b0dfc8449a42

Map[MoleculePlot3D[(Entity["allicin", Entity["Chemical","Allicin"], "Entity[\"Chemical\", \"Allicin\"]", "chemical"]),PlotTheme->#]&,{"Spacefilling","BallAndStick","Tubes","Wireframe"}]

Molecular Properties

Normal boiling point

Prompt - 2022 U.S. National Chemistry Olympiad (Q15)

User prompt
Which compound has the lowest normal boiling point? A) HF B) HCl  C) HBr D) HI

https://chat.openai.com/share/0b714acb-ffd9-4e2e-9df1-cc05325a21f5

EntityValue[{(Entity["hydrogen fluoride", Entity["Chemical","HydrogenFluoride"], "Entity[\"Chemical\", \"HydrogenFluoride\"]", "chemical"]),(Entity["hydrogen chloride", Entity["Chemical","HydrogenChloride"], "Entity[\"Chemical\", \"HydrogenChloride\"]", "chemical"]),(Entity["hydrogen bromide", Entity["Chemical","HydrogenBromide"], "Entity[\"Chemical\", \"HydrogenBromide\"]", "chemical"]),(Entity["hydrogen iodide", Entity["Chemical","HydrogenIodide"], "Entity[\"Chemical\", \"HydrogenIodide\"]", "chemical"])},(EntityProperty["boiling point", EntityProperty["Chemical","BoilingPoint"], "EntityProperty[\"Chemical\", \"BoilingPoint\"]"])]

Elemental Composition

Multiple choice

2002 Chemistry Olympiad question (Q1)

User prompt
Which potassium salt is 28.9% chlorine by mass? a) KCl, b) KClO, C) KClO2, d)KClO3. Be sure to look up any necessary chemical or elemental data and let Wolfram do any math.

https://chat.openai.com/share/7f988ec5-6b60-4f9a-9af7-ace3aefdeaa5

(Entity["potassium chlorate", Entity["Chemical","PotassiumChlorate"], "Entity[\"Chemical\", \"PotassiumChlorate\"]", "chemical"])["Formula"]
(Entity["potassium chlorate", Entity["Chemical","PotassiumChlorate"], "Entity[\"Chemical\", \"PotassiumChlorate\"]", "chemical"])[(EntityProperty["element mass fraction", EntityProperty["Chemical","ElementMassFraction"], "EntityProperty[\"Chemical\", \"ElementMassFraction\"]"])]

Hydrogen in ATP

User prompt
What is the mass percent of hydrogen in ATP?

https://chat.openai.com/share/c976f850-eefc-4bbb-b925-2babe9204afc

(Entity["adenosine triphosphate", Entity["Chemical","AdenosineTriphosphate"], "Entity[\"Chemical\", \"AdenosineTriphosphate\"]", "chemical"])["Formula"]
(Entity["adenosine triphosphate", Entity["Chemical","AdenosineTriphosphate"], "Entity[\"Chemical\", \"AdenosineTriphosphate\"]", "chemical"])[(EntityProperty["element mass fraction", EntityProperty["Chemical","ElementMassFraction"], "EntityProperty[\"Chemical\", \"ElementMassFraction\"]"])]

Chemical Conversion

Sulfur in pyrite

2002 Chemistry Olympiad question (Q2)

User prompt
How many sulfur atoms are in 3.00 g of iron pyrite, FeS2?  Be sure to look up any necessary chemical or elemental data and let Wolfram do any math.

https://chat.openai.com/share/ea8fb324-9105-4895-a8e5-b693d219ae32

ChemicalConvert[ChemicalInstance[(Entity["sulfur", Entity["Element","Sulfur"], "Entity[\"Element\", \"Sulfur\"]", "element"]),ResourceFunction["ChemicalElementComposition"][(Quantity[3, "g", grams, "Grams"]),(Entity["pyrite", Entity["Chemical","Pyrite"], "Entity[\"Chemical\", \"Pyrite\"]", "chemical"]),(Entity["sulfur", Entity["Element","Sulfur"], "Entity[\"Element\", \"Sulfur\"]", "element"])]],"Atoms"]

Mass to moles with uncertainty

User prompt
Convert 7.23+-0.0001 g sucrose to moles. Remember that Wolfram Alpha understands uncertainty.

https://chat.openai.com/share/cb8894f9-bca3-49ca-860f-0974c618b59b

ChemicalInstance[(Entity["sucrose", Entity["Chemical","Sucrose"], "Entity[\"Chemical\", \"Sucrose\"]", "chemical"]),(Quantity[((Around[7.23000, 0.00010])), "g", grams, "Grams"]) ]["Amount"]

Reaction Balancing

Inorganic

User prompt
Balance the chemical reaction Ca(AlO2)2 + HCl -> AlCl3 + CaCl2 + H2O

https://chat.openai.com/share/2a311033-8d9c-4e45-86d0-68b4efb8a483

ReactionBalance["Ca(AlO2)2+HCl->AlCl3+CaCl2+H2O"]

Organic

User prompt
Balance the reaction between methane and oxygen to form water and CO2

https://chat.openai.com/share/ce82e655-1865-48e3-942e-de0c35364016

ReactionBalance["CH4 + O2 ->  H2O + CO2"]

Test Bank Generation

Ideal gas law

User prompt
I need your help generating multiple versions of homework problems. For each problem, generate three other versions of the question. Keep the same number of significant digits as the original problem and ensure that each digit is different in each problem.

At what temperature does 16.3 g of nitrogen gas have a pressure of 1.25atm in a 25.0 L tank?

What are the answers for the problems? Be sure to look up any necessary chemical or elemental data along with constants and let Wolfram do any math.

https://chat.openai.com/share/8a46fb43-5de7-4dc7-b18d-56b332c6c406

idealGasAnswer[mass_,pressure_,volume_]:=With[{answer=FormulaData[{"IdealGasLaw", "Volume"}, {"n" -> ChemicalConvert[ChemicalInstance[(Entity["nitrogen", Entity["Chemical","MolecularNitrogen"], "Entity[\"Chemical\", \"MolecularNitrogen\"]", "chemical"]), mass], "Moles"]["Amount"],"P" -> pressure, "V" -> volume}]},{answer,UnitConvert[Last[answer],"Kelvins"]}]
idealGasAnswer[(Quantity[16.3, "g", grams, "Grams"]),(Quantity[1.25, "atm", atmospheres, "Atmospheres"]),(Quantity[25.0, "L", liters, "Liters"])]
idealGasAnswer[(Quantity[17.4, "g", grams, "Grams"]),(Quantity[1.36, "atm", atmospheres, "Atmospheres"]),(Quantity[26.1, "L", liters, "Liters"])]
idealGasAnswer[(Quantity[18.5, "g", grams, "Grams"]),(Quantity[1.47, "atm", atmospheres, "Atmospheres"]),(Quantity[27.2, "L", liters, "Liters"])]
idealGasAnswer[(Quantity[19.6, "g", grams, "Grams"]),(Quantity[1.58, "atm", atmospheres, "Atmospheres"]),(Quantity[28.3, "L", liters, "Liters"])]

Code Assistant

Building molecule pattern objects

User prompt
Read in the usage for MoleculePattern and Bond. Then write code to create an association of five common functional groups where the keys are the group name such as hydroxyl, carbonyl, thiol, etc and the values are the corresponding MoleculePattern for each. When building the molecule pattern objects do not use SMARTS patterns.

https://chat.openai.com/share/77af4372-f2fc-4bff-bd7d-edcfb7d8ae06

functionalGroups=<|"Hydroxyl"->MoleculePattern[{"O","H"},{Bond[{1,2}]}],"Carbonyl"->MoleculePattern[{"O","C"},{Bond[{1,2},"Double"]}],"Thiol"->MoleculePattern[{"S","H"},{Bond[{1,2}]}],"Amine"->MoleculePattern[{"N","H","H","H"},{Bond[{1,2}],Bond[{1,3}],Bond[{1,4}]}],"Phosphate"->MoleculePattern[{"P","O","O","O","O"},{Bond[{1,2},"Double"],Bond[{1,3}],Bond[{1,4}],Bond[{1,5}]}]|>

Wolfram|Alpha - Thermochemistry

Wolfram|Alpha - Step-by-Step Content

Wolfram|Alpha - New Calculators

Wolfram|Alpha - Enhanced Chemical Formulas

Wolfram|Alpha - Error Propagation

Wolfram|Alpha Notebook Edition

Data Collection

Record the titrant concentration in moles per liter using +- to enter the measurement uncertainty. Assign the results to baseMolarity.

Record the volume of acetic acid in milliliters for each trial as a List using +- to enter the measurement uncertainty. Convert the volumes to liters and assign the results to acidVolume.

Record the initial buret reading in milliliters for each trial as a List using +- to enter the measurement uncertainty. Assign the results to buretInitial.

Record the final buret reading in milliliters for each trial as a List using +- to enter the measurement uncertainty. Assign the results to buretFinal.

Data Analysis

Compute the volume of titrant in mL used in each trial. Assign the results to baseVolume.

Compute the amount of titrant in moles for each trial. Assign the results to baseAmount.

Compute the acid concentration in moles per liter for each trial. Assign the results to acidMolarity.

Results

Compute the average acid concentration in moles per liter. Assign the results to averageMolarity. How many significant digits are in the final answer?

Type your answer here using full sentences with correct grammar and spelling.

Clear the variables used.

Useful Links