# Rotational Dynamics Are Difficult to Learn… and to Teach

One of the most difficult units for AP Physics students is rotational mechanics. It can also be one of the hardest to teach. With that said, I really like rotational mechanics, but I want my students to enjoy it more. I want them not be be bogged down in some of the more difficult theoretical aspects of the rotational motion. There are several reasons for this topic being challenging I think – the use of the polar coordinate system, the introduction to the concept of a distribution of mass as opposed to just thinking about objects as point particles, the cross product of vectors producing a result pointing in the Z axis…yikes, it can get pretty heavy.

As a teacher, it is also tricky to come up with good investigations that allow students the opportunity to explore rotational dynamics. They do exist, and some are really good, but I also think that many don’t exactly build a strong link between the conceptual and mathematical models. Rolling a ring and a disk and sphere down a ramp can be a great demonstration that things that roll certainly do not behave like blocks or carts moving down a ramp, but its hard for the students to explore further – to build a predictive model that is mathematically precise. The normal way of things is to jump into the math and reveal the underlying mechanics through fairly complex derivations.

# Simulating The Angular Momentum Principle

This year I decided to turn to a computational approach. I wanted the students to computationally experiment and discover the fundamentals of rotational mechanics. In order to do this, we started from the Angular Momentum Principle. This is the approach used in the wonderful textbook Matter and Interactions:

Στ ·Δt = I·Δω

The idea here is simply that a torque acting on an object (that is free to rotate around a pivot point) for a specified amount of time is going to cause an object to experience a change in its rate of spinning – called its rotational velocity.

# Simulating A Physical Pendulum

Having the students start with this principle, they could learn some interesting mechanics of rotating bodies by building a simulation of a physical pendulum. A simple pendulum is “simple” in that it represents a single point mass hanging on a massless string. A physical pendulum has physical dimension, and so the body has to be modeled as having a distribution of mass. This gets really tricky to analytically model – especially the time dependent functions describing its motion.

But with a computational approach students could easily apply the momentum principle frame by frame. The students in my class were able to create a simulation of a physical pendulum in just over one class period. The pendulum that they modeled was a bar with weights at either end. The weights had different masses so that the bar would swing.

https://tychos.org/scenarios/250

The students set about building their simulations in Tychos – a web based simulation builder. As the students coded the simulation, they were continuously engaged in discussions about the mechanics of the code and the mechanics of nature. I asked the students to change the masses, or change the length of the bar, or the mass of the bar. They would run their simulations and discover that something didn’t quite match what they thought should happen. Students would then look for errors in the code, or they would question their own assumptions about the physics involved.

When they finished their simulations, and they were confident that their simulations were working, I had the students then use the simulation to investigate the energy of the rotating system. After some discussions about the transference of energy from the gravitational field to the kinetic energy (rotational) of the bar and the weights, the students discovered that their simulations also seemed to model the conservation of energy.

We didn’t stop there though. We had to see if the simulation did indeed match reality. This is called deployment in the modeling pedagogy. Using a meter stick, some disks that I had made for an earlier investigation, and a Vernier rotational sensor, I constructed a real physical pendulum.

To test the simulation, students were asked to identify all the inputs that would need to be measured and then entered them into their simulations. The students then used the conservation of energy to calculate rotational speed of the bar when the bar was released from an angle of 60 degrees – with the heavier weight above the lighter weight.

The students calculated a final rotational velocity of 2.8 radians/second. We then ran our test and graphed the angle of the bar as well as the rotational velocity of the bar (see graphs below). They measured a rotational max velocity of about 2.6 radians/second. The students were pretty satisfied with this result.

angular velocity of the bar

angular position of the bar

I then had the students graph the results of their simulations, and it was quite satisfying to see that the simulations and the sensor readings were matching really well.

graphs produced in Tychos

This led to some more interesting discussions around simulating axel friction and air resistance. We also discussed the shapes of the graphs and what might be going on with their mathematical structure. This was far more interesting than just having them read out of a textbook and then solve some problems on paper, and my guess is that the students gained an understanding of the physical mechanics by having to debug their own simulated mechanics. They were able to investigate errors in their own code, but by doing so, see how the position of the weights, and the masses and the angle changed the behavior of the simulation and the motion graphs. I think the students also really enjoyed this approach, and based on how they were talking about their simulations and the experiment, they demonstrated to me that they had grasped a deeper understanding of rotational mechanics.

