Join Bill Weinman for an in-depth discussion in this video Exploring Lake Pend Oreille, part of Code Clinic: C++.
Hello, and welcome to Code Clinic. My name is Bill Weinman. Code Clinic is a monthly course where a unique problem is introduced to a collection of Lynda.com authors. In response, each author will create a solution using their programming language of choice. You can learn several things from Code Clinic, different approaches to solving a problem, the pros and cons of different languages, and some tips and tricks to incorporate into your own coding practices.
This month, we'll work on a problem in statistical analysis and, to some extent, handling big data. It's common to use a computer to manipulate and summarize large amounts of information, providing important insights on how to improve or handle the situation. In this problem, we'll use weather data collected by the U.S. Navy from Lake Pend Oreille in northern Idaho. Lake Pend Oreille is the fifth deepest freshwater lake in the United States, so deep, in fact, that the U.S. Navy uses it to test submarines.
As part of that testing, the U.S. Navy compiles an exhaustive list of weather statistics, wind speed, air temperature, barometric pressure. You can browse this data by pointing your web browser at lpo.dt.navy.mil. You'll find several weather summaries, webcam, and the raw data they collect every five minutes archived as standard text files. For anyone living or working on Lake Pend Oreille, weather statistics are an important part of everyday life. Average wind speed can be very different than median wind speed, especially if you're on a small boat in the middle of the lake.
In this challenge, each of our authors will use their favorite language to calculate the mean and median of the wind speed, air temperature and barometric pressure recorded at the Deep Moor station for a given date. First, let's briefly review mean and median. These are both statistics. To explain statistics, we need a set of numbers. Here we have 14 readings for wind gust at Deep Moor Weather Station on January 1st 2014. You can see the data at this website. The first column is the day the wind gust was recorded.
The second column is the time it was recorded and the third column is the wind gust in miles per hour. The mean is also known as the average. To collect the mean of a range of numbers, simply add the values in the set, then divide by the number of values. In this example, we'll add 14 twice, 11 five more times, 3, 7 four times, 4 and then 8. Then we'll divide the sum by 14, the number of values in this set. In this case, the mean is equal to 9.
The median is the number halfway between all the values in a sorted range of values. Think of median as the median strip of the road. It always marks the center of the road. To calculate the median, first sort the numbers from lowest to highest. If there's an odd number of values, then just take the middle number. If there's an even number of values, then calculate the mean of the central two numbers. In this case, there's an even number of values, so we sort, then we take the average of the middle two values, the 8 and 11, and the median is 9.5.
So, this is our first challenge. Pull statistics from a data set available online. Perhaps you'll want to pause and create a solution of your own. How would you solve the problem? In the next videos, I'll show you how I solve this challenge.
Bill introduces challenges and provides an overview of his solutions in C++. Challenges include topics such as statistical analysis, searching directories for images, and accessing peripheral devices.
Visit other courses in the series to see how to solve the exact same challenges in languages like C#, Java, PHP, Python, and Ruby.
Skill Level Intermediate
Q: I am unable to access the Lake Pend Oreille data from outside the U.S.
A: A static copy of this data is provided here for lynda.com members outside of the U.S