Pre-learner Survey

This survey, based on a similar Software Carpentry survey can be given to students on the first day of class. The responses from 2014 at Cal Poly have been added for each question.


1. What kind of computer do you have?

a. Desktop
b. Laptop
c. Tablet
d. Other (describe)
e. None

Responses:

a only (1)
b only (31)
a and b (7)
b and c (2)
"Everything" (1)

2. What operating system do you use on your computer?

a. Linux (3)
b. Apple OS X (14)
c. Windows (26)
d. I do not know what operating system I use. (0)
e. I do not have a computer. (0)
f. Other (describe)

3. With which programming languages could you write a program from scratch that reads a column of numbers from a text file and calculates mean and standard deviation of that data?

a. Fortran (0)
b. C
c. C++
d. Perl
e. MATLAB
f. Python
g. R
h. Java
i. Others (list)
j. I do not use any programming languages (20)

Other responses:

b only (1)
c only (1)
e only (2)
f only (2)
h only (3)
Labview only (7)
c and h (2)
b, c, and e (1)
b, c, and f (1)
b, c, e, and h (1)
b, c, e, g, and h (1)

4. What best describes how often you currently program?

a. I have never programmed. (16 - including one who circled Labview)
b. I program less than one a year. (6)
c. I program once a year. (7)
d. I program several times a year. (8)
e. I program once a month. (2)
f. I program once a week or more. (3)

5. What best describes the complexity of your programming? (Choose all that apply.)

a. I have never programmed. (17)
b. I write scripts that are a few lines long to analyze data. (13)
c. I write programs that are a page or two long for my own use. (9)
d. I write programs that are many pages long for my own use and for others to use. (3)
e. I am primarily a programmer. (1)

In each of the following scenarios, please select the answer that best applies to you.

6. A tab-delimited file has two columns showing the date and the highest temperature on that day. Write a program to produce a graph showing the average highest temperature for each month.

a. I could not complete this task. (19)
b. I could complete the task with documentation or search engine help. (22)
c. I could complete the task with little or no documentation or search engine help. (1)

7a. How familiar do you think you are with version control?

a. I am not familiar with version control. (37)
b. I am familiar only with the name. (2)
c. I am familiar with version control but have never used it. (3)
d. I am familiar with version control because I have used it or am using it. (0)

Version control system I am familiar with (if any): Two who answered (c) said Github

7b. Answer only if you answered (d) on the previous question.

Given the URL for a project's version control repository, check out a working copy of that project, add a file called notes.txt, and commit the change.

a. I could not complete this task.
b. I could complete the task with documentation or search help.
c. I could complete the task with little or no documentation or search help.

8a. How familiar do you think you are with unit testing and code coverage?

a. I am not familiar with unit testing or code coverage. (34)
b. I am familiar only with the names unit testing and code coverage. (5)
c. I am familiar with unit testing or code coverage but have never used it. (2)
d. I am familiar with unit testing or code coverage because I have or am using it. (1)

8b. Answer only if you answered (d) on the previous question.

Given a 200-line function to test, write half a dozen tests using a unit testing framework and use code coverage to check that they exercise every line of the function.

a. I could not complete this task. (0)
b. I could complete the task with documentation or search engine help. (1)
c. I could complete the task with little or no documentation or search engine help. (0)

9a. How familiar do you think you are with the command line?

a. I am not familiar at all with the command line. (18)
b. I am familiar only with the name command line. (6)
c. I am familiar with the command line but have never used it. (9)
d. I am familiar with the command line because I have or am using it. (9)

9b. Answer only if you answered (d) on the previous question.

How would you solve this problem? A directory contains 1000 text files. Create a list of all files that contain the word "Drosophila" and save the result to a file called results.txt.

a. I could not create this list. (2)
b. I would create this list using "Find in Files" and "copy and paste". (2)
c. I would create this list using basic command line programs. (4)
d. I would create this list using a pipeline of command line programs. (1)

10. What do you hope to learn from/get out of this class?

Variety of responses, including programming skills, physics, skills for resume/job

11. Do you have any idea what you plan to do after you graduate from Cal Poly? (it’s okay if you don’t yet, just list some career paths you’ve considered)

Variety of responses, including engineer, grad school, programmer


2014 Demographics:

Class standing: Senior 22, Junior 16, Sophomore 4, Freshman 0

Major: PHYS 34, CHEM 2, MATH 2, GENE 1, CPE 1, PHIL 1, AERO 1


All content is under a modified MIT License, and can be freely used and adapted. See the full license text here.