# Simulating Circular Motion: An Inquiry Approach

This semester I have been very busy working on a new approach to teaching Physics. This has actually been part of an effort that has spanned more than three years, but this year I have really embraced this change and I have much to share.

This post is a preview of many to come. I am going to write several posts documenting my efforts and experiences throughout the school year. Hopefully these posts will help me capture what I have learned in the process, and perhaps will be a guide for anyone else who might be interested.

## Analytical Models Emerge From Computational Models

With the help and insights of others, I have been mapping out a new scope and sequence for teaching Physics that incorporates computational modeling as the primary method of modeling Physics. Rather than looking at computational modeling as an “add on”, I have been exploring the idea that analytical models are emergent. Computational models are more fundamental and analytical models emerge from those computational models.

The basic approach here has been to start with computational modeling, and then to allow the students to discover the analytical models that are revealed. This has been an exciting “unveiling” of physical patterns for the students. The other thing that I have witnessed is that students seem to intuit the principles of Calculus, even though my students are not at that level in mathematics training. More on this in a future post.

In future posts, I will report out on how this has been going and what I have learned in the process. For now, I simply want to share an example.

## The Inquiry Lessons: Discovering Centripetal Acceleration

One of the aspects of this project has been to re-invent many of my lessons. I have been creating inquiry based lessons based on an approach known as POGIL. I am not POGIL trained, so I wouldn’t say my activities are actual POGIL activities – they are POGIL “inspired”.

In the first lesson, students learned how to simulate an object moving in a circular path. I have attempted to incorporate an inquiry approach where students are guided using questions, as opposed to holding their hands. This approach can be messy, but I have found it has always lead to great conversations, unanticipated insights from the students and it gives the students a sense of discovery.

I have included a link to the lesson which you are free to copy, modify, etc. without any restrictions.

Lesson 1: Simulating Spinning Motion

Keep in mind that my students had already learned how to code movement, so if you are new to computational modeling, I will soon be writing some posts that introduce students to this approach and to computational modeling in general.

In the second lesson, students simulated circular motion using angular quantities. They then explored how they could represent the tangential velocity and then they explored what the acceleration was. This led them to discover that the simulation revealed that the acceleration vector pointed to the center of the circle. Through some guided inquiry, they discovered a number of interesting details, such as the acceleration increased when the radius declined, and that the tangential speed had a significant affect on the acceleration.

Here is a link to the lesson:

Lesson 2: Circular Motion

I do use a tool, that I am actually partly developing with some friends as the simulation software, called Tychos, but you can modify the lesson to use any coding platform you like (of course I like Tychos, but I am a bit biased!)

Please feel free to comment here to give me feedback on the lessons if you feel inclined. I am certainly on a learning path myself, and I am sure there are many improvements that could be made!

Steve.

# Helping Students Create Their Own Mini Universes

For the past year, I have been helping a small software development team, headed up by my friend Winston Wolff, in the creation of a web based physics simulation tool. In this blog post, I am going to describe:

• Why we started this effort,
• What we hope to achieve,
• How far we have currently progressed towards our goals,
• And invite you to try it out.

Many Physics teachers use computer simulations as a tool to help students learn physics. With a click of the mouse and a few keystrokes, students can quickly change the inputs to the simulation, producing different simulated behaviors of the system. This allows for quick exploration of the relationship between certain “physical” inputs and the governing dynamics of the system. Often, these explorations would be impossible to set up in the lab, or might take significant time and effort.

A great PHET simulation of projectile motion

## …But They Have Limitations.

Although these tools can be used with a high degree of success in the classroom, the students are interacting with a virtual universe created by another human. The rules of behavior and the underlying quantitative relationships have been defined by someone else who has already done the difficult work to model the physical universe. These relationships can be inferred and they can be explored by the student, but ultimately, they are hidden behind an impenetrable wall of software code. There is also a certain faith that the student must have in the simulation – there must exist an acceptance that the simulation creators did their job correctly.

## Students Coding Their Own Simulations is Awesome…

Some highly regarded physics educators have introduced the practice of teaching computer programming in the physics classroom. The advantage of engaging students directly in the construction of simulations, according to Ruth Chabay and Bruce Sherwood

is that there are no “black boxes”: students write all of the computational statements to model the physical system and to visualize the abstract quantities.”

