Tuesday, December 23, 2014

Science toys for kids

I can't help but notice that there are a TON more science-based toys for kids these days.  When I was growing up, I thought it was incredibly cool to have a KNEX-type building set that came with an attachable solar panel. Put the solar panel under a lamp, and my windmill would move! 

But now, there is a whole slew of toys that allow kids to tinker and experiment in completely different ways.  Here's a short list of things I've seen.  Please comment with more toy ideas for budding scientists and computer scientists...besides Tower of Hanoi. ;-)



1. Robot Turtles. This board game teaches kids about computational thinking, using a basic checkerboard layout, obstacles, and three simple commands for your turtle: turn right, turn left, and move forward one.  It can get as complicated as you like, with multiple types of obstacles, and the need to combine commands that are frequently used together using a "function frog" card.  This board game started as a Kickstarter project, which I also think it pretty cool.

2. My friend Lucas works for a local company called Modular Robotics.  Their robotics kit, Moss, allows kids to put together robots with obstacle sensors and light sensors, and moving kinetic parts, all without wires.  Sensors and moving parts fit together with magnets, and can even communicate with your smartphone.

3. Of course, I love the ubiquity of the HexBug robots.  This kit is pretty cool -- you can turn different sensors on your robots on and off to see how the robot reacts.  Getting kids to try different settings, including combinations that "don't work," is essential to understanding the real life of a scientist -- one failure after another, but each failure teaches you something new about your system!

4. I would be amiss if I didn't mention GoldieBlox and all that they are doing to get girls involved with engineering and confident in their problem solving abilities early on.  The original commercial involves a pretty awesome Rube Goldberg machine that is a few steps ahead of my generation's version: Mouse Trap.

What else have you seen for budding scientists? Please comment!

Wednesday, October 29, 2014

Temporal dynamics of social networks

Today the lab heard a talk by Dr. Bailey Fosdick, a new faculty member in Statistics at Colorado State University.  She spoke about temporal dynamics of social networks -- in this case, baboon troops in Kenya. The primatologist(s) that Dr. Fosdick works with observed that baboon troops go through fission events every 12-15 years and wanted to know if the members of the two resulting groups could be predicted.  In other words, this was the baboon version of the karate club data set.  Could we infer group membership in advance of a fission event?

Dr. Fosdick focused on one troop of baboons for which the data on social events covered 4.5 years.  Data was binned by month and focused on female members of the troop, based on the matriarchal social structure of the species. Dr. Fosdick focused on grooming events between individual females, creating a directed network with a count of grooming events per month.  She then mapped the baboon interactions into a latent space based on social closeness.  The position of each baboon in the latent space was based on the number of interactions she had with every other baboon in the previous month.  More precisely, Dr. Fosdick mapped each baboon to the latent space as a function of how the number of interactions differed from expected based on the covariates of mother-daughter relationship, amount of rainfall (and thus amount of insects that needed to be groomed), and relative social standing.  After pairwise distances between all baboons were calculated in this way, the position of each baboon in the latent space was visualized in 2D using multidimensional scaling. Thus, Dr. Fosdick was able to isolate the latent social space over time.  Stitching these 2D pictures together, she showed a movie of latent space which revealed the gradual separation of baboons into two troops.

The dynamics of social networks over time is an active area of research in network science.  My colleague Abigail Jacobs is also working on understanding the temporal dynamics of social networks.

Tuesday, July 15, 2014

What my inbox looks like sometimes as a woman in science

This is what my inbox looks like sometimes.  Not always, just sometimes.  Some days, the Chronicle of Higher Education sends me four articles about having babies.


Sunday, March 2, 2014

Roadblocks to widespread use of computational science

I'm writing this post as I'm in the middle of a problem set for my Machine Learning class.  I have a few seconds to write a blog post because I have to reconfigure applications, compilers, and various source code to do this problem set.  This is frustrating to me.

I don't claim to be a computer scientist.  I'm really a biologist; I was trained in that field, and I use the tools of Computer Science to investigate biological questions (e.g., about community structure, extinction risk, dynamical systems in ecology, etc.).

However, I like Computer Science. It lets me do great things, like simulate evolution many thousands of times, explore the outcome of stochastic processes, and make good predictions about what our null expectations in ecology should be.  I use Python, Matlab, and R pretty regularly, and I can make my way around a Unix command line (slowly).

So here is what frustrates me: computer scientists want to build tools that will help scientists in other fields, but with little understanding of what the background set-up work looks like -- to non-computer scientists, especially! -- in order to use these "black box" functions.

Right now, I'm implementing libsvm, a package that works in Matlab, Octave and Python to produce Support Vector Machine models.  This package purports that it is easy to use; one of the developers' goals is for libsvm to be accessible to scientists with any kind of data set.

Here's the catch: to get this package to work, I've spent several hours reading StackOverflow posts and blog posts, trying to run the install program for libsvm from within Matlab, getting error messages, google searching, trying to use the command line ('brew install gnuplot' etc.), crying, digging into the source code of another SVM program (the built-in Matlab svmtrain), calling a friend, and finally figuring out a solution.  So, here's my solution: a classmate pointed me towards a blog post that will allow me to download libsvm onto my Mac.  All this requires is updating my Xcode compiler (and, of course, updating command line tools within Xcode), and downgrading to Matlab 2012a.  Then, if I follow the directions exactly, I should be able to get this "easy" package to work.



It seems doubtful to me that many non-computer scientists are going to have the patience to use support vector machines if this is the best we can do.  I'm not making a normative argument about whether or not black-box algorithms or data analyses are useful or good for science.  But, if computer scientists want to continue to make claims about creating software that will help other fields advance, software that is easily accessible and can be used "out of the box," there need to be some changes.

Maybe it's time for Computer Scientists to team up with marketing or communications departments.  I've noticed that everyone from Comcast to Ikea has very good user-interfaces these days.  If we truly are working towards a revolution in computational sciences, we need to take usability into more serious consideration.

Thursday, January 16, 2014

The flipped classroom

This semester I'm taking two classes with flipped classrooms, in two different departments.  The first is Theoretical Ecology and Evolution with Dr. Samuel Flaxman, in the Biology department.  We read articles and the textbook at home, and then spend the class time discussing our reading (what was clear or not, questions about the assumptions the authors made). We spend the rest of the class coding up different models in Mathematica in teams of 2-3.

I'm also taking Intro to Machine Learning with Dr. Matt Wilder, in the Computer Science department.  CU has a deal with Coursera, so we are responsible for watching lectures from Dr. Andrew Ng's most recent Machine Learning course at home.  The lectures then reinforce and expand on the material from the Coursera videos. 

This is my first semester with this kind of course structure, and so far, I really like it.  I love the idea of using MOOC videos to supplement lectures, especially since I often find that I need at least two exposures to a concept before I really understand it enough to implement (of course, we get homework assignments to see if we really understand something enough to code it up -- the best possible test of comprehension).  I also really like having a combined seminar/lab style theory and modeling class.  I have always found it super useful to code with other people or in teams.

Higher education really is innovative, even at University of Colorado. I feel lucky to have such committed teachers.