From d27f1f6d3a4774fa430be9987d5d441f62e8d274 Mon Sep 17 00:00:00 2001 From: c-vollbrecht Date: Wed, 24 Jun 2026 12:02:24 -0400 Subject: [PATCH 1/5] Start Portal Entry --- ...icle-in-a-box-energy-calculations.yml.yaml | 181 ++++++++++++++++++ 1 file changed, 181 insertions(+) create mode 100644 lessons/Particle-in-a-box-energy-calculations.yml.yaml diff --git a/lessons/Particle-in-a-box-energy-calculations.yml.yaml b/lessons/Particle-in-a-box-energy-calculations.yml.yaml new file mode 100644 index 0000000..88b2e71 --- /dev/null +++ b/lessons/Particle-in-a-box-energy-calculations.yml.yaml @@ -0,0 +1,181 @@ +# lessons/particle-in-a-box-energy-calculations.yml +# +# STARTER TEMPLATE FOR ACT-CMS LESSON PORTAL SUBMISSION +# Replace all placeholder text with your actual lesson information +# Remove any sections that don't apply to your lesson + +# BASIC METADATA (REQUIRED) +# Use a clear, descriptive title that includes the main topic +title: "Particle in a Box Energy Calculations" + +# Brief description for search results (1-2 sentences) +description: "Students will calculate energy levels for particle in a box, exmaine how changes effect these levels, and predict spectra" + +# Longer description for the lesson page (use | for multi-line text) +expanded_description: | + Provide a more detailed description of your lesson here. + Explain the context, what students will accomplish, and how this + fits into broader molecular science education. + + You can use multiple paragraphs to fully describe the lesson scope + and learning experience. + +# COURSE INFORMATION (REQUIRED) +# Choose ONE: "None", "Beginner", "Intermediate", "Advanced" +programming_skill: "None" +# None: No programming experience. +# Beginner: Knows variables, conditionals, loops +# Intermediate: Can write their own scripts from scratch +# Advanced: Can write/develop software. + +# Examples: "Foundational Module", "Physical Chemistry", "Organic Chemistry", +# "Inorganic Chemistry", "Analytical Chemistry", "Biochemistry", "Materials Science", "Other" +primary_course: "Foundational Module" + +# List other courses where this lesson could be used (optional) +also_for: + - "Physical Chemistry" + - "Materials Science" + +# List all authors +authors: + - "Dr. Your Name" + - "Prof. Collaborator Name" + +# Estimated total time for all materials +estimated_time: "2-3 hours" + +# Format of the module. Must be EXACTLY one of these two values (case- and +# spelling-sensitive) so the home-page format filter groups lessons correctly: +# "Single Notebook" or "Multi-Part Module" +format: "Multi-Part Module" + +# INSTRUCTOR INFORMATION (OPTIONAL) +# Contact email for instructor access requests (optional - will use default if not specified) +instructor_email: "instructor-access@university.edu" +# Note: Instructor materials will be located at: instructor-repo/{lesson-filename}/ +# where {lesson-filename} matches this YAML file's name + +# INSTRUCTOR DETAILS (OPTIONAL) +# What level of students was this piloted with? +student_level: "Undergraduate - Second Year" # e.g., "Graduate", "Undergraduate - First Year", "Mixed Graduate/Undergraduate" +# How many students has this been tested with? +students_piloted: 25 # Number of students +# Free-form notes for instructors +instructor_notes: | + Additional context for instructors using this lesson: + + - This lesson works well when paired with a traditional lecture on molecular dynamics + - Students often struggle with the concept of periodic boundary conditions in Part 2 + - The visualization exercises are very engaging - allow extra time for exploration + - Consider assigning the dataset analysis as homework rather than in-class work + + Timing notes: + - Part 1 typically takes students 45-60 minutes + - Part 2 can be rushed in 90 minutes but is better with 2 hours + + Common student questions: + - "Why do we need so many time steps?" - good opportunity to discuss numerical integration + - "What happens if we change the temperature?" - this connects well to thermodynamics concepts + +# Related lessons that complement this one +related_modules: + - "thermodynamics-fundamentals" + - "statistical-mechanics-intro" + - "computational-chemistry-basics" + +# OPTIONAL: Lessons students should complete BEFORE this one. +# Values are lesson IDs (YAML filenames without .yml) — unlike the free-text +# scientific_prerequisites/programming_prerequisites fields below, these are +# strictly build-validated: unknown IDs, self-references, or circular +# prerequisite chains FAIL the build. Machine-readable metadata (searchable +# on the portal); ordered sequences are displayed via paths.yml instead. +prerequisite_modules: + - "foundational-intro-python" + +# NOTE: To add this lesson to an ordered learning path (or create a new one), +# edit paths.yml at the repo root — step order is defined there, not here. + +# REPOSITORY URLS (REQUIRED) +# Link to the repository containing your public material +public_repo_url: "https://github.com/act-cms/your-lesson-repo" + +# MATERIALS SECTION (REQUIRED) +# List each notebook/material in logical order +materials: + - title: "Part 1: Introduction" + description: "Brief description of what this notebook covers" + type: "notebook" # Usually "notebook", could be "slides", "dataset", etc. + duration: "1 hour" + + # REQUIRED: Include at least one URL (preferably both) + # Direct link to notebook file on GitHub + github_url: "https://github.com/act-cms/your-lesson-repo/blob/main/01-intro.ipynb" + # Google Colab launch link (recommended for accessibility) + colab_url: "https://colab.research.google.com/github/act-cms/your-lesson-repo/blob/main/colab-notebooks/01-intro.ipynb" + + # Learning objectives specific to this material + objectives: + - "Specific skill students will develop" + - "Another concrete learning outcome" + - "Third measurable objective" + + # Add more materials as needed + - title: "Part 2: Advanced Topics" + description: "Description of second notebook" + type: "notebook" + duration: "90 min" + github_url: "https://github.com/act-cms/your-lesson-repo/blob/main/02-advanced.ipynb" + colab_url: "https://colab.research.google.com/github/act-cms/your-lesson-repo/blob/main/colab-notebooks/02-advanced.ipynb" + objectives: + - "Advanced skill development" + - "Application of concepts from Part 1" + +# LEARNING OBJECTIVES (REQUIRED) +# What molecular science concepts will students learn? +scientific_objectives: + - "Apply programming to solve chemical problems" + - "Understand molecular property X through computational analysis" + - "Interpret results of computational molecular science calculations" + +# What computational/programming skills will students develop? +cyberinfrastructure_objectives: + - "Write and execute Python code in Jupyter notebooks" + - "Use library X to perform scientific calculations" + - "Create visualizations of molecular data" + - "Debug common programming errors" + +# PREREQUISITES (REQUIRED) +# What science background do students need? +scientific_prerequisites: + - "General chemistry" + - "Basic understanding of molecular structure" + +# What programming experience is assumed? +programming_prerequisites: + - "No prior programming experience required" + # OR: eg "Basic Python syntax (variables, loops, functions)" + +# PLATFORM SUPPORT (REQUIRED) +# List platforms where your materials can be used. Each value must be one of +# the supported platforms (spelling and capitalization matter): +# "Google Colab", "Local Installation", "ChemCompute", "CoCalc" +# Any other value fails the build (no rendering template exists for it). +platforms: + - "Google Colab" + - "Local Installation" + - "ChemCompute" + +# Which platform do you recommend for most users? +# Pick exactly ONE platform name, and it must match an entry in the `platforms` +# list above EXACTLY (same spelling and capitalization). Do NOT combine several, +# e.g. "Google Colab, ChemCompute" is invalid and fails the build. +recommended_platform: "Google Colab" + +# METADATA (REQUIRED) +# Tags help with searching - use relevant keywords +tags: + - "python" + - "molecular-dynamics" + - "visualization" + - "quantum-chemistry" # Use appropriate scientific area tags \ No newline at end of file From 455f3692cf3ceb2837c2d389d39d098c4fa2b083 Mon Sep 17 00:00:00 2001 From: c-vollbrecht Date: Thu, 25 Jun 2026 09:20:37 -0400 Subject: [PATCH 2/5] Update Particle-in-a-box-energy-calculations.yml.yaml --- ...icle-in-a-box-energy-calculations.yml.yaml | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/lessons/Particle-in-a-box-energy-calculations.yml.yaml b/lessons/Particle-in-a-box-energy-calculations.yml.yaml index 88b2e71..99b3ec3 100644 --- a/lessons/Particle-in-a-box-energy-calculations.yml.yaml +++ b/lessons/Particle-in-a-box-energy-calculations.yml.yaml @@ -9,7 +9,7 @@ title: "Particle in a Box Energy Calculations" # Brief description for search results (1-2 sentences) -description: "Students will calculate energy levels for particle in a box, exmaine how changes effect these levels, and predict spectra" +description: "Students will calculate energy levels for particle in a box, exmaine how box length changes these levels, and predict spectra" # Longer description for the lesson page (use | for multi-line text) expanded_description: | @@ -22,7 +22,7 @@ expanded_description: | # COURSE INFORMATION (REQUIRED) # Choose ONE: "None", "Beginner", "Intermediate", "Advanced" -programming_skill: "None" +programming_skill: "Beginner" # None: No programming experience. # Beginner: Knows variables, conditionals, loops # Intermediate: Can write their own scripts from scratch @@ -30,37 +30,35 @@ programming_skill: "None" # Examples: "Foundational Module", "Physical Chemistry", "Organic Chemistry", # "Inorganic Chemistry", "Analytical Chemistry", "Biochemistry", "Materials Science", "Other" -primary_course: "Foundational Module" +primary_course: "Physical Chemistry" # List other courses where this lesson could be used (optional) also_for: - - "Physical Chemistry" - - "Materials Science" + - "Physical Chemistry Lab" # List all authors authors: - - "Dr. Your Name" - - "Prof. Collaborator Name" + - "Prof. Cecilia Vollbrecht" # Estimated total time for all materials -estimated_time: "2-3 hours" +estimated_time: "1-2 hours" # Format of the module. Must be EXACTLY one of these two values (case- and # spelling-sensitive) so the home-page format filter groups lessons correctly: # "Single Notebook" or "Multi-Part Module" -format: "Multi-Part Module" +format: "Single Notebook" # INSTRUCTOR INFORMATION (OPTIONAL) # Contact email for instructor access requests (optional - will use default if not specified) -instructor_email: "instructor-access@university.edu" +instructor_email: "cecilia.vollbrecht@kzoo.edu" # Note: Instructor materials will be located at: instructor-repo/{lesson-filename}/ # where {lesson-filename} matches this YAML file's name # INSTRUCTOR DETAILS (OPTIONAL) # What level of students was this piloted with? -student_level: "Undergraduate - Second Year" # e.g., "Graduate", "Undergraduate - First Year", "Mixed Graduate/Undergraduate" +student_level: "Undergraduate - Third Year" # e.g., "Graduate", "Undergraduate - First Year", "Mixed Graduate/Undergraduate" # How many students has this been tested with? -students_piloted: 25 # Number of students +students_piloted: 7 # Number of students # Free-form notes for instructors instructor_notes: | Additional context for instructors using this lesson: From 9a606130884ff9234675987f28e2f260f125021b Mon Sep 17 00:00:00 2001 From: c-vollbrecht Date: Thu, 25 Jun 2026 10:39:13 -0400 Subject: [PATCH 3/5] Update Particle-in-a-box-energy-calculations.yml.yaml --- ...icle-in-a-box-energy-calculations.yml.yaml | 38 ++++++++----------- 1 file changed, 15 insertions(+), 23 deletions(-) diff --git a/lessons/Particle-in-a-box-energy-calculations.yml.yaml b/lessons/Particle-in-a-box-energy-calculations.yml.yaml index 99b3ec3..f2f676d 100644 --- a/lessons/Particle-in-a-box-energy-calculations.yml.yaml +++ b/lessons/Particle-in-a-box-energy-calculations.yml.yaml @@ -9,7 +9,7 @@ title: "Particle in a Box Energy Calculations" # Brief description for search results (1-2 sentences) -description: "Students will calculate energy levels for particle in a box, exmaine how box length changes these levels, and predict spectra" +description: "Students will calculate energy levels for particle in a box, exmaine how box length changes these levels, and predict absorption wavelength" # Longer description for the lesson page (use | for multi-line text) expanded_description: | @@ -78,9 +78,11 @@ instructor_notes: | # Related lessons that complement this one related_modules: - - "thermodynamics-fundamentals" - - "statistical-mechanics-intro" - - "computational-chemistry-basics" + - "fooddye-uvvis-tddft" + - "Harmonic-Oscillator-Energy-Calculations" + - "vibronic-spectrum-of-iodine" + - "orthonormal-wavefunctions" + - "absorption-of-conjugated-dyes-with-finite-well-PIB" # OPTIONAL: Lessons students should complete BEFORE this one. # Values are lesson IDs (YAML filenames without .yml) — unlike the free-text @@ -96,15 +98,15 @@ prerequisite_modules: # REPOSITORY URLS (REQUIRED) # Link to the repository containing your public material -public_repo_url: "https://github.com/act-cms/your-lesson-repo" +public_repo_url: "https://github.com/act-cms/Particle-In-A-Box-Energy-Calculations" # MATERIALS SECTION (REQUIRED) # List each notebook/material in logical order materials: - - title: "Part 1: Introduction" + - title: "Particle in a Box Energy Calculations" description: "Brief description of what this notebook covers" type: "notebook" # Usually "notebook", could be "slides", "dataset", etc. - duration: "1 hour" + duration: "2 hour" # REQUIRED: Include at least one URL (preferably both) # Direct link to notebook file on GitHub @@ -118,22 +120,12 @@ materials: - "Another concrete learning outcome" - "Third measurable objective" - # Add more materials as needed - - title: "Part 2: Advanced Topics" - description: "Description of second notebook" - type: "notebook" - duration: "90 min" - github_url: "https://github.com/act-cms/your-lesson-repo/blob/main/02-advanced.ipynb" - colab_url: "https://colab.research.google.com/github/act-cms/your-lesson-repo/blob/main/colab-notebooks/02-advanced.ipynb" - objectives: - - "Advanced skill development" - - "Application of concepts from Part 1" # LEARNING OBJECTIVES (REQUIRED) # What molecular science concepts will students learn? scientific_objectives: - "Apply programming to solve chemical problems" - - "Understand molecular property X through computational analysis" + - "Understand the particle in a box model through computational analysis" - "Interpret results of computational molecular science calculations" # What computational/programming skills will students develop? @@ -147,11 +139,11 @@ cyberinfrastructure_objectives: # What science background do students need? scientific_prerequisites: - "General chemistry" - - "Basic understanding of molecular structure" + - "Basic understanding of particle in a box" # What programming experience is assumed? programming_prerequisites: - - "No prior programming experience required" + - "Basic python syntax" # OR: eg "Basic Python syntax (variables, loops, functions)" # PLATFORM SUPPORT (REQUIRED) @@ -160,15 +152,15 @@ programming_prerequisites: # "Google Colab", "Local Installation", "ChemCompute", "CoCalc" # Any other value fails the build (no rendering template exists for it). platforms: - - "Google Colab" - - "Local Installation" - "ChemCompute" + - "Local Installation" + - "Google Colab" # Which platform do you recommend for most users? # Pick exactly ONE platform name, and it must match an entry in the `platforms` # list above EXACTLY (same spelling and capitalization). Do NOT combine several, # e.g. "Google Colab, ChemCompute" is invalid and fails the build. -recommended_platform: "Google Colab" +recommended_platform: "ChemCompute" # METADATA (REQUIRED) # Tags help with searching - use relevant keywords From 5243ddcf34530e208f1ccd7e14d30384a4ebfa4c Mon Sep 17 00:00:00 2001 From: c-vollbrecht Date: Thu, 25 Jun 2026 11:54:54 -0400 Subject: [PATCH 4/5] Update Particle-in-a-box-energy-calculations.yml.yaml --- .../Particle-in-a-box-energy-calculations.yml.yaml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lessons/Particle-in-a-box-energy-calculations.yml.yaml b/lessons/Particle-in-a-box-energy-calculations.yml.yaml index f2f676d..36c2d6b 100644 --- a/lessons/Particle-in-a-box-energy-calculations.yml.yaml +++ b/lessons/Particle-in-a-box-energy-calculations.yml.yaml @@ -104,7 +104,7 @@ public_repo_url: "https://github.com/act-cms/Particle-In-A-Box-Energy-Calculatio # List each notebook/material in logical order materials: - title: "Particle in a Box Energy Calculations" - description: "Brief description of what this notebook covers" + description: "This notebook covers calculating energy levels using the particle in a box model, comparing energy levels as box length changes, and calculating energy level differences in both energy and wavelength" type: "notebook" # Usually "notebook", could be "slides", "dataset", etc. duration: "2 hour" @@ -131,15 +131,16 @@ scientific_objectives: # What computational/programming skills will students develop? cyberinfrastructure_objectives: - "Write and execute Python code in Jupyter notebooks" - - "Use library X to perform scientific calculations" - - "Create visualizations of molecular data" - - "Debug common programming errors" + - "Set constants and use functions" + - "Use if and for loops" + - "Create plots" + - "Create and use arrays and matrices" # PREREQUISITES (REQUIRED) # What science background do students need? scientific_prerequisites: - "General chemistry" - - "Basic understanding of particle in a box" + - "Basic understanding of particle in a box model" # What programming experience is assumed? programming_prerequisites: From 822214c7490968d2441bae286ea66798aec8df14 Mon Sep 17 00:00:00 2001 From: c-vollbrecht Date: Thu, 25 Jun 2026 16:27:24 -0400 Subject: [PATCH 5/5] Update Particle-in-a-box-energy-calculations.yml.yaml --- ...icle-in-a-box-energy-calculations.yml.yaml | 39 ++++++++----------- 1 file changed, 16 insertions(+), 23 deletions(-) diff --git a/lessons/Particle-in-a-box-energy-calculations.yml.yaml b/lessons/Particle-in-a-box-energy-calculations.yml.yaml index 36c2d6b..35e0670 100644 --- a/lessons/Particle-in-a-box-energy-calculations.yml.yaml +++ b/lessons/Particle-in-a-box-energy-calculations.yml.yaml @@ -9,16 +9,13 @@ title: "Particle in a Box Energy Calculations" # Brief description for search results (1-2 sentences) -description: "Students will calculate energy levels for particle in a box, exmaine how box length changes these levels, and predict absorption wavelength" +description: "Students will calculate energy levels for particle in a box, examine how box length changes these levels, and predict absorption wavelength" # Longer description for the lesson page (use | for multi-line text) expanded_description: | - Provide a more detailed description of your lesson here. - Explain the context, what students will accomplish, and how this - fits into broader molecular science education. + By completing this module students will examine the energies of a 1, 2, and 3-D box. + Students will calculate both individual energy levels and differences in energy levels. - You can use multiple paragraphs to fully describe the lesson scope - and learning experience. # COURSE INFORMATION (REQUIRED) # Choose ONE: "None", "Beginner", "Intermediate", "Advanced" @@ -62,19 +59,12 @@ students_piloted: 7 # Number of students # Free-form notes for instructors instructor_notes: | Additional context for instructors using this lesson: + This activity was piloted with students working on their own document but collaborating in pairs. + The set up allowed students to help each other and learn to troubleshoot better. + A lot of material was covered before the module, and the module was designed more to help students practice calculations + and see visualizations than to learn new concepts. + - - This lesson works well when paired with a traditional lecture on molecular dynamics - - Students often struggle with the concept of periodic boundary conditions in Part 2 - - The visualization exercises are very engaging - allow extra time for exploration - - Consider assigning the dataset analysis as homework rather than in-class work - - Timing notes: - - Part 1 typically takes students 45-60 minutes - - Part 2 can be rushed in 90 minutes but is better with 2 hours - - Common student questions: - - "Why do we need so many time steps?" - good opportunity to discuss numerical integration - - "What happens if we change the temperature?" - this connects well to thermodynamics concepts # Related lessons that complement this one related_modules: @@ -106,7 +96,7 @@ materials: - title: "Particle in a Box Energy Calculations" description: "This notebook covers calculating energy levels using the particle in a box model, comparing energy levels as box length changes, and calculating energy level differences in both energy and wavelength" type: "notebook" # Usually "notebook", could be "slides", "dataset", etc. - duration: "2 hour" + duration: "1-2 hour" # REQUIRED: Include at least one URL (preferably both) # Direct link to notebook file on GitHub @@ -116,9 +106,9 @@ materials: # Learning objectives specific to this material objectives: - - "Specific skill students will develop" - - "Another concrete learning outcome" - - "Third measurable objective" + - "Determine energy levels of a 1, 2, and 3-D particle in a box model" + - "Calculate differences in energy levels and the wavelength they correspond to" + - "Create visualizations of energy levels with changing box length" # LEARNING OBJECTIVES (REQUIRED) @@ -126,6 +116,9 @@ materials: scientific_objectives: - "Apply programming to solve chemical problems" - "Understand the particle in a box model through computational analysis" + - "Calculate energy levels of particles in a box (1-D and 2-D)" + - "Convert energy to wavelength to predict what wavelength molecules will absorb" + - "Predict how energy levels will change when box length changes or particle mass changes" - "Interpret results of computational molecular science calculations" # What computational/programming skills will students develop? @@ -167,6 +160,6 @@ recommended_platform: "ChemCompute" # Tags help with searching - use relevant keywords tags: - "python" - - "molecular-dynamics" + - "physical-chemistry" - "visualization" - "quantum-chemistry" # Use appropriate scientific area tags \ No newline at end of file