Bring your own computer. You’ll need your own computer for this course, but don’t worry—any device with a web browser will do! We’ll be using the web-based Jupyter Open platform (https://open.jupyter.ubc.ca/), so your computer’s power-level isn’t important.
Get a head start with Python! If you’re new to Python or haven’t used it in a while, we recommend brushing up before the start of the term. The early weeks move quickly through Python basics like variables, lists, conditionals, functions, and loops—many of which aren’t fully covered in Physics 119. To prepare, check out the free Programming for Everybody (Getting Started with Python) course (Google account required). It’s also available on Coursera (7-day free trial) and other platforms. Feel free to use any other similar resource that suits your preference.
Recommended lessons from Programming for Everybody (Getting Started with Python):
1: Installing Python (but you can just use Jupyter Open if you like)
2: Why Program?
3: Variables, expressions and statements
4: Conditional Execution
5: Functions
6: Loops and Iterations
7: Strings
9: Lists
Instructor: Joss Ives (joss.ives at ubc dot ca)
TAs: Russell Bate, Madison Levagood, Tanay Mahendru, Joshua Montain, Ryan Quinn, Raishar Shayan, Joey Townsend, Daniel Turner, Audrey Yang, Allen Zhao
Location: Hebb B112
Weekly schedule:
Section 101/L1A | Section 102/L1B | |
---|---|---|
Lecture | Mon/Wed 12:30-13:00 | Mon/Wed 15:30-16:00 |
Lab | Mon/Wed 13:00-14:50 | Mon/Wed 16:00-17:50 |
Please attend the sections in which you are registered. The timetable distinction between Lecture and Lab is primarily for bookkeeping as each day is taught as a contiguous 2.5-hour block.
Pre-reqs: One of PHYS 102, PHYS 108, PHYS 118, PHYS 158, PHYS 153, SCIE 001.
Co-reqs: One of MATH 152, MATH 221, MATH 223
Office Hours: In Hebb 112 and usually available on Zoom as well
Textbook: There’s no required textbook for this course. Instead, you’ll learn through pre-class assignments, group worksheets and homework, which will all serve as references. If you’d like a more structured resource, consider A Student’s Guide to Python for Physical Modeling (Kinder & Nelson, 2nd ed.) or the excellent (and free) Computational Physics with Python by Eric Ayars.
Course Platforms and Online Tools:
Your private information and CoCalc: CoCalc runs on servers outside of Canada, where UBC cannot guarantee the security of your private information. Please exercise caution regarding the use of your personal information in this context. When you create your CoCalc account you may wish to use a pseudonym and/or an email not associated with your UBC student profile. Please contact UBC (LT.hub@ubc.ca) or CoCalc’s support team (help@sagemath.com) if you have any questions about your privacy.
This course is divided into three modules, each ending with a project. After a series of lesson days in each module, you’ll have dedicated in-class time to work on your project. In the final week, you’ll present your favorite project in a poster session with your peers and the teaching team.
Lessons build the skills needed for each project. Each class period begins with a short interactive lecture—reviewing common challenges from the pre-class preparation assignment with interactive polling questions—followed by small-group worksheet activities. A short homework assignment will be due before the next class, and you’ll often have time at the end of class to get started on it.
You’ll apply your skills in small projects, submitting multiple drafts and improving your work based on feedback from peers and instructors.
The final three class meetings are for preparing and presenting your final poster. More details will be shared mid-term.
Date | Topics | In-class engagement task (tentative) | Deadlines |
---|---|---|---|
Sep 03 (W) | Day 01 Introduction to the course, python and Jupyter notebooks | Group activities | |
Sep 08 (M) | Day 02 Strings, text formatting and conditionals | Group Worksheet: Strings, text formatting and conditionals | |
Sep 10 (W) | Day 03 Lists and for loops | Group Worksheet: Lists and for loops | |
Sep 15 (M) | Day 04 NumPy arrays | Group Worksheet: NumPy arrays | |
Sep 17 (W) | Day 05 Plotting data with Matplotlib | Group Worksheet: Plotting data with Matplotlib | |
Sep 22 (M) | Day 06 Project 1, Day 1 | Project assignment: Graphical representations of your collision | |
Sep 24 (W) | Day 07 Project 1, Day 2 | Project 1 feedback activity | |
Sep 29 (M) | Day 08 Project 1, Day 3 | ||
Oct 01 (W) | Day 09 Functions | Group Worksheet: Functions | Project deadline #1 (Oct 2) |
Oct 06 (M) | Day 10 Containers (dictionaries and tuples) and solve_ivp() (our Ordinary Differential Equation solver) |
Group Worksheet: Electric field hockey 1 | |
Oct 08 (W) | Day 11 Advanced array techniques; while loops | Project deadline #2 (Oct 09) | |
Oct 13 (M) | Thanksgiving (university closed) | Group Worksheet: Advanced array techniques | |
Oct 15 (W) | Day 12 Project 2, Day 1 | Project assignment: Circular orbit with solve_ivp() Project deadline #3 (Oct 16) |
|
Oct 20 (M) | Day 13 Project 2, Day 2 | Project 2 feedback activity | |
Oct 22 (W) | Day 14 Project 2, Day 3 | Project deadline #4 (Oct 23) | |
Oct 27 (M) | Day 15 Monte-Carlo methods 1 | Group Worksheet: Monte-Carlo methods 1 | |
Oct 29 (W) | Day 16 Fitting | Group Worksheet: Fitting | Project deadline #5 (Oct 30) |
Nov 03 (M) | Day 17 Monte-Carlo methods 2; Project 3 is assigned | Group Worksheet: Monte-Carlo methods 2 | |
Nov 05 (W) | Day 18 Project 3, Day 1 | Project assignment: Reproduce multiplication factor historgrams Project deadline #6 (Nov 06) |
|
Nov 10-12 | Midterm break | ||
Nov 17 (M) | Day 19 Project 3, Day 2 | ||
Nov 19 (W) | Day 20 Project 3, Day 3 | Group Worksheet: File input and output | Project deadline #7 (Nov 20) |
Nov 24 (M) | Day 21 File input and output | ||
Nov 26 (W) | Day 22 Poster presentation preparation day | Project deadline #8 (Nov 27) | |
Dec 01 (M) | Day 23 Poster presentations, Day 1 | ||
Dec 03 (W) | Day 24 Poster presentations, Day 2 | Project deadline #9 (Dec 04) | |
Dec 10 (W) | Exam period | Project deadline #10 (Dec 10) | |
Dec 16 (T) | Exam period | Project deadline #11 (Dec 16) |
Please see the Project submission deadlines section below for further details
Your grade is based primarily on three projects. For each, you’ll receive an “editorial decision” such as Publish, Minor Revisions, or Major Revisions (see Project Assessment for details). Your final grade depends on the overall pattern of these decisions, with adjustments based on your Poster Presentation and Engagement Task completion. See Appendix 1 for more detailed grade breakdowns.
Final Grade | Minimum Requirement |
---|---|
A (85%) | 3× Publish (higher grades possible with Distinction) |
B (72%) | 3× Minor Revisions |
D (50%) | 3× Major Revisions |
F | Incomplete or missing project(s) |
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 |
Projects in this course involve using computational physics investigations to explore a question and clearly communicate your findings. Assessment is modeled after the academic publishing process. While we don’t use formal peer review, you’ll work through a series of steps to earn an “Accepted for Publication” editorial decision for each project.
Project Timeline (Recommended Workflow):
Editorial Decision Glossary:
Decision | Meaning |
---|---|
Publish | Fully meets criteria, no outstanding issues. |
Minor Revisions | Small issues are present that should be straight-forward to address. |
Major Revisions | Key issues require significant further work. Seek informal feedback before resubmitting to ensure they have been addressed appropriately. |
Incomplete | Off-track - feedback focuses ONLY on aspects of the project that were assessed as incomplete. Meet with ithe nstructor before revising. |
No Submission | Nothing submitted yet. |
Distinction Points:
In academic publishing, outstanding manuscripts are sometimes highlighted by editors for their originality, potential impact, or outstanding communication. Similarly, in this course, projects that go significantly beyond expectations can receive special recognition:
Distinction points are only considered for projects that have already earned a Publish decision. Each distinction point increases your course grade by 2.5%. More details on how distinction points will be awarded will be provided with the Project 1 guidelines.
Your poster presentation will receive an editorial decision based on three elements:
Further details will be provided when the Poster Presentation details are released.
The Engagement Tasks category includes activities we consider essential for your learning. Earn Engagement Task Points through on-time submissions.
You earn full credit in this category by earning 70% or more of the total possible engagement task points. This threshold allows flexibility—missing or submitting a few tasks late won’t prevent you from receiving the maximum credit. For grade penalties associated with earning less than 70%, see the Course Grades section.
An estimated breakdown of how engagement points are allocated is provided in Appendix 2.
Missing a class doesn’t mean falling behind. Here’s how to stay on track:
Rather than offering extensions, this course uses weekly project submission deadlines. At each deadline, you may submit one project (either a first submission or a revision). You’re free to choose which project to submit when, though we’ve included recommended deadlines below to help keep you on track.
If you miss a deadline, no problem—the next one will already be open, and you can submit there instead.
Oct 02 | Oct 09 | Oct 16 | Oct 23 | Oct 30 | Nov 06 | Nov 20 | Nov 27 | Dec 04 | Dec 10 | Dec 16 | |
---|---|---|---|---|---|---|---|---|---|---|---|
Submission Deadline | #1 | #2 | #3 | #4 | #5 | #6 | #7 | #8 | #9 | #10 | #11 |
Recommended Submission | Project 1 | Project 1 revision | Project 2 | Project 2 revision | Project 3 | Project 3 revision | Project 1 or 2 final revision | Project 3 final revision |
Grading turnaround: Graders are given one week after each deadline to return feedback. Plan accordingly—leave at least two weeks between your initial submission and your planned revision deadline.
Submission frequency: Most projects require 2–3 rounds to reach “Publish.” Expect to submit something at nearly every deadline to stay on pace.
HELPING YOU STAY ON TRACK - If you miss two consecutive submission deadlines, I’ll reach out to schedule a meeting. This is to help keep you on track. Last year, several students failed the course because they didn’t complete one or more projects to at least a Major Revisions level. I want to help you avoid that situation.
If require need academic concessions beyond the flexible course policies outlined above, please reach out to Joss directly. Concessions may be granted for situations involving:
Refer to the UBC Science Academic Concession page for full details. In some cases, documentation or advisor correspondence may be required for a concession to be approved.
The academic community is built on honesty, civility, and integrity. As a member of this community, you are expected to understand and follow UBC’s codes of conduct regarding academic integrity.
At its core, academic integrity means:
Violations—such as plagiarism or cheating—may result in serious consequences, including your work being permanently considered Not Submitted, or referral to the Dean’s office, where formal records are kept.
You can find full university policies on academic integrity in the UBC Academic Calendar.
All submitted or presented work should reflect your own understanding and demonstrate your significant intellectual contributions. This applies to code and written content, whether or not it was supported by Generative AI (GenAI) tools.
Using GenAI is acceptable when your engagement with it involves meaningful use of your skills and course knowledge. For example:
However, tasks in this course are not intended to be completed simply by searching for solutions or using one-line GenAI prompts. If you’re unsure whether your use of a tool meets expectations, ask the teaching team—it’s always better to check than risk an academic misconduct case.
This course encourages the responsible use of GenAI tools (e.g., ChatGPT, Claude, CoPilot, Gemini) as part of your computational toolkit.
We’ll practice prompt design, code evaluation, and debugging together. Unless otherwise stated, you must:
You don’t need to share exact prompts, but your attribution should reflect your process. For example:
“After modifying the Project 1 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.”
Attribution: It’s fine to use small snippets of code from peers or online sources if you credit them properly. For GenAI, larger sections of code are acceptable only if you’ve made significant intellectual contributions (as described above) and clearly explain how the tool supported your work.
Formal group work: Collaboration is encouraged! You should engage actively in group activities and ensure you understand all group-generated work. Ask questions, contribute, and learn together.
Individual work: Submitting a shared or copied version of a project, whether directly or slightly modified, is not acceptable. Individual submissions must represent your own work and understanding.
UBC provides resources to support student learning and to maintain healthy lifestyles but recognizes that sometimes crises arise and so there are additional resources to access including those for survivors of sexual violence. UBC values respect for the person and ideas of all members of the academic community. Harassment and discrimination are not tolerated nor is suppression of academic freedom. UBC provides appropriate accommodation for students with disabilities and for religious and cultural observances. UBC values academic honesty and students are expected to acknowledge the ideas generated by others and to uphold the highest academic standards in all of their actions. Details of the policies and how to access support are available: https://senate.ubc.ca/policies-resources-support-student-success
Your course grade will be based upon the editorial decisions you are able to achieve across all five categories. Up to six distinction points (2.5% bonus per distinction point) can be earned between the three projects, where Notable counts for one distinction point and Exemplary counts for two distinction points. The table below provides a complete picture of the MINIMUM criteria for each grade level.
Grade | Minimum Criteria |
---|---|
A-A+ (88-100%) | 3x Publish + 2.5% per distinction point. Overall grade rounded up. |
A (85%) | 3x Publish. |
A- (80%) | 2x Publish, 1x Minor Revisions |
B+ (76%) | 1x Publish, 2x Minor Revisions |
B (72%) | 3x Minor Revisions, or 2x Publish, 1x Major Revisions |
B- (68%) | 1x Publish, 1x Minor Revisions, 1x Major Revisions |
C+ (64%) | 2x Minor Revisions, 1x Major Revisions |
C (60%) | 1x Publish, 2x Major Revisions |
C- (55%) | 1x Minor Revisions, 2x Major Revisions |
D (50%) | 3x Major Revisions |
F (45%) | 1x Incomplete |
F (40%) | 2x Incomplete |
F (35%) | 3x Incomplete |
F (30%) | 1x No Submission |
F (25%) | |
F (20%) | 2x No Submission |
F (15%) | |
F (10%) | 3x No Submission, but full credit for Poster Presentation and Engagement Tasks |
The following table shows an estimate of the engagement points that will be available to be earned.
Item | 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 |