This is an old revision of the document!
Welcome! This is the home page for the optional hands-on (heads-on) 2016 edition of the “Rhythmic Brain” course.
Make sure you are on a Dartmouth network, such as Dartmouth Secure. Not KAF, Starbucks or eduroam. Then go here, click “Site License Downloads” and keep clicking the link at the bottom of the page until you get to the page for “R2014a”: this is the version you want. Follow the instructions in the PDF.
When the installation is done, see if you can run MATLAB. You should be faced with a screen containing a bunch of windows, including one called “Command Prompt” containing
If your MATLAB runs, great! Now decide if you'd rather:
Click here. Move this file to a location that shows you are careful with how you handle data. Something like
\Documents\PSYC50\Data\TestData is a good choice, because it is clearly named and anticipates that you may have other data in the future beyond the file you grabbed just now. Something like
\Desktop is bad because it'll get mixed in with lots of other files and maybe get deleted accidentally.
Notice that this file has the extension
.edf. File extensions typically tell you about what type of file you are dealing with. In this case, our filetype is “EDF” (meaning it contains data arranged according the rules laid out in the European Data Format specification, which you can be happily ignorant about). All this means for you is that you need a file loader that can accept files of the EDF format, such as the one introduced in the next section.
Pick one: the quick way, or the future-proof way.
The quick way: download the MATLAB loader (from here), and place it in a sensible location like
\Documents\PSYC50\Code\Loading. This will work for now. However, if you ever want to access an updated version of this file, or other code that I put up for use in the course, you'll have to do more downloading. The future-proof way, below, addresses this.
The future-proof way: I have added the code you'll need for loading EDF data, as well as for doing some other things, on a “GitHub repository”.
Git is a system for “distributed version control”: put simply, a way to collaborate on a set of files that makes it easy to share and receive updates to those files.
GitHub is a website that hosts those files in a convenient place so that the
Git software can do its job.
Let's make sure you have Git on your computer. If you are a Mac user, you should already have git installed. Open up a Terminal, and type
git to verify that your computer recognizes it. If you are on Windows, I recommend you download the GitHub desktop. Then, open a “Git shell” (you should have an icon and start menu item) and type
git to check this command is recognized.
In your terminal/shell, navigate to a good place to put your GitHub code.
Depending on your background and programming experience you might find the following resources helpful:
If you are unsure, take a look at the table of contents of the MATLAB Primer in the link above. If there are things you don't recognize, use the Primer itself, or Chapter 2 of the MATLAB for Neuroscientists book to get up to speed. If you've never used MATLAB, definitely start with the steps in the Primer.
Regardless of your MATLAB abilities, some great ways to keep learning are:
If you have no formal training in computer programming (i.e. you have never taken a “Intro to Computer Science” or “Introductory Programming” type course) a great introduction to the “Zen of programming” is to do the pen-and-paper exercises in this short chapter by Daniel Dennett (“The Secrets of Computer Power Revealed”) before you embark on the MATLAB primer linked to above. Most people find it frustrating at first, but rewarding if they stick with it for a few hours.
The following textbooks provide more in-depth treatment of some of the topics we touch on in the course:
These are selected modules from a graduate course I teach on neural data analysis:
The lab codebase is set up for machines running 64-bit Windows 7 or Mac OS X. If you want to use Linux or some other OS you will probably need to compile some of the low-level loading functions yourself. Some pointers for this are provided in subsequent modules when loading is introduced.