Creating Apps: Programs & Algorithms in Python
Full course description
"Being able to program is an advantage for any scientist"
R. Goebel, Professor Cognitive Neurosciences, BrainVoyager.com, UM
"Understanding algorithms definitely helps to understand cognitive psychology."
G.J. Peters. Ph.D. Health and Social Psychology, gjyp.nl, OU
When the computer became commonplace in universities, companies and homes, psychologists gained a powerful tool. The computer and the computer metaphor influenced the creation of a new field in psychology: cognitive psychology. Psychology and informatics became intertwined. The computer became very important in the daily work and research of a psychologist. By learning to program, you not only acquire the ability to make computers do what you want them to do, but you learn a new way of thinking as well. Programming is not very hard once you have learned this way of thinking. One of the most important skills learnt during this course is to disentangle (apparently) complex problems into smaller problems and specify exactly how to solve these smaller problems. The result is called an algorithm. If you want the computer to solve the problem for you, you will have to translate the algorithm to a language the computer understands. This is not very hard either; the language used in this course consists of only 15 syntactic structures. With these basic structures, we can construct every imaginable algorithm. First, we are going to introduce you the most important principles of programming. Subsequently, you will learn to disentangling complex problems into smaller problems: algorithmic thinking. Furthermore, we teach you how to visualise these algorithms in a formal, non-technical way. With this knowledge, we are going to write increasingly complex programs, which help us solve psychological relevant problems. We will teach you the programing language Python but mostly its underlying logic, so you will be able to learn other script- and programming languages more easily after successfully completing this course.
- knowledge of variables, types, type-conversion, operators algorithms, control-flow, subroutines, arguments and parameters, modularity, call by reference, arrays, dynamic arrays, records, data-structures, file operation;
- being able to read and write pseudo-code, flowcharts and NSDs;
- being able to debug and error-proof a program;
- mostly: being able to read other peoples’ code and create your own code, to make functional applications.