Additionally, they argue that having students gain some experience and exposure to computational modeling

in the form of programming, even at the introductory level, can be an important component of a general education for living in today’s world.

Giving students the opportunity to write their own simulations gives them the ability to engage in computational physics directly and to give them vital experience in one of the aspects of being a scientist – namely writing some code.

## … But There Are Challenges For Teaching Coding.

Although there are great reasons for integrating computer science with Physics, and therefore developing students’ understanding and experience with computational Physics, there are some significant challenges for the teacher.

Teaching students to code their own physics simulations is not trivial. It requires significant instructional time, even given the fact that there are some amazing tools and frameworks for graphics programming (VPython, Processing). Chabay warns that time spent on teaching computer science principles and practices needs to be assessed against the time lost teaching and learning physics.

Due to the complexity and in many cases, the lack of exposure to computer science and “coding”, students can become lost in the syntax and specific computer science discourse, thus leading to confusion about the actual physics principles.

# A Hybrid Solution Is Needed: Tychos

Tychos (tychos.org) attempts to address the strengths presented by simulations and combine it with the value of computational modeling. It is a simulation tool that has been built to address the lack of transparency inherent in pre-constructed simulations while also simplifying and accelerating the acquisition of the skills needed to “code” the underlying physics.

We have never seen Tychos as a replacement for laboratory experiments. Quite the opposite, we see this as a way to enhance the laboratory experience. It gives students the ability to quickly define a hypothesis in code for anticipated behavior of a real experiment. Students can then run the real experiment and see if the simulation behavior that they defined matches or does not match the behavior defined by nature.

## No Black Boxes

The rules of the simulation are created and coded by the student. At its base, Tychos is really just a “drawing” and computational tool. There are no “virtual physics” built into the environment. Those rules must be defined and implemented by the student.

For example, if a student wants to simulate a particle moving in space with a constant velocity, they simply need to define the particle by using one of the few built in functions to place the particle at a position, set its visible size, and then optionally display with a given color, in this case the color red:

```p = Particle([0,0], 10, "red")
```

The “particle” is really just a graphic “dot” that appears on the screen. The simulator has no concept of movement, or mass, or energy, etc. The student must build in those rules. So for example, the student defines a numerical matrix to represent the particle’s velocity:

```p = Particle([0,0], 10, "red")
p.vel = [10, 0]
```

Then the student can use that variable to define how the particle will move in time. This is done by utilizing one of the few built in physical variables in the simulation software – “dt” which represents delta time:

```p = Particle([0,0], 10, "red")
p.vel = [10, 0]
p.pos = p.pos + p.vel*dt
```

With these three lines of code, a student can simulate a particle moving in space with a constant velocity. The student makes that happen and therefore the mechanics of the behavior are not hidden but rather fully exposed for the student to define.

## Built In Physics Analytical Tools

We have tried to create an environment where students have access to a suite of analytical tools that either do not require any coding, or very little.

### Visual Representations

As we develop Tychos, we are constantly looking at how we can make the tool easier to use for students. A few features that we have included are important visual representations that are commonly used to help represent motion. For example, we have made it very simple for students to see motion maps of their particles by simply clicking a button. We have also made it very easy to display vector arrows for any vector quantity, and to attach those vectors to a given particle:

This allows students to quickly assess the behavior of the simulation without needing to spend time learning how to implement complex tools.

We have also tried to remove any coding that isn’t specifically targeted at modeling physics. For example, Tychos has a simple set of simulation parameters that can be changed with a few simple controls:

The above panel shows that a student can change the frame rate, the motion map strobe rate, set a simulation stop time, and change the extents of the viewing window – all without writing a line of code.

Coding of the GUI, rendering graphics, running the animation, etc are taken care of so there is less to program. The programs are much shorter and the code is more focused on the physics concepts, e.g calculating how force and momentum affect the position of a particle. There is no “boiler plate” code that needs to be used to get started which we have found to be cumbersome and confusing for students. Students spend less time learning programming and more time learning physics.

### Graphing

One of the great features that we are excited about and that I have found incredibly useful in class is the built in graphing tools in Tychos. With two simple lines of code, a student can graph any variables on a simple to read graph.

This allows for the student to graph the position, velocity,  and acceleration of a particle as a function of time (called motion graphs) but they can also graph energy, momentum, force, or any virtual quantity defined in the simulation code.

