A Really Quick Introduction to Programming

With examples using python.

  • Statement: A command given to the computer.
    • Assign a value of -9.8 to a variable called “g”:
    • g = -9.8
    • Print the value of “g” to the screen:
    • print g 
  • Variable: A placeholder name used to record data for later use. In the first statement above, g, is a variable and it is assigned a value of -9.8. Variable names in python start with a letter or underscore “_”. Variables can hold different types of data, for example:
    • strings:
    • x = "hello"
    • Floating point number (aka. a float):
    • x = 9.8
    • Integer:
    • x = 5
    • True/False (aka boolean):
    • x = True 
  • Operations: Statements where some sort of calculation is made:
    • Add two numbers and assign the result to a variable called “y”:
    • y = 3 + 5
    • Divide the value in the variable “y” by 2 and then assign the value to another variable called “z”:
    • z = y / 2
  • Operators: The symbols that tell what operation to do:
    • + – * / are used for addition, subtraction, multiplication, and division respectively
    • ** is used for exponents so 5 squared (52) is:
    • a = 5**2
  • Loops: Tell the computer to do something over and over again. There are different types:
    • “For” loops are good for doing things a set number of times
    • for i in range(5):
      	print i

      results in:

      0
      1
      2
      3
      4
      
  • Logical statements: These test to see if something is True or False and then do different things based on the outcome:
    • Assign a value to a variable called “x”, check to see if the value is greater than 10, and print out a different sentence based on the result:
    • x = 12
      if (x > 10):
      	print "x is greater than 10"
      else:
      	print "x is less than 10"
  • Functions: Chunks of code that someone (maybe even you) wrote that can be referenced via a shortcut:
    • Create a function to calculate the force of gravity at the Earth’s surface if you give it a mass:

      def forceOfGravity(mass):
      	Fg = mass * -9.8
      	return Fg

      Call the function to find the force of gravity acting on a mass of 100 kg and print out the result:

      x = forceOfGravity(100)
      print x

      the result should be:

      -980
  • Classes: A class is like a function that you can assign to a variable and then have it do a lot more stuff.
    • In vpython there is a class called “sphere”. It renders a 3d sphere on the screen. Here we’ll create a sphere, assign it to a variable “ball” and then change one of its built-in properties, the color, from the default (white) to red. (if you are using Glowscript.org then don’t use the first line that imports the visual module).

      from visual import *
      ball = sphere()
      ball.color = color.red

Getting Data into R

One of my students is taking an advanced statistics course–mostly online–and it introduced her to the statistical package R. I’ve been meaning to learn how to use R for a while, so I had her show me how use it. This allowed me to give her a final exam that used some PEW survey data for analysis. (I used the data for the 2013 LGBT survey). These are my notes on getting the PEW data, which is in SPSS format, into R.

Instructions on Getting PEW data into R

Go to the link for the 2013 LGBT survey“>2013 LGBT survey and download the data (you will have to set up an account if you have not used their website before).

  • There should be two files.
    • The .sav file contains the data (in SPSS format)
    • The .docx file contains the metadata (what is metadata?).
  • Load the data into R.
    • To load this data type you will need to let R know that you are importing a foreign data type, so execute the command:
    • > library(foreign)
      
    • To get the file’s name and path execute the command:
    • > file.choose()
      
    • The file.choose() command will give you a long string for the file’s path and name: it should look something like “C:\\Users\…” Copy the name and put it in the following command to read the file (Note 1: I’m naming the data “dataset” but you can call it anything you like; Note 2: The string will look different based on which operating system you use. The one you see below is for Windows):
    • > dataset = read.spss(“C:\\Users\...”)
      
    • To see what’s in the dataset you can use the summary command:
    • > summary(dataset)
      
    • To draw a histogram of the data in column “Q39” (which is the age at which the survey respondents realized they were LGBT) use:
    • > hist(dataset$Q35)
      
    • If you would like to export the column of data labeled “Q39” as a comma delimited file (named “helloQ39Data.csv”) to get it into Excel, use:
    • > write.csv(dataset$Q39, ”helloQ39Data.csv”)
      

This should be enough to get started with R. One problem we encountered was that the R version on Windows was able to produce the histogram of the dataset, while the Mac version was not. I have not had time to look into why, but my guess is that the Windows version is able to screen out the non-numeric values in the dataset while the Mac version is not. But that’s just a guess.

Histogram showing the age at which LGBT respondents first felt that they might be something other than heterosexual.
Histogram showing the age at which LGBT respondents first felt that they might be something other than heterosexual.

Quarto Set

Quarto board.
Quarto board.

One of the more interesting projects of the last year was the wooden Quarto set I made for our middle schoolers to use during their study hall.

The game is quite an interesting one, as was the build. The pieces (rectangular and cylindrical prisms capped with solid or hollow tops) were fairly simple to make using the table-saw for the bodies and laser cutter for the tops. However, I wanted to make a box for the pieces and have the board with its 4×4 grid of circle serve as the top.

Cutting out the top and bottom of the box out of plywood (on the CNC machine) was easy enough, as was lasering on the grid, but the most fascinating part was making the sides of the box. The rounded corners on the top required rounded sides, so I used the laser to cut a living hinge on a piece of plywood and glued it to the base. Then I used some spacer pieces for the inside to hold up an inset that would hold the pieces.

Quarto set box opened up.
Quarto set box opened up.