If you like the activities and want to integrate coding into you class, school, or district, we’re happy to share what has worked well for us and what hasn’t. Below, you’ll find a short description of each of the digital tools we use followed by advice on implementation at a range of scales.
The Tools We Use
Python
Python is a programing language commonly used in scientific research and data science. You may have heard of other languages, such as C++, Java, Fortran, or BASIC. Python tends to have fewer syntax rules and extra characters making it more human-readable that some of the alternatives. That means students often can infer what the code does just by looking at it.
Since we focus primarily on the science content, these activities don’t teach programming explicitly. If you or your students want to learn about loops, conditionals, functions, and other computer science fundamentals, there are high-quality free tutorials on the web. Check out Python.org, Khan Academy, DataCamp.com, and YouTube’s Programming with Mosh.
Jupyter
Jupyter is software that lets you write code and do useful things like open a data file, perform calculations, and create graphs. We use it like you would a spreadsheet program but instead of typing in cells, you type the instructions (the code) for analyzing and visualizing data. Researchers and computer scientists use it at places like CERN, NASA, IBM, Google, and Microsoft. Jupyter files are called notebooks so you may notice we use that term occasionally to describe our activities.
Jupyter runs is a browser window which makes it appear more familiar – and less scary – than the blank computer terminal you might be imagining. The notebooks display the code and what the code outputs (text, tables, graphs) all in the same window and can include formatted text (bold, italics, font sizes), hyperlinks, and images so the activities can look more like instructional materials students usually interact with.
The easiest was to run our activities is through an online interactive service like Google’s Colaboratory, described below. If you’d prefer to install Jupyter on your computer to run programs ‘locally’, download and install Anaconda. It contains Jupyter, Python, and all the other behind-the-scenes stuff your computer will need. You can download our activities and data at project GitHub by viewing a file, then right-click on “raw”.
Colab & Azure
You can install Jupyter locally on your device, but for K12 schools getting software installed can be anywhere from tough to impossible. Google Colaboratory, or Colab, has revolutionized how we use Jupyter notebooks with students and in teacher professional development. The only downside is it requires a Google account. If your school uses Google Classroom, that’s not a big deal. Running a notebook on Colab is great for older computers since it doesn’t use your processor for the heavy lifting. Like a Google Doc/Sheet/Slide, you can save it to your Drive and share it with others, but it doesn’t supoprt multiple users editing simultaneously. If you’d rather use a Microsoft product, Azure lets you run and save our notebooks in the cloud using your Microsoft or Outlook365 account. We haven’t used this service much (as of May 2020), but I’ll update here after using it in some workshops this summer.
We started this project on a dedicated JupyterHub server, then moved to using Binder. We moved to Colab as our project scaled, but big big thanks to the Binder team. This would not have gotten off the ground without them.
GitHub
GitHub is cloud storage, team collaboration, and version tracking all in one. Professional programmers and organizations use it to host their code and keep track of who made which edit when. We use it to host our notebooks and the data files they analyze. Colab has a great feature that allows us to create a URL that opens a notebook on GitHub in your own Colab window. The buttons on the home page do just that. As of May 2020, Azure doesn’t support linking to individual notebooks, but you can copy the entire project (all notebooks and data) to your Azure account and run them.
Advice on Implementation
Use our activities as-is, edit and adapt them for your students, or let us work with your team. We can help you develop an implementation plan that suits your organization’s needs and resources. We have a strong record of offering high-quality professional development and district-level strategic planning on coding, physical science content, reformed pedagogy, and digital literacy. Schedule a consultation at adamlamee@gmail.com.
Aim for reaching most students
- A dedicated computer science course may not be the answer, particularly for students whose schedules are already full with remedial courses or electives. Kids who ride the bus or don’t have other transportation can miss out on after-school clubs, too.
- Embedding coding into required core subject area courses increases equity and access, regardless of a student’s background or family income. That’s why our activities are aimed at content area teachers. It’s mostly science at this point, but you can send suggestions or contribute an activity you wrote by emailing adamlamee@gmail.com.
Get them on your side
Data and testimonials can help get students, parents, teachers, and administrators to join the cause. Here are some we’ve found useful:
- What Most Schools Don’t Teach video from CODE.org with lots of celebs encouraging more coding in K12
- Pair Programming how-to video from CODE.org
- Ten quick tips for teaching programming from PLOS
- AAPT Recommendations for Computational Physics in the Undergraduate Physics Curriculum
- Salaries and backgrounds of computer programmers in Central Florida, courtesy of Orlando Devs
Training is key
- Learning the tools plus learning how coding enriches your current course takes time. It’s not like learning a new gradebook program.
- Don’t worry about debugging code or deciphering error messages. Do train teachers until they’re confident in their ability to guide a struggling student through the process of undoing an edit, restarting the runtime (or kernel), and reloading a clean copy of the notebook.
- The NSTA’s Position Statement on Professional Development is a great resource for planning a workshop.
Make it your own
- Our activities don’t have much extra formatting or explanatory text. If you prefer your students to have more detailed instructions, they’re easy to edit for a different presentation, sequence, question type, etc.
- Seeing what Seminole County and Orange County created for their students may give you some ideas.
- Our activities are licensed CC-BY-SA which means they’re free to use and modify as long as you give credit. See the about page for license text. Drop us a line to adamlamee@gmail.com, too. We love hearing how teachers are adapting them.
Feed your high flyers
Our activities allow for interested students doing more analysis than what’s in the directions and we’re often amazed at what they come up with. If that’s not enough, try suggesting these other free (and amazing) resources:
- CERN Open Data includes educational resources on particle physics and offers students (and the general public) the opportunity to access and analyze authentic data for the Large Hardon Collider. Yeah, it’s pretty cool.
- Particle Physics Playground, by Matt Bellis, provides Jupyter notebook exercises with particle detector data from CMS and CLEO.
- Shawn Weatherford’s work on vPython and Glowscript.
- Let’s Code Physics YouTube channel
- STEM Coding
- Dimitrios Theodorakis’s high school Astronomy activities