¿Cuál debería ser el enfoque para reforzar la programación y las habilidades informáticas para un programa de investigación en ciencias cognitivas y neurociencias?

He estado investigando en neurociencia cognitiva durante los últimos 6 años. Esta es la tendencia general que veo con respecto a la frecuencia de uso:

MATLAB >= Linux/UNIX cli > Shell Scripting > Python > R

Idealmente, uno estaría familiarizado con las 5 herramientas, pero si tuviera un tiempo limitado, daría prioridad de izquierda a derecha.

Muy pocos científicos cognitivos y neurocientíficos cognitivos utilizan MPI, CUDA, Mathematica y C / C ++. Un subconjunto de modeladores computacionales podría usar esas herramientas, incluido Fortran. Sin embargo, para la mayoría de nosotros, son innecesarios para la investigación que hacemos. MATLAB (y Python) ha mejorado mucho a lo largo de los años y funciona lo suficientemente rápido a pesar de ser un lenguaje interpretado. Muchas universidades también tienen suscripciones activas a la caja de herramientas de computación paralela (PCT) de MATLAB, que también tiene soporte de computación de GPU.

Personalmente, prefiero Python sobre MATLAB porque es gratis, se relaciona bien con shell env (útil si quiere usar gnuplot para figuras hermosas) y tiene soporte superior para listas de varios tipos de datos (usando el paquete Pandas). Sin embargo, MATLAB es el estándar de facto por cualquier razón, incluso para los neurocientíficos computacionales.


También vea preguntas relacionadas:

  • ¿Qué habilidades informáticas son las más valiosas en la investigación en neurociencia?
  • ¿Cuáles son las áreas de la neurociencia que se cruzan con la informática?

Puede que me equivoque, pero realmente no creo que FORTRAN sea utilizado por nadie en neurociencia. Básicamente, todo se reduce a C ++ si necesita velocidad, y Python si necesita un desarrollo rápido y fácil. Con cierta prevalencia de matlab y, en menor medida, también de mathica (pero cada vez más personas solo usan Python, a menos que necesiten algunas herramientas matemáticas realmente poderosas). Y algunos subcampos específicos tienen herramientas específicas (por ejemplo, lisp aún es muy común para la inteligencia artificial simbólica) pero no sé si es una preocupación para usted.

Si está interesado en la simulación neuronal a gran escala y / o en las técnicas de aprendizaje de máquina con gran capacidad como los algoritmos genéticos, probablemente debería echar un vistazo a las técnicas de programación paralela como multihilo y MPI. CUDA / OpenCL también son útiles.