(This pre-assessment form is a material modified from Software Carpentry. The original can be found at: http://software-carpentry.org/workshops/assess/pre-learner.html) 1. Name 2. Email address 3. What is your career stage? - Undergraduate - Graduate - Post-doc - Faculty - Industry - Support staff - Other: 4. Which of the following most closely aligns with your primary discipline? - Space sciences - Physics - Chemistry - Earth sciences (geology, oceanography, meteorology) - Life science (ecology, zoology, botany) - Life science (biology, genetics) - Brain and neurosciences - Medicine - Engineering (civil, mechanical, chemical) - Computer science and electrical engineering - Economics - Humanities and social sciences - Tech support, lab tech, or support programmer - Administration - Other: 5. In three sentences or less, please describe your current field of work or research question. 6. What operating system will you use on the laptop you bring to the workshop? - Linux - Apple OS X - Windows - I do not know what operating system I use. - I am not bringing a laptop to the workshop. - Other: 7. 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? - C - C++ - Perl - MATLAB - Python - R - Java - Other(s): - I do not use any programming languages. 8. What best describes how often you currently program? - I have never programmed. - I program less than one a year. - I program once a year. - I program several times a year. - I program once a month. - I program once a week or more. 9. What best describes the complexity of your programming? (Choose all that apply.) - I have never programmed. - I write scripts that are a few lines long to analyze data. - I write programs that are a page or two long for my own use. - I write programs that are many pages long for my own use and for others to use. - I am primarily a programmer. **(In each of the following scenarios, please select the answer that best applies to you.)** 10. 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. - I could not complete this task. - I could complete the task with documentation or search engine help. - I could complete the task with little or no documentation or search engine help. 11. How familiar do you think you are with version control? - I am not familiar with version control. - I am familiar only with the name. - I am familiar with version control but have never used it. - I am familiar with version control because I have used it or am using it. - Version control system I am familiar with (if any): 11. Answer only if you answered (4) 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. - I could not complete this task. - I could complete the task with documentation or search help. - I could complete the task with little or no documentation or search help. 12. How familiar do you think you are with unit testing and code coverage? - I am not familiar with unit testing or code coverage. - I am familiar only with the names unit testing and code coverage. - I am familiar with unit testing or code coverage but have never used it. - I am familiar with unit testing or code coverage because I have or am using it. 12. Answer only if you answered (4) 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. - I could not complete this task. - I could complete the task with documentation or search engine help. - I could complete the task with little or no documentation or search engine help. 13. How familiar do you think you are with the command line? - I am not familiar at all with the command line. - I am familiar only with the name command line. - I am familiar with the command line but have never used it. - I am familiar with the command line because I have or am using it. 13. Answer only if you answered (4) 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. - I could not create this list. - I would create this list using "Find in Files" and "copy and paste". - I would create this list using basic command line programs. - I would create this list using a pipeline of command line programs.