12. PROGRAMMING IN MATLAB
The aim is to learn to program in Matlab to an intermediate level. To know the basics of imperative programming, the use of functions and loops. By the end of the course, participants should be able to read in their own data, perform basic quantitative analyses on the data, visualize the results and store them for further analysis. Apart from these basics, the participants will also get acquainted with good programming practices and programming in a collaboration. The course will be mostly self-paced so that people can progress at the speed that is right for them. There will be no common end point, as fast-learner or people that already have more programming experience will learn about more topics or to a deeper level.
Using the Matlab GUI
Basic programming in Matlab (variables, loops, function calls)
Debugging and code optimization
Use of version control and software repositories
Adapting Matlab figures to your publications
Depending on the progress of the individual, the participant may also get acquainted with some of the following topics
Difference between PhD- and master-course
Duration of the course / ECTS
40 hrs / 1,4 ECTS
Practicals and short lectures. The participant is required to be present during the entire course (exceptions are possible if specifically requested). The course is Bring-Your-Own. All participants bring their own laptop and their own (possibly digital) book to the course (please let us know if you do not have a laptop and we will make arrangements). Ideally, Matlab is preinstalled, but we can help with installation of Matlab at the beginning of the course. People will follow their own book at their own pace, but there will be many tutors in the room that can directly provide help and answer questions to keep the pace high. Interspersed with the periods of people working individually, there will be short lectures on more advanced topics such as version control, debugging, use of variable names, memory usage and parallel programming.
For the absolute novices to Matlab, there is an extra introductory course day, scheduled in the week before the main course begins. The format of this day will be lectures, that participants attend in the classroom while they type the commands in their Matlab window of their laptops. This day is intended to get everybody up to a level that they can start following a chosen text book by themselves (with extra help from the tutors) during the main course.
Maximum number of participants
Dr. J. Alexander Heimel (NIN) and Dr. Xing Chen (NIN)
Year / dates next course
Main course: November 4-8, 2019
Introductory day for absolute beginners: tba
Netherlands Institute for Neuroscience, Meibergdreef 47, Amsterdam
It is required to bring a Matlab book to the course. This could be a PDF or otherwise digital copy. There are many good Matlab books available. The participant should pick one at his/her own level and in a style that appeals to him/her.
We have some suggestions and comments:
Matlab: A Practical Introduction to Programming and Problem Solving by Attaway. Very good introduction up to intermediate level of Matlab programming. Good programming style. Well explained. About 40 euros. Note that this is not the book with a similar name from Upskill Learning. That book is too basic for the course.
Essential MATLAB for Engineers and Scientists by Hahn and Valentine. Extensive introduction to matlab up to intermediate level. About 40 euros.
Mastering MATLAB by Hanselman and Littlefield. Very extensive introduction to Matlab up to intermediate level. About 80 euros
Matlab for Brain and Cognitive Scientists by Cohen. Extensive book aimed specifically at analysis of neuroscience data, but also providing a good introduction to programming in Matlab. 50 euros.
Matlab for Neuroscientists by Wallisch and others. Not a very good introduction to Matlab programming but contains many interesting chapters on neuroscience data analysis.
Matlab for Beginners: A Gentle Approach. Very basic. We hope to get further than this book in this course.
Els Borghols (firstname.lastname@example.org)