{ "metadata": { "name": "", "signature": "sha256:e1fd81ab310c6829861025b7f99e1fecfce022bad62be4f2d2c420c9ade10f8b" }, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "heading", "level": 1, "metadata": {}, "source": [ "No hands-on: Summary" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Looking behind\n", "\n", "During this course I have tried to cover **alot** (and possibly too much):\n", "\n", "- Python fundamentals (classes 1-5, HW1-2):\n", " - Basics: variables, functions, conditions\n", " - Types: lists, tuples, dicts, sets \n", " - Code organization: classes, modules/packages\n", " - Errors handling (Exceptions), generators, and even context handlers\n", " - Debugging: stating assumptions with assertions, interactive debugging with pdb\n", "\n", "- Numerical computing (classes 6-11, HW4):\n", " - Data organization and manipulation: numpy arrays, scipy (convolution, interpolation, optimization)\n", " - Data plotting with matplotlib\n", "\n", "- Stimuli delivery (classes 13-15) with [PsychoPy](http://psychopy.org)\n", "\n", "and also to introduce you to basic \"software engineering\" techniques of \n", "\n", "- Code ([git](http://www.git-scm.com)) and even data ([git-annex](http://git-annex.branchable.com)) version control, and \"collaboration\" via [github](http://github.com) service\n", "- Testing (unit-, smoke-) using [nose](http://nose.readthedocs.org/en/latest/index.html) framework and [Travis-CI](http://travis-ci.org) service, accompanied with [Coveralls](http://coveralls.io/) coverage reports\n", "- Refactoring and modularization (HW3)\n", "\n", "while staying in touch with neuroimaging domain (we used/tortured Haxby 2001 data and stimuli, snippets from openfmri datasets, etc)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Looking few days ahead\n", "\n", "Unless I am forced to submit \"grades\" earlier, I will still monitor HW/PRJ submissions till the end of this week after which \"Pull Requests\" feature will get \"disabled\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Looking ahead\n", "\n", "Given the wide range of preparedness for this course, the amount of information you have observed and new skills you have learned will vary, but I hope that they layed a good foundation for your current and future \"coding\" endeavors.\n", "\n", "**Understanding**\n", "\n", "I hope that now you can better understand (when desired/necessary) \"how things work\" by looking at Python code and organization of other projects written in Python or even other languages.\n", "\n", "**Contributing** \n", "\n", "You should have got necessary familiarity with workflows to contribute to any other project on GitHub -- procedures are exactly the same as they were for submitting your homeworks. \n", "\n", "**Improving**\n", "\n", "Remember, that **you can't learn programming simply by listening or blindly retyping the code you might see**.\n", "\n", "To become more proficient you need to \n", "\n", " - write your own code\n", " - get *puzzled* from time to time\n", " - read and analyze code of others\n", " - challenge your code with rudimentary and *interesting* test cases\n", " - validate results of your analyses" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Ad-hoc selection of other useful Python projects to consider learning/using\n", "\n", "- Other stimuli delivery toolkits:\n", " - [Expyriment](http://www.expyriment.org) -- script-based experiment development\n", " - [Opensesame](http://www.cogsci.nl/software/opensesame) **ND** -- graphical experiment builder, which can use PsychoPy or Expyriment in the background\n", "\n", "- Data visualization and analysis\n", " - [PyMVPA](http://www.pymvpa.org) **ND** -- multivariate methods for neural data, for which we have just had a two day bootcamp (See also its [Similar or Related projects](http://www.pymvpa.org/#similar-or-related-projects))\n", " - [pandas](http://pandas.pydata.org) **ND** -- efficient manipulation and analysis of tabular data:\n", " - [seaborn](http://stanford.edu/~mwaskom/software/seaborn/) **ND** - statistical data visualization. Relies on pandas' DataFrame for data organization. See [Exploring the Titanic dataset with seaborn](http://nbviewer.ipython.org/gist/mwaskom/8224591) for an example of visual data exploration\n", " - [statsmodels](http://statsmodels.sourceforge.net/) **ND** -- a wide range of statistical models and tests\n", " - [PySurfer](http://pysurfer.github.com) **ND** -- visualizing cortical surface representations of neuroimaging data. See [Galery](http://pysurfer.github.io/examples/index.html)\n", " - [nipype](http://nipy.sourceforge.net/nipype) **ND** -- uniform interfaces to neuroimaging software and computational pipelines\n", " - [DiPy](http://nipy.org/dipy) **ND** -- diffusion magnetic resonance imaging (dMRI) analysis\n", " - [PyHRF](http://pyhrf.org) -- study hemodynamics in fMRI\n", "\n", "**ND** available from/through [NeuroDebian](http://neuro.debian.net) so you are just a click away from trying them out." ] }, { "cell_type": "code", "collapsed": false, "input": [], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }