PHYS 210 Day 01 - Sep 03, 2025

Agenda:

  1. General introduction & syllabus
  2. Getting to know you; Group activities
  3. Introduction to our computing environment (JupyterLab)
  4. Getting started on what you need to do before Day 02 (Sep 09)

I’m Joss (he/him); you are also welcome to call me Dr. Ives

  • I'm a Professor of Teaching, hired here in 2013
  • I taught at University of the Fraser Valley for five years before that
  • Teaching PHYS 210 for my fourth time
  • My PhD research was in experimental particle physics
  • I now work in the field of Physics Education Research

Plus there will be 3 TAs in your section

What is this course all about?

Investigating physical systems with python, using simulations and numerical methods. Communicating interesting findings using Jupyter notebooks.

  • Most realistic physical problems do not have exact analytical solutions.
  • Problems based on simple equations (e.g., $F = ma$) become complicated with many interacting components.

Some big-picture learning goals

Translate physical laws into computer code that can be used to perform investigations, solve problems and answer questions

  • Manage files and programs on the computer
  • Edit and execute programs
  • Read and write data files from within a program
  • Manipulate data and perform calculations within a program
  • Visualize, communicate and interpret the results of calculations and investigations

Find the detailed syllabus and more on Canvas

canvas.png

Course schedule

  • Section 101/L1A: Mon/Wed 12:30-13:00, 13:00-14:50
  • Section 102/L1B: Mon/Wed 15:30-16:00, 16:00-17:50
  • Office hours: Will be announced soon

Course format

Three modules → Three projects

  • Lesson days: Build skills through prep work, mini-lectures, and group activities
  • Project days: Apply what you've learned with feedback and support
  • Poster presentation: Showcase your best work in the final week of the course

Projects

Computational investigations that YOU design

  • Start with: Starter code for the simulation (provided)
  • Your choices: Which physics questions to explore and how to investigate them
  • Your extensions: Enhanced physics models and more sophisticated code

Project assessment: modelled after the peer-review process

Goal: Earn "Accepted for Publication"

  • Submit → Get feedback → Revise → Resubmit
  • Multiple chances to improve each project
  • Graders = peer reviewers, Instructor = editor
  • Focus on learning through revision, not perfection on first try

Editorial decisions (an overview)

Most students need 2-3 submissions per project to reach Publish.

Editorial decision Description
Publish /
Accepted for Publication
The project criteria have been fully addressed with no outstanding errors or issues.
Minor Revisions Mostly complete; small issues remain.
Major Revisions Key issues need significant work.
Incomplete Off-track; meet with instructor before revising.

Distinction points can be awarded to projects that go above and beyond and have already earned a Publish decision.

The Engagement Assessment Category

Item Estimated Engagement
Points Available
Preclass preparation assignments (1pt each) 12 pts
Group worksheets (1 pt each) 12 pts
Homework assignments (1 pt each) 12 pts
Project feedback drafts (2 pts each) 6 pts
Peer feedback on projects and posters (2 pts each) 10 pts
Total 52 pts

The three projects anchor your grade

Plus minor adjustments for: Poster presentation + Engagement tasks

Final Grade Minimum Requirement
A (85%) Publish (higher grades possible with Distinction)
B (72%) Minor Revisions
D (50%) Major Revisions
F Incomplete or missing project(s)

Grade modifiers

Modifier Poster Presentation Engagement Tasks
No change Publish or Minor Revisions 70–100% of possible points
Drop one partial grade (e.g., A → A–) Major Revisions 50–69% of points
Drop two partial grades (e.g., A → B+) Incomplete or none 0–49% of points

Academic integrity

Your work should reflect YOUR intellectual contributions and understanding

Encouraged Required
Collaborate with classmates Provide attribution to help from humans and GenAI
Ask for help when stuck Understanding any output from GenAI that makes it into your submissions
If using it, use GenAI responsibly When in doubt, ask!

Attribution example: ''After modifying the Project starter code to incorporate friction, I noticed objects were traveling backward after stopping. I asked CoPilot about this behavior, and it helped me revise the code.''

Bring your own computer each day (we have loaners if needed)

Course tools:

Canvas Announcements, submissions
UBC Jupyter Open (JupyterLab) Jupyter notebooks used for preclass preparation assignments, homework, projects and more
CoCalc Group worksheets with real-time collaborative editing
iClicker Cloud In-class polling
Piazza Course discusison forums

iClicker Cloud for in-class polling questions

Poll 1.1: Paper to the moon.

If you fold a LARGE sheet of paper in half, its thickness doubles. Fold it in half again, the thickness doubles again. How many times would you need to fold it in half until the thickness is great enough to reach the moon?

What is your initial guess? (don’t try to calculate yet)

A) 10 - 99
B) 100 - 999
C) 1,000 - 9,999
D) 10,000 - 99,999
E) More than 100,000

Group activities

Group activity #1: Work in groups of 3-4

Introduce yourselves to each other and share:

  • Your name
  • Your previous computing experience
  • What you are looking forward to in PHYS 210

Work on a quantitative estimate to the paper folding problem in your group

  • distance to the moon ~ 400,000 km
  • a ream of 500 sheets of paper ~ 5 cm thick

Poll 1.2: What was your group’s quantitative estimate?

A) 10 - 99
B) 100 - 999
C) 1,000 - 9,999
D) 10,000 - 99,999
E) More than 100,000

Group activity #2: A sorting algorithm

What is an algorithm?

  • A method to solve a problem
  • A set of step-by-step rules

This activity is adapted from Michigan State University's CMSE 201

Example: Given a list of numbers, find the largest one

  • A defined set of inputs: list: 3, 1, 5, 2
  • A defined set of outputs: the largest number
  • A precise set of step-by-step instructions: next slide

Step-by-step instructions with example numbers (3, 1, 5, 2)

  1. Start with the first number and assume it's the largest: 3
  2. Compare the current largest number with the next number in the list: 3 vs 1
  3. If the next number is larger, make it the new largest number: 3
  4. Repeat steps 2 and 3 until you've checked all the numbers. 3 vs 5, 5 is largest. 5 vs 2, 5 is largest
  5. The largest number you found is the answer. 5 is the largest number

Use a collaborative space to design an algorithm that sorts a group of people by their birthday (Jan 1st to Dec 31st). The algorithm can ask only yes/no questions.

  • Inputs: a set of people, in a given (random) order.
  • Outputs: the same set of people, arranged by birthday.
  • The algorithm can change the order of people in the list and can ask for information using only yes/no questions, such as "Were you born in July?" or "Were you born on February 2nd?"

Test it on your group after you are done designing it. How many questions did it have to ask? Afterward compare with 1-2 other groups and see which algorithm asks the fewest questions.

(Time permitting) Reflect with your group on the following:

  • What worked well and what didn't?
  • Are there ways to make your algorithm work more efficiently?
  • Which algorithm worked the best and why?
  • What if the individuals that you were trying to sort could ask questions of each other?

Create a CoCalc account

We're using CoCalc (by Sagemath) for real-time collaborative coding for group worksheets. Create a free account on https://cocalc.com/ then fill out the "Share your CoCalc email" quiz on Canvas so that I can add you to our CoCalc course

cocalc.png

Get to know you survey (on Canvas)

canvas3.png

A brief tour of Jupyter Open and getting started on your Day 01 Homework

  • Use the Canvas links, such as "Homework Day 01", which will open the desired file, whole synchronizing all handouts from our repository to your Jupyter Open account in the background
  • Submit exported notebooks as html files on Canvas
  • You can always access your work at https://open.jupyter.ubc.ca/

Use of assert to get feedback on many of our tasks

(Next slide shows how to prevent the assert error)

In [ ]:
animal = "cat"

assert animal == "dog", "you chose the incorrect answer"
print("yay, you passed")

What happens when you change the animal?

In [ ]:
animal = "dog"

assert animal == "dog", "you chose the incorrect answer"
print("yay, you passed")

Until the end of class and before Monday’s class:

  • Complete Day 01 Homework and submit to Canvas for completion credit
  • Fill out the Get to know you survey, which counts as Day 01 Preclass preparation assignment
  • Complete the Day 02 Preclass preparation assignment (due at 7am so that I have a chance to respond to your questions)