In the following example, the student has defined the kinetic energy of a particle and then has defined and displayed a graph for how the energy is changing with respect to time:

```KEgraph = Graph("KE vs Time")
KE = 0.5*p.mass*p.vel*p.vel
KEgraph.plot(t, KE)
```

The graph then looks like this:

This graph appears just under the simulation window, and the student can then easily connect the behavior of the simulated particle to the behavior of the graph.

## Integrated Formative Assessment:

Tychos has been built around the concept of a learning system. From the ground up, we have built in features that are designed to engage the student in the learning process. Tychos includes fast feedback in the form of instructor defined goals which are checked by the system such as “Your simulation should calculate position of particle at time 3 seconds.”

These goals keep students on track and allows for students to self assess. We have also noticed how these goals make the learning exciting. Students have expressed how much they enjoy watching the goals turn green as they accomplish them.

Teachers can also use the Goals as a quick and easy way to assess the learning progress of the entire class, and then focus on individuals that are having trouble. The teacher has the ability to peer into the individual student’s work and we are even building into the application the ability to see a “code history” of each student so that the teacher can track down the origin of a learning challenge and then direct the student to a specific solution.

We think we are off to a great start with this app, but we also realize that there are a number of great potential features that we hope to add. This is a rough outline of our future goals:

### Tracking Student Progress

Soon the tool will show each student’s progress in realtime to the instructor so the instructor can maximize their time helping the students who need it. The tool will also allow instructors to see the work each student does, e.g. each attempt the student has made, the difference from the last attempt, and its outcome to help the instructor quickly deduce where the student’s thinking is and what is blocking her. Additionally, the instructor will be able to automatically export assessment data based on instructor’s defined criteria.

### Custom Defined Classes

We want to give the students the ability to define reusable components so that we can further reduce the amount of code that is needed to create a simulation. We are working on some strategies to build that into Tychos.

### Data Export/Import

To extend the connection between Tychos experiments and in class laboratory experiments, we intend to add the ability to export and import data to and from other data collection software like Logger Pro. This will allow more precise comparisons between simulated behavior and measured behavior from motion detectors or force sensors.

## Looking For Feedback

We are continuously looking for ways to improve our application, and we have no shortage of ideas. Our next challenge is finding the time and resources to make those future enhancements possible, but we are eager to have other Physics teachers try this tool out and let us know what else we should do to make this a better learning and teaching experience.

If you are interested in trying this application out, please visit our website: tychos.org. If you would like to give us feedback, or have questions, please feel free to post a comment on this blog post or contact me (stemple@srcs.org) or Winston (winston@nitidbit.com). We would love to hear from you!

# Robotics – The Synthesis Project

The final project of the two year academy program requires that the students design, fabricate, program and test an autonomous robot. We have been doing this project since the inception of the program, but this year we have made some significant improvements on the project. In this post I will explain the project, and highlight those improvements.

This project is an extremely challenging task that requires successfully completing several “sub-projects”. We tell the students at the beginning of the school year, that this project is more difficult than any of the other projects – by a long shot!

## “If you haven’t done everything, then you haven’t done a thing.” – Red Whittaker

We completely changed our robot competition parameters this year. In previous years we had the students design sumo wrestling battle bots. Although this was a fun project, we started to notice that some robots performed really well without really having to “think”. These robots generally lumbered around the ring, sometimes without even actually “seeing” their opponents. Through pure luck they just managed to push their lighter opponents out of the ring. We decided that we needed to change the project in order to force teams to be smarter and we also wanted to get away from a robot competition that seemed to focus on aggressive battle.

Ironically, I suppose, our robot project changes were inspired by the classic Nova film that documented the DARPA challenge known as the Great Robot Race. In this race, the autonomous vehicles raced through the Mohave dessert on a course that was revealed to the competitors only hours before the beginning of the race.

Bob set about building an impressive “maze” for the robots to navigate. The robots had to make their way through a series of 90 degree turns defined by a series of connecting corridors with vertical walls about 20 cm tall. The robots were then given two attempts to make it through the course as fast as they could.

## The Brains and Braun

