Run by School of Psychology
20 Credits or 10 ECTS Credits
Organiser: Dr George Houghton
Overall aims and purpose
The course is intended for students who would like to add computer programming to their repertoire of research skills. It does not assume previous experience of programming, but students should have (i) good numeracy skills, as we focus on handling numerical data and numerical computations. (ii) a solid understanding of basic statistics, including descriptive statistics, variance, correlation and the t-test. (iii) previous experience of using Excel, especially to handle experimental data. The course is practically oriented in the sense that (1) it is taught largely by doing, in lab sessions, and assessed by the completion and write-up of working computer programs; and (2) the programs we write are oriented towards the manipulation of data of the form typically generated by psychological experiments (e.g., reaction times).
The programming language we study is Visual Basic (VB), which enables you to create a visual user interface to your program. So as well as studying common elements of computer programming, we also spend time learning about the basics of visual interface design, and the kinds of common visual “controls” (clickable buttons, menus, lists of options etc.) typical of Windows-type interfaces.
A variety of VB, Visual Basic for Applications (VBA), is used as a scripting language in many applications of use in psychological research (Excel, E-Prime, Statistica). We study VBA in the context of Excel to automate data analyses on spreadsheets (e.g., multiple t-tests, adaptive detection and removal of outliers). This is taught in the latter part of the course; prior experience of using Excel to handle data (i.e. of using the spreadsheet interface) is assumed.
The programming environments we use are either made available by the university (e.g., under the MS Office suite) or are freely available. Hence you will be able to work on your programs away from the lab on your home PC or laptop (N.B. Apple Macs are NOT recommended).
We will cover (at least) the following:
General elements of programming (exemplified in Visual Basic):
- Planning your program: What is the problem? How am I going to solve it? How can I break the solution down into steps?
- Variables and Data types: How to declare, use and manipulate numbers, strings, arrays, lists, and (VB) objects.
- Assigning values: How to give a variable a value.
- Scope of variables: local and global variables.
- Arithmetic operations: how to add, subtract, multiply etc
- Simple string manipulations, e.g., concatenation. How to handle and manipulate file names.
- Collections of data: Creating and processing Lists and Arrays.
- Subroutines and functions: What they are for, and the difference between them. Passing arguments to and returning values from functions.
- If... then ...else .. End if statements. How to make a conditional statement.
- Loops: doing something repeatedly: a. For ... Next loops: doing the thing some number of times b. Do Until ... Loop, Do While ... Loop: doing the thing until (or while) some condition is fulfilled.
- Basics of “Object-oriented” programming. Object hierarchies. Object.Method, Object.Property.
Visual interface programming
- Use of the VB programming environment,.
- Graphical user interface (GUI) design.
- Controls: what are they? Controls as objects.
- VB Forms, placing controls on forms, naming controls. Changing properties of controls.
- The object.method and object.property syntax.
- How to manipulate common VB controls: Command buttons, text boxes, list boxes, labels, frames, option (radio) buttons, check boxes, data tables, progress bars etc.
- Standard methods for the common controls. Linking controls to the underlying program.
- File input/output; reading data from a file. Using file dialogs to Open and Save files.
Visual Basic for Applications (VBA): Use in Excel
- Starting VBA in Excel: The programming interface
- Linking VBA to the Excel worksheet.
- The Excel object model: Workbooks, Worksheets, Ranges, Cells.
- VBA program modules, and the VBA UserForm.
- Programming data manipulation in Excel with VB.
Adequate answer to the question, largely based on lecture material. No real development of arguments.
Reasonably comprehensive coverage. Well organised and structured. Good understanding of the material.
Comprehensive and accurate coverage of the area clarity of argument and expression. Depth of insight into theoretical issues
Students will gain an understanding of the central constructs and techniques employed in most computer programming; they will learn to employ these techniques to handle and manipulate data. Students will also acquire skills in visual interface design, allowing other people to easily use their programs.
Design and program a Windows-type user interface, using a variety of common controls (found in Visual Basic)
Learn to automate data analyses and other operations in Excel, using Visual Basic for Applications.
Teaching and Learning Strategy
|Practical classes and workshops||
Teaching is entirely hands-on in a weekly 3 hour practical class using PCs. Classes are usually scheduled in one of the computer rooms in main arts. Each practical class is accompanied by a written "Walkthrough" available on blackboard; however the classes typically include material not found in the walkthrough, depending on student-tutor interaction during the class. Efforts are made to provide suitable TA support. Written "Course Notes" are also made available on Blackboard; these are reference documents for the central programming structures covered in the course.
There are no formal lectures.
Students are expected to revise and practice the programming principles covered in the class in the their own time. All assessment if by the development and write-up of working computer applications. The assessment grading places emphasis on students showing a productive/creative grasp of the principles taught. This can only be achieved by working on programs in ones own time.
- Numeracy - Proficiency in using numbers at appropriate levels of accuracy
- Computer Literacy - Proficiency in using a varied range of computer software
- Self-Management - Able to work unsupervised in an efficient, punctual and structured manner. To examine the outcomes of tasks and events, and judge levels of quality and importance
- Exploring - Able to investigate, research and consider alternatives
- Critical analysis & Problem Solving - Able to deconstruct and analyse problems or complex situations. To find solutions to problems through analyses and exploration of all possibilities using appropriate methods, rescources and creativity.
- Presentation - Able to clearly present information and explanations to an audience. Through the written or oral mode of communication accurately and concisely.
Subject specific skills
- Be computer literate for the purpose of processing and disseminating psychological data and information.
- Use effectively personal planning and project management skills.
- Work effectively under pressure (time pressure, limited resources, etc) as independent and pragmatic learners.
- Problem-solve by clarifying questions, considering alternative solutions, making critical judgements, and evaluating outcomes.
- Use a range of statistical methods with confidence.
Resource implications for students
Students would benefit from access to a home PC/PC laptop, though in principle all the work can be carried out on University equipment.