PSYC 7503/8503 Seminar In Experimental Psychology
[Computer Programming for Psychologists]
 
Course Information
Time and Location
Instructor
Office Hours
Description
Syllabus

Resources
Textbook
References

Evaluation
Items
Grading

Submitting Assignments
Checking Grade

Schedule



Course Information [top]

Time and Location [top]
Tuesday – Thursday, 2.40 – 4.05 pm
FedEx Institute of Technology Room 405 (FIT 405)
http://www.cs.memphis.edu/~sdmello/classes/psyc7503/

Instructor [top]
Sidney D’Mello
FIT, 403 F
phone: 901-678-1690
fax: 901-678-1336
sdmello@memphis.edu
http://www.cs.memphis.edu/~sdmello

Office Hours [top]
Wednesday (3-4 PM)
Thursday (4-5 PM)
Friday (3-4 PM)
By appointment

Description [top]
The objective of this course if to introduce fundamental programming concepts to psychology students. The focus of the material is on core data processing techniques that will serve as a catalyst to speed up data analysis. We will write programs for collecting data, presentation of stimuli (text/images), recording of stimuli (flat files/databases), time stamping, making database queries, flat file processing with regular expressions, and computing statistics.

The course is divided into three phases: introductory concepts with beginning programs, semi-advanced techniques for intermediate programs, and student projects. Each student works on programming assignments relevant to his or her research under close supervision from the instructor.

There are a number of fundamental problem solving and computer programming skills addressed in this course. These include techniques for deriving problem solutions and use of basic programming concepts such as variables, constants, data types, arrays, loops, and conditionals. Intermediate concepts such as reading and writing from files, functions and procedures, string manipulation, and data structures will be covered in detail. Advanced topics will include an introduction to SciPy (a scientific library in Python), Tkinter (GUI development), and automated SPSS techniques. Additional topics based on class interests will also be included.

We will use the Python programming language in this course because it is very powerful, not cryptic (i.e. no strange symbols), sufficiently verbose and hence easy to learn, integrates well with other existing software (Java, etc), and is being widely used in academia.

Downloadable Syllabus [top]
You can download a copy of the syllabus here. But please note that I will not update this version.
Instead the most current updates can be found on this site.


Resources [top]

Textbook [top]
"How to Think Like a (Python) Programmer" by Allen B. Downey.

References [top]
"Python Programming Language" - Official Website
"Python Documentation"
"Byte of Python" – another online book as a wiki


Evaluation
[top]

Students will be evaluated on the basis of homework, programming assignments, and class participation. The last two programming assignments will be tailored to each student on the basis of his or her research interests. Students have the option of combining the last two programming assignments into a single large assignment. This option is ideal for students who require a program to further some aspect of their research agenda.

There will be periodic quizzes to monitor student progress. However, these will not count towards the students grade in the class. Instead, students making a C or lower on the quizzes will be expected to visit the instructor during office hours for one-on-one tutoring.

Items [top]
Homework [HW] - 6 (will drop lowest 1) - 40% grade
Programming Assignments [PA] - 5 - 50% of grade
Class Participation - 10% of grade

Grading [top]
If you show up to every class, see me when you are falling behind, and put some effort into the programming assignments, an A will not be a problem.

A+ (97-100), A (91-96), A- (89-90)
B+ (87-88), B (81-86), B- (79-80)
C+ (77-78), C (71-76) , C- (69-70)
D(60-68)
F(60-68)

Submitting Assignments
[top]
In order to submit homework and programming assignments please visit https://umdrive.memphis.edu/sdmello/psyc7503/
Log in to your account using your postoffice credentials and upload your files. You do not have permission to delete files so in case you need to reupload a file please use a versioning scheme. For example Sidney-hw1-v1.py for version 1 of hw1 and Sidney-hw1-v2.py for version 2. You have a 1MB quota so email me if you need more room.


Schedule [top]

Concept

Date

Day

Topic

Book

Due

Algorithmic Thinking

8/28

(T)

Algorithmic thinking, problem solving, and pseudo code

8/30

(R)

Introduction, why Python? setting up programming environment, first program
[Circle.py]

(CH1)

Fundamentals of Programming

9/4

(T)

Variables, statements and common operators
[CircleUserInput.py] [Distance.py]
[DistanceUserInput.py] [ReadingAge.py]

(CH2)

9/6

(R)

Conditionals
[Comparison.py] [NestedLoop.py]
[ReadingAgeCheckInput.py] [AffectRecognition.py]

(CH5)

9/11

(T)

Iteration and File IO
[MiscellaneousPartA.py] [WhileTermCondt.py]
[ReadFile.py]

(CH7, CH14)

HW1
[HW1.py]

9/13

(R)

Strings and File Output
[SearchFile.py] [CopyFile.py] [FindReplace.py]
<Make sure hw1.txt is in the same directory as these files>

(CH 8)

9/18

(T)

Response Timing + Programming Assignment 1

 

HW2
[HW2A.py]
[HW2B.py]
[HW2C.py]

9/20

(R)

Review
[LengthAnalysis.zip]

 

9/25

(T)

Lists

(CH3)

PA1
[PA1.zip]
[PA1A.py]

9/27

(R)

Lists
[TimeBySubjectCmdLineInput.py] <TimeDataFile.txt>

(CH6)

Strings and Input Output

10/2

(T)

Functions (Lee McCauley)

10/4

(R)

Advanced Functions
[BinaryCodingData.py]
Input = <BinaryCodingData.txt>
Output = <BinaryCodingData.txt.bcode.txt>

(CH8)

10/9

(T)

Parsing SPSS Output

(CH8)

 

10/11

(R)

Review+ PA 2

(CH14)

HW3
[Hw3Data.txt]
[HW3.py]

Data Structures

10/18

(T)

Quiz 1
[Assocations.py]

10/23

(R)

Tables
[TableDemo.py] <TableData.txt>
[TermDoc.py] <Corpus.txt>

 

 

10/25

(T)

Dictionaries
[BuildHistogram.py]

(CH11)

PA2
[pa2.py]

11/1

(R)

Dictionaries
[pa2Dict.py] <HW3Data.txt>

(CH11)

 

11/6

(T)

Review+ PA 3
[DictionaryDilemma.py]

11/8

(R)

Pygame (Rick Dale)

Advanced Topics

11/13

(T)

Regular Expressions
[RegExDemo.py]

PA3
<Corpus.txt>
<PA3Output.txt>

11/15

(R)

Graphical User Interface (GUI)

11/20

(T)

SciPi (Scientific Library)

HW5

11/22

(R)

Thanksgiving Break (No Class)

11/27

(T)

Database Processing (SQL and Python)

11/29

(R)

Database (SQL and Python)

PA4

12/4

(T)

Introduction to Object Oriented Programming

12/6

(R)

Study Day (No Class)

HW6

Final Exam

TBA

TBA

TBA

PA5

[top]