When we first started this project about twelve years ago, we first used a Java based board that we liked, but it was really expensive and we didn’t really need much of the hardware and software features that it offered. About eight years ago, the Arduino board was taking the Maker community by storm and we decided to hop on the Arduino bandwagon, and we have been very happy ever since. The simplicity, online community, the plethora of code examples and tutorials as well as the price have been key points in why we have decided to keep using the Arduino. This year we decided to incorporate DC motors from Sparkfun and Adafruit’s motor shield. The combination allowed the students more flexibility regarding drive train design, and also allowed for some interesting discussions around the advantages and disadvantages of servos vs dc motors. Our only complaint with the shield would be that it would be nice to have the headers pre soldered!

## Designing The Circuitry

One of the major additions to the project was to require that students design and fabricate the circuitry for their robots. We did this by introducing two new skills to the project. Students had to learn how to use a printed circuit board (PCB) design software known as Fritzing, and then they had to learn how to fabricate their PCB boards using a CNC mill.

There are a number of amazing PCB design tools out there – and many are free! They all have their strengths and weaknesses. Here is what we found out as we did our research to find the right tool.

Autodesk’s Circuits is great because its web based, super easy to use and has an amazing feature where you can actually simulate the circuit. You can add a virtual voltmeter of ammeter to your virtual circuit and then with a push of a button, you can get virtual readings on the meters. I found this tool to be amazing for teaching circuitry and I allowed the students to use it as a “key” for their worksheets. It also has the ability to simulate an Arduino too! You can add an Arduino to your project, connect up LED’s, servos, etc. and actually see them light up or rotate as you change the code. It is a bit limited in that it doesn’t support most added libraries, but it is still amazing. We eventually decided not to use it for PCB design because it is unfortunately a bit clunky and doesn’t allow for much customization of the board.

Eagle is of course one of the most advanced and feature rich PCB design tools out there. It is also very complicated. IT of course offers the largest toolset, complete control of the design process and the free version is as close to a professional tool as one could hope for. The problem is that all these features come at a price – complexity. If we had an entire year to spend on this project, I might have decided to go with this tool, but we needed something that the students could learn quickly and weren’t going to get frustrated with…

Fritzing is a free, open source “beta” software that is very similar in look and feel to Autodesk’s Circuits – in fact I think Autodesk’s product must have been inspired by Fritzing? Although Fritzing lacks the amazing simulation tools that Autodesk Circuits has, it does offer a much better PCB design environment. The options that are available for editing the component foot prints, the PCB attributes, etc. make it really nice to work without making the tool too complex. This is the tool we decided to teach and use in class, and the students liked it.

## Fabricating The Circuitry

Back in the fall we decided to invest in a small CNC mill produced by a local company out of San Francisco named Other Machine Co. This machine, called the OtherMill has been an amazing addition to the lab. With this machine, we have been able to teach the students how to fabricate their own PCB’s. The OtherMill is not just for PCB fabrication, in fact we have used it to mill small aluminum parts as well.

This micro CNC desktop mill is super easy to setup, really easy to use and plays really nicely with Fusion 360 – our 3D CAD and CAM software. I was incredibly surprised and pleased by how easy it is to learn the operating software – known as OtherPlan. The company has a great support website full of great tutorials, and we were able to teach all the students how to use the machine in just a few days.

The PCB files generated by Fritzing (we exported them as Gerber files) worked flawlessly with the OtherMill, and within a very short period of time, all the students had designed and fabricated single sided PCB boards for their robots.

## The Final Results

As with any major changes to a project, there are lessons to be learned. We realized that the task was rather complicated and many of the students did not make it as far through the course as they had hoped. It was clear however that this competition proved more interesting from the perspective of getting students to see the importance of software design. Not only did we see very different software strategies, but the variance in hardware design was surprising. They really had to think about how the hardware and software had to work together, and they had to think about optimization. This was a clear advantage of this competition over the previous year’s competitions. Students spent far more time trying to figure out how they were going to shave time off their attempts, and how they were going to adjust software and hardware to better navigate the course. From our perspective, the changes to the project proved to be fantastic, and we are looking forward to improving on the project design for this year. Some of the things that we are going to do this year is introduce some different sensors for the students (like “feelers”) and also give them a price list and budget so that they have more hardware choices.

# Our Goal – Make A Better Bridge Crusher!

This year Bob and I decided to upgrade our bridge project. We wanted to create an improved device for measuring the load on the model bridges created by the students. Specifically, we wanted to design a way for the students to collect meaningful performance data.

The problem with our old method (filling a bucket with sand until the bridge catastrophically failed) was that it didn’t allow for the students to collect evidence about where and why the bridge failed. In many cases, the bridge actually experienced a significant failure, but because the bridge collapsed around the loading plate, the loading plate actually acted as a support for the bridge.

We had seen other “bridge testers” from vendors (http://www.pitsco.com/Structures_Testing_Instrumenthttp://kelvin.com/kelvin-bridge-material-tester-w-cpad/http://www.vernier.com/products/sensors/vsmt/) but we had the idea that perhaps we could create one that might be better, or at least it might be fun to try. In this post, we are going to share with you what we created and why we think it actually turned out really well, but we also point out some room for improvement.

## The Frame

The frame of the entire device is really based on the Vernier Structures and Materials Tester. We thought this frame was probably the best, and we wanted to make our tester from extruded aluminum tubing as well. We went about designing the bridge tester in our favorite CAD program, Fusion360 by Autodesk. We sent our CAD file to the company 8020 and they precut all our t-slotted aluminum frame members to size. This was awesome because it made assembly super easy and it saved us on shipping too! Our experience with this company was amazing – they were super helpful and even gave us some really helpful advice. If you are thinking about making anything requiring t-slotted aluminum, definitely order from them.

We wanted a a bridge tester that actually gave us data that allowed us to figure out how and why the student bridges failed. That meant that we needed more data and we needed data that could be connected to the design and fabrication of the bridge. We noticed that all the vendors’ designs had only one load sensor, and some also had a way to detect overall deflection. We suspected that we could get better data if we had four independent load sensors – one for each abutment where the bridges were supported. The four sensors would (theoretically) give the students a way to analyze how the load was being distributed, and thus tell us something about the torsional behavior of the bridge.

I set out to learn a bit about load sensors and I came across a fantastic tutorial at Sparkfun (https://learn.sparkfun.com/tutorials/getting-started-with-load-cells). We ordered four load sensors (see picture above) from Sparkfun. Our design (shown below) has the four load sensors  fitted with 3D printed “shoes” as the bridge abutments.

The sensors are mounted on custom fabricated aluminum plates that can be moved laterally to accommodate slightly different bridge widths. The load sensors had to be connected to load amplifiers that were then connected to an Arduino (more on that below). The load sensors were mounted to the frame of the bridge tester on custom laser cut plates:

The load amplifiers have to be used with the load sensors in order to amplify the signal so that the Arduino can read the data correctly.

Bob designed and fabricated the loading mechanism that was based on many of the designs we had seen online. It consists of a block that is free to move vertically up or down a threaded rod which is then connected to a spoked wheel.

When the wheel is turned, the block moves up or down the threaded rod. This bar is connected to a loading plate via a metal cable that hooks into the loading plate and the block:

## Collecting The Data: The Software

The software responsible for collecting the data is made up of two programs – one that runs on the Arduino micro-controller that is connected to the load sensors, and the other is a Processing sketch that runs on a computer/laptop connected to the Arduino via USB. The code is pretty simple, and it was mostly written using code from other sources and then modified for our specific purposes.

The Arduino code just collects the data from the four load sensors and then sends the data serially as a comma delimited package. The Processing code reads the serial port and then essentially dumps the data into a csv file. It does have some flourishes like a graphical display of the individual sensor loads as well as a display of the total load and whether or not the bridge has met the minimum load requirement set in the project descriptor.

## The Performance Report

When the data is displayed in a graphing program, it looks like this:

Sample bridge data

You can see that the four sensors do not read equal values, and that the bridge begins distributing the load unevenly. The blue and orange lines show that these two load sensors were equally loading and were taking on a larger load than the green and red values from the other two load sensors. Later inspection of the bridge showed that this bridge failed at the load sensors that were recording a higher load value. Also, these sensors were located diagonally from one another, and once again showed that the bridge was being twisted.

You can also see that around 80 seconds (the 800 data sample) that the bridge experienced a sudden decrease in load – this was the point of failure. The data clearly shows a point at which the bridge failed and thus gives us a clear metric for performance.

The student teams were each given the results and were asked to answer these questions:

1. What was the maximum load that your bridge sustained before failure?
3. What were the individual maximum force values on each load sensor before failure?
4. Identify on your bridge where the bridge failed. Take a picture of this point of failure and note its location.
5. Based on the load data for the four sensors, describe why your bridge may have failed.
6. What could you have done to increase the performance of your bridge?

The data really allowed for some rich analysis and the students were able to make some really informed critiques of their design and fabrication quality. We have been very happy with the results!

## Future Improvements

For version 2.0 we hope to add these improvements:

• Add the ability to measure deflection. We think that this might be done by measuring the angular displacement of the loading wheel, but we aren’t sure just yet.
• Some way for the software to detect a failure – perhaps a way to detect a significant decrease in the load data. It would have to allow for some downward movement of the load data because there is some settling and deforming that can occur that might not be catastrophic.
• It would be nice to clean up the code – especially the Processing code. I’d like to add some fancy GUI elements too so that it is a bit more attractive.

If you would like to build your own advanced bridge tester for your classroom, we can send you all our CAD files, software files and even answer questions. Its not easy to build, but its fun, and we spent about \$350 dollars on this project as opposed to the \$1000 to \$1300 that the vendors are selling theirs for.

# SRHS Girls Who Code

## Discovering The Crisis in Computer Science

Last week, a group of 16 girls, myself and one other instructor were invited to attend the showing of the documentary film CODE: Debugging The Gender Gap. This excursion was hosted by the Mill Valley Film Festival and included a post showing discussion with the filmmaker Robin Hauser Reynolds. We traveled to the Lark Theater with another group from our neighboring high school Terra Linda. Our group represented all the currently enrolled girls in STEM courses that offer some exposure to the field of Computer Science. The Terra Linda group was composed of both boys and girls who participate in an after school “coding” club, but none of these students are actually enrolled in a course that offers them academic credit in computer science because no such course is offered at Terra Linda.

Once we arrived, we sat back and watched an inspirational, sometimes shocking, movie about the state of Computer Science education and the lack of opportunities afforded young women in this ever important career field. Although there are many companies and academic institutions that are attempting to address these issues, the United States still lags behind many countries and the numbers, especially for girls and under represented populations, are still appalling.

## The Numbers Are Bad For Everyone

For example, according to the movie (and some quick research I conducted), only 10% of all American high schools actually offer any courses in Computer Science, and only 5% offer the AP Computer Science exam. One would think that the numbers in California must be better than the national average because, after all, we are the center of the technology boom, right? Well, according to the numbers presented by ECS and the College Board, California isn’t doing very well either: “In California, less than 1 percent of all advanced placement exams taken in 2011 were in computer science”. The shocking thing about this statistic is that since 2011, there has actually been a decline in the number of students taking Computer Science courses in high school.

## They Are Worse For Girls (and Abysmal For Students Of Color)

To make matters worse, the numbers of girls who took the AP Computer science test made up only 21% of the the original 1% of AP test takers. That’s .21% of all students taking AP tests. Of the over 320,000 AP tests taken in 2011, about 3100 were AP Computer Science, and only 650 were girls. That’s really bad, but consider that in 2011, of the 3100 AP Computer Science test takers, 29 were African American.

## The Numbers In Marin Are Bad Too

The numbers of students being exposed to Computer Science in the San Rafael School District is somewhat typical of the national trend, but it does seem a bit strange considering our proximity to Silicon Valley. We have tech firms all around us, but so little of that energy and intellectual power seems to be trickling into the public school system.  Oddly enough, its not just a problem in the public school system. Many of the prestigious private schools in Marin don’t offer robust Computer Science programs either.

Terra Linda doesn’t have a single Computer Science course, and San Rafael just added one two years ago which is strictly an introductory course to the field. Neither high school offers an AP Computer Science course. The middle schools in our district are starting to offer some exposure to coding, but still are lagging far behind where they need to be.

## Some Possible Reasons

There are some reasons for this that are systemic and institutional. For so many years, No Child Left Behind emphasized Math and English to the detriment of almost every other content area. Students were enrolled in double Math and double English classes in order to get their scores up on state wide tests, and enrollment in other classes like CTE and Art declined. Another problem is teacher certification. In the state of California, the AP Computer Science class is considered a Math class, so only teachers certificated to teach Math can actually teach this course. There has been a push to change this, through a supplementary authorization, but currently in the state, even if you have a degree in Computer Science, you can’t teach the course unless you have a credential in Math. The other problem is more philosophical. I am not sure if we should be seeing Computer Science as its own separate endeavor, but rather should be seeking to integrate CS into Math and Science and Econ. curriculum.

The other problem is actually due, ironically, to how financially successful a person can be if they possess a Computer Science degree (or other technical degree). Its hard for school districts to attract a teacher with these skills when they can get a job working in the tech industry that now typically have starting salaries in the six figure range.

## What’s Next – SRHS GirlsWhoCode

After getting off the bus, the girls were clearly affected. And I wanted them to consider doing something about it, but I wanted them to take charge. I knew their ideas would be better than mine, and so the girls got together for a post viewing meeting and discussed what they wanted to do at our school to address this problem. The other instructor and I left them alone, and they proceeded to come up with a plan. They captured their ideas and now they are set to meet with the school’s counseling staff. These girls are an amazing group of highly motivated and talented people and I have no doubt that they are going to come up with a great plan. I’ll be updating this post as soon as an official plan takes shape. I look forward to helping them debug this problem.

# From Lines To Angles, and Particles To Rigid Bodies

We dove straight into circular motion with the 2nd year students this past week. The primary focus of last year was linear dynamics and although we did study objects that moved along curved paths (projectiles), we were still looking at two-dimensional motion as being composed of two component motions along straight lines.

In the second year program, a good part of the first semester is dedicated to looking at objects that rotate around a central axis. There are two major shifts that will be introduced. The first is the introduction of an entirely new coordinate system – polar coordinates. The students spent most of last year learning about two dimensional vectors in Euclidean space, but this year, we will see that for objects traveling in various curved paths, a polar coordinate space can actually be much easier work with. The other shift will introduce students to collections of particles composed into continuous rigid bodies. This requires some significant changes in how the students view an object’s orientation in space and how an object’s mass is distributed. No longer can we assume that the object’s mass is located at a single point in space. In both cases, we are adding to the complexity of our conception of the universe by adding new representations of both space and the objects that inhabit that space.

## Observing Circular Motion

In the modeling pedagogy, a new concept or collection of concepts is introduced using a paradigm lab. These labs are meant to introduce students to a new phenomenon and to be the launching off point of the actual building of a conceptual model.

Using the video analysis and vector visualization tools of LoggerPro, I had the students track the motion of a Styrofoam “puck” that was placed on our air hockey table (yes, we actually have an air hockey table that was donated to the school!) but was also attached to a thin thread to a fixed point on the table. The students used the video to track the motion of the puck as it essentially traveled in a circular path.

Although the lab is a bit tricky to set up, the ability to not only track the position of the object in two dimensions, but also the ability to attach velocity and acceleration vectors to the object is really helpful in engaging students in a great conversation around why the acceleration vector points to the inside of the circle. It also allows us to discover a whole new set of mathematical functions for describing motion. After tracking the position of the puck, we are ready for a class white board discussion.

## The Graph Matching Mistake Game

I ask the students to draw the motion map of the puck’s motion in two dimensions including the velocity and acceleration vectors. I then ask them to include the graphs created by LoggerPro. LoggerPro produces a really interesting position vs. time graph in both the x and y dimensions. At this point the class knows the drill, and they use the mathematical function matching tool in LoggerPro to match the graph. I ask the students to include on their whiteboards the function that they think best fits the plotted data. This is where it gets really interesting.

Notice in the above photo that the students used a polynomial function. I then ask the students to use Desmos to plot their graphs. Then I ask them to zoom out on the graph.

This is where they discover how this function can’t explain the position vs time data for an object that continually repeats the same path. Some of the students in the class recognize that the data is better explained using a sine function. Because not all the students have been introduced to this function, it presents an opportunity for some students to teach the other students about how these functions work.

I allow the students to explore the sine function in Desmos, asking them to change the coefficients of the function in order to discover how these coefficients affect the graph.

The next step is to investigate more thoroughly the relationship between the acceleration and the velocity, as well as introduce the benefits of using polar coordinates to describe how an object’s position changes when you are dealing with an object that is traveling in a circular path. Desmos has the ability to change the graph type from the x,y coordinate plate to a polar representation. We discuss the difficulty of representing an object’s circular path using x(t) and y(t) functions as opposed to r(t) and theta(t) because r(t) is just a constant.

Next up, trying to answer the question: “If it’s accelerating inward, then why isn’t it speeding up towards the inside of the circle?!” Once again, the difficult concept of inertia…