Prerequisites

Expected and helpful background knowledge for joining an event on this topic.

Background

  • Expected: Familiarity with Git and collaborative repository platforms
  • Expected: Comfort writing small programs
  • Helpful: Experience with shared research code

Scientific code often begins as a script written to answer one question. As it is reused, extended, or shared, its structure and assumptions become increasingly important. Small functions, clear project organization, automated tests, and explicit data requirements help researchers understand what the code does and change it with greater confidence.

Why This Matters

Research software needs to support changing questions, datasets, and collaborators. Clear boundaries and small, understandable components make those changes easier to manage. Tests and validation make expectations visible and help detect problems before they propagate into an analysis.

Performance work also benefits from explicit evidence. Measuring where time is spent helps you choose improvements that address the actual bottleneck. Together, these practices help you build software that remains useful as a project grows, with an appropriate level of structure for its needs.

Python Approach

For this approach, familiarity with Python and Jupyter notebooks is required. Consult the event page for its specific setup and requirements.

Using practical scientific examples, you will organize Python projects and environments, build reusable functions, and check their behavior with pytest. You will explore ways to validate inputs and tabular data, provide informative errors, and separate interfaces from internal computations. You will also measure runtime, identify bottlenecks with profiling, and examine how data representation, disk access, compiled code, and GPU computing affect performance.

Questions We Can Explore Together

Events

Explore upcoming dates and details from previous events.

–

Reliable and Reusable Scientific Software

Starts at 4 sessions

This four-week online course develops practical skills for building scientific Python software that is easier to understand, test, and reuse. Participants organize projects and …

–

High Performance Python

Starts at 3 sessions

It is becoming critical to make neuroscience analysis workflows robust, reproducible, and scalable. In this workshop, we will use Snakemake to develop complex data analysis …

Research Data Management with DataLad

Starts at

What is all this hype about databases, and how can I use them to make my analysis work simpler? In this workshop, you’ll build databases and query them in Python and SQL using …

Technology Radar

Our view of the tools and practices relevant to this topic. Recommendation and teaching availability are separate.

Provisional positions are editorial proposals awaiting group review.

Recommendation rings

  1. Recommend
    A recommended choice for relevant research work.
  2. Explore
    Promising or used internally; suitability or teaching integration is still developing.
  3. Assess
    Worth investigating before trying or recommending.

Kinds of item

  • Libraries
  • Languages & frameworks
  • Tools & platforms
  • Practices
  • Data formats

Items in this view

Recommend

Check important behavior automatically so research code can be changed with confidence.

Recommend Provisional

Practices · Teaching

0 topics with recorded teaching · 0 recorded and scheduled offerings

Our View

Tests make scientific assumptions and expected behavior explicit, and help catch regressions as analysis code develops.

Covered in our robust software and AI-assisted development topics; individual offerings are not yet attributed to this practice.

0 past offerings · 0 upcoming offerings

Related themes: Neural Data AnalysisScientific Computing

Related topics: AI-Assisted Software DevelopmentMachine Learning(M)EEG AnalysisNeural Spike AnalysisRobust and Reusable Software

Check the shape, types, units, and assumptions of research data before using it.

Recommend Provisional

Practices · Teaching

0 topics with recorded teaching · 0 recorded and scheduled offerings

Our View

Explicit validation turns data assumptions into checks that can catch missing values, inconsistent metadata, and unexpected inputs before analysis.

Covered through data organization and robust software topics; individual offerings are not yet attributed to this practice.

0 past offerings · 0 upcoming offerings

Related themes: Neural Data AnalysisScientific Computing

Related topics: Programming and Data AcquisitionAI-Assisted Software DevelopmentArrays and Numerical ComputingCalcium Imaging AnalysisDataframes and StatisticsLocal Field Potential (LFP) AnalysisMachine Learning(M)EEG AnalysisNeural Spike AnalysisRobust and Reusable Software

Git

Distributed version control system for tracking changes in source code

Recommend Provisional

Tools & platforms · Teaching

5 topics with recorded teaching · 20 recorded and scheduled offerings

Our View

Git is the industry standard for version control, enabling researchers to track changes, collaborate effectively, and maintain a complete history of their work. It's essential for reproducible research and collaboration.

Recorded in topic offerings; consult the dated event links for availability.

19 past offerings · 1 upcoming offerings

Related themes: Scientific Computing

Related topics: AI-Assisted Software DevelopmentArrays and Numerical ComputingAutomating Research WorkflowsDeveloper EnvironmentRobust and Reusable SoftwareWebsite Development

Interactive computing environment combining code, visualizations, and narrative text

Recommend Provisional

Tools & platforms · Teaching

6 topics with recorded teaching · 17 recorded and scheduled offerings

Our View

Jupyter notebooks allow you to combine code, results, and explanations in a single document. This makes them perfect for exploratory data analysis, teaching, and creating reproducible research workflows. You can iterate quickly, visualize results inline, and document your thought process as you work.

Recorded in topic offerings; consult the dated event links for availability.

15 past offerings · 2 upcoming offerings

Related themes: Scientific Computing

Related topics: Arrays and Numerical ComputingAutomating Research WorkflowsDataframes and StatisticsDeveloper EnvironmentMachine LearningRobust and Reusable SoftwareWebsite Development

MATLAB

Programming language and numerical computing environment used in many scientific labs.

Recommend Provisional

Languages & frameworks · Teaching

2 topics with recorded teaching · 2 recorded and scheduled offerings

Our View

Relevant to researchers working with existing MATLAB analyses and numerical computing workflows. The recommendation is contextual rather than a requirement to learn it alongside every other language.

Recorded in topic offerings; consult the dated event links for availability.

2 past offerings · 0 upcoming offerings

Related themes: Scientific Computing

Related topics: Arrays and Numerical ComputingRobust and Reusable Software

NumPy

The fundamental package for scientific computing with Python

Recommend Provisional

Libraries · Teaching

8 topics with recorded teaching · 26 recorded and scheduled offerings

Our View

NumPy is the foundation of the scientific Python ecosystem. It provides powerful n-dimensional array objects and tools for working with these arrays. Nearly every scientific Python package builds on NumPy, making it essential for data analysis, numerical computing, and scientific research.

Recorded in topic offerings; consult the dated event links for availability.

21 past offerings · 5 upcoming offerings

Related themes: Neural Data AnalysisScientific Computing

Related topics: AI-Assisted Software DevelopmentArrays and Numerical ComputingCalcium Imaging AnalysisDataframes and StatisticsLocal Field Potential (LFP) AnalysisMachine Learning(M)EEG AnalysisNeural Spike AnalysisRobust and Reusable Software

pytest

Python testing framework for writing simple and scalable test cases

Recommend Provisional

Libraries · Teaching

3 topics with recorded teaching · 5 recorded and scheduled offerings

Our View

pytest makes it easy to write tests for research code, catching errors before they affect results. Its simple syntax and powerful features help ensure reproducibility and build confidence when refactoring analysis pipelines.

Recorded in topic offerings; consult the dated event links for availability.

3 past offerings · 2 upcoming offerings

Related themes: Scientific Computing

Related topics: AI-Assisted Software DevelopmentAutomating Research WorkflowsDeveloper EnvironmentRobust and Reusable Software

Python

General-purpose programming language widely used for scientific computing and research software.

Recommend Provisional

Languages & frameworks · Teaching

10 topics with recorded teaching · 33 recorded and scheduled offerings

Our View

Python combines a readable language with a mature scientific ecosystem, making it a practical default for research data analysis, automation, and teaching.

Recorded in topic offerings; consult the dated event links for availability.

26 past offerings · 7 upcoming offerings

Related themes: Neural Data AnalysisScientific Computing

Related topics: Programming and Data AcquisitionAI-Assisted Software DevelopmentArrays and Numerical ComputingAutomating Research WorkflowsCalcium Imaging AnalysisDataframes and StatisticsDeveloper EnvironmentLocal Field Potential (LFP) AnalysisMachine Learning(M)EEG AnalysisNeural Spike AnalysisRobust and Reusable Software

R

Programming language and environment for statistics, data analysis, and visualization.

Recommend Provisional

Languages & frameworks · Teaching

1 topics with recorded teaching · 1 recorded and scheduled offerings

Our View

A relevant choice for statistical and tabular analysis, especially when collaborating with R users. Choose a language that fits the research workflow rather than trying to learn every ecosystem.

Recorded in topic offerings; consult the dated event links for availability.

1 past offerings · 0 upcoming offerings

Related themes: Scientific Computing

Related topics: Dataframes and StatisticsRobust and Reusable Software

Record and reproduce the software environment used for an analysis or application.

Recommend Provisional

Practices · Teaching

0 topics with recorded teaching · 0 recorded and scheduled offerings

Our View

Declared dependencies and lock files help collaborators rerun analyses and distinguish environment changes from changes in scientific results.

Covered through our computing environment and research workflow topics; individual offerings are not yet attributed to this practice.

0 past offerings · 0 upcoming offerings

Related themes: Neural Data AnalysisScientific Computing

Related topics: AI-Assisted Software DevelopmentArrays and Numerical ComputingAutomating Research WorkflowsCalcium Imaging AnalysisDataframes and StatisticsDeveloper EnvironmentLocal Field Potential (LFP) AnalysisMachine LearningRobust and Reusable Software

Explore

C++

Compiled programming language used for performant systems, embedded devices, and Arduino development.

Explore Provisional

Languages & frameworks · Teaching

1 topics with recorded teaching · 1 recorded and scheduled offerings

Our View

C++ is useful when research software needs direct hardware control, predictable performance, or integration with embedded systems.

Recorded in topic offerings; consult the dated event links for availability.

1 past offerings · 0 upcoming offerings

Related themes: Scientific Computing

Related topics: Programming and Data AcquisitionArrays and Numerical ComputingRobust and Reusable Software

CuPy

GPU-accelerated array library with a NumPy-like interface.

Explore Provisional

Libraries · Teaching

1 topics with recorded teaching · 2 recorded and scheduled offerings

Our View

CuPy helps move suitable NumPy-style workloads onto GPUs with familiar array operations.

Recorded in topic offerings; consult the dated event links for availability.

1 past offerings · 1 upcoming offerings

Related themes: Scientific Computing

Related topics: Arrays and Numerical ComputingMachine LearningRobust and Reusable Software

Dask

Python library for parallel and out-of-core computing with familiar NumPy, Pandas, and xarray-style interfaces.

Explore Provisional

Libraries · Teaching

2 topics with recorded teaching · 2 recorded and scheduled offerings

Our View

Dask helps researchers scale analyses beyond a single in-memory array or table while staying close to the scientific Python tools they already use.

Recorded in topic offerings; consult the dated event links for availability.

1 past offerings · 1 upcoming offerings

Related themes: Scientific Computing

Related topics: Arrays and Numerical ComputingDataframes and StatisticsRobust and Reusable Software

DataLad

Tool for versioning, publishing, and sharing research datasets and analysis workflows.

Explore Provisional

Tools & platforms · Teaching

2 topics with recorded teaching · 2 recorded and scheduled offerings

Our View

DataLad helps research groups keep data, code, and provenance connected while collaborating across machines and institutions.

Recorded in topic offerings; consult the dated event links for availability.

1 past offerings · 1 upcoming offerings

Related themes: Scientific Computing

Related topics: Automating Research WorkflowsRobust and Reusable Software

DuckDB

In-process SQL database designed for analytical queries

Explore Provisional

Tools & platforms · Teaching

1 topics with recorded teaching · 1 recorded and scheduled offerings

Our View

DuckDB brings the power of SQL to your research data without the complexity of server setup. It's incredibly fast for analytical queries, works directly with Pandas DataFrames and Parquet files, and requires zero configuration. Perfect for querying large datasets that don't fit in memory.

Recorded in topic offerings; consult the dated event links for availability.

1 past offerings · 0 upcoming offerings

Related themes: Scientific Computing

Related topics: Dataframes and StatisticsRobust and Reusable Software

Version control platform for research data

Explore Provisional

Tools & platforms · Teaching

1 topics with recorded teaching · 1 recorded and scheduled offerings

Our View

GIN combines Git-like version control with storage optimized for large research datasets. It's specifically designed for neuroscience and other data-intensive fields where you need both version control and efficient handling of large files.

Recorded in topic offerings; consult the dated event links for availability.

1 past offerings · 0 upcoming offerings

Related themes: Scientific Computing

Related topics: Automating Research WorkflowsRobust and Reusable Software

GitHub

Web-based platform for hosting and collaborating on Git repositories

Explore Provisional

Tools & platforms · Teaching

5 topics with recorded teaching · 18 recorded and scheduled offerings

Our View

GitHub is the de facto standard for sharing and collaborating on code. It provides excellent tools for code review, issue tracking, and project management. Most scientific software is hosted on GitHub, making it essential for reproducible research.

Recorded in topic offerings; consult the dated event links for availability.

18 past offerings · 0 upcoming offerings

Related themes: Scientific Computing

Related topics: AI-Assisted Software DevelopmentArrays and Numerical ComputingAutomating Research WorkflowsDeveloper EnvironmentRobust and Reusable SoftwareWebsite Development

Automation platform for running tests, checks, and deployment workflows from GitHub repositories.

Explore Provisional

Tools & platforms · Teaching

1 topics with recorded teaching · 1 recorded and scheduled offerings

Our View

GitHub Actions lets research teams automate repetitive checks so shared code remains easier to trust and maintain.

Recorded in topic offerings; consult the dated event links for availability.

1 past offerings · 0 upcoming offerings

Related themes: Scientific Computing

Related topics: Automating Research WorkflowsRobust and Reusable Software

GitLab

Git-based collaboration platform for repositories, issues, reviews, project boards, and automation.

Explore Provisional

Tools & platforms · Teaching

1 topics with recorded teaching · 1 recorded and scheduled offerings

Our View

GitLab combines code hosting, project coordination, and CI/CD in one place, making it useful for research groups that need transparent collaboration around shared software.

Recorded in topic offerings; consult the dated event links for availability.

0 past offerings · 1 upcoming offerings

Related themes: Scientific Computing

Related topics: Automating Research WorkflowsDeveloper EnvironmentRobust and Reusable SoftwareWebsite Development

GitLab CI/CD

GitLab's built-in automation system for running tests, checks, builds, and deployments from repository changes.

Explore Provisional

Tools & platforms · Teaching

1 topics with recorded teaching · 1 recorded and scheduled offerings

Our View

GitLab CI/CD turns project expectations into repeatable checks, helping research teams catch broken tests, missing dependencies, and packaging problems before changes are merged.

Recorded in topic offerings; consult the dated event links for availability.

0 past offerings · 1 upcoming offerings

Related themes: Scientific Computing

Related topics: Automating Research WorkflowsRobust and Reusable Software

h5py

Python interface for reading and writing HDF5 files.

Explore Provisional

Libraries · Teaching

2 topics with recorded teaching · 2 recorded and scheduled offerings

Our View

h5py gives Python users direct access to hierarchical HDF5 datasets, including partial reads and structured metadata, which are important for large scientific data files.

Recorded in topic offerings; consult the dated event links for availability.

1 past offerings · 1 upcoming offerings

Related themes: Neural Data AnalysisScientific Computing

Related topics: Arrays and Numerical ComputingCalcium Imaging AnalysisDataframes and StatisticsRobust and Reusable Software

Python tool for measuring memory usage line by line or over time.

Explore Provisional

Libraries · Teaching

1 topics with recorded teaching · 1 recorded and scheduled offerings

Our View

memory-profiler helps researchers see where an analysis allocates memory, which is often the first step toward making large-data workflows reliable.

Recorded in topic offerings; consult the dated event links for availability.

1 past offerings · 0 upcoming offerings

Related themes: Scientific Computing

Related topics: Arrays and Numerical ComputingAutomating Research WorkflowsRobust and Reusable Software

mypy

Static type checker for Python to catch errors before runtime

Explore Provisional

Tools & platforms · Teaching

1 topics with recorded teaching · 1 recorded and scheduled offerings

Our View

mypy catches type errors before code execution through static analysis. Adding type hints to research code improves documentation, enables better IDE support, and catches bugs that would otherwise only appear during analysis runs.

Recorded in topic offerings; consult the dated event links for availability.

1 past offerings · 0 upcoming offerings

Related themes: Scientific Computing

Related topics: Robust and Reusable Software

Numba

Python just-in-time compiler for accelerating numerical functions.

Explore Provisional

Libraries · Teaching

1 topics with recorded teaching · 2 recorded and scheduled offerings

Our View

Numba can speed up numerical Python code while keeping performance work close to familiar Python and NumPy-style code.

Recorded in topic offerings; consult the dated event links for availability.

1 past offerings · 1 upcoming offerings

Related themes: Scientific Computing

Related topics: Arrays and Numerical ComputingMachine LearningRobust and Reusable Software

Platform for open and reproducible research project management

Explore Provisional

Tools & platforms · Teaching

1 topics with recorded teaching · 1 recorded and scheduled offerings

Our View

OSF provides a comprehensive platform for managing research projects openly. It supports preregistration, data sharing, and connects with many other tools (GitHub, figshare, Dropbox). It's designed specifically for research workflows and promotes transparency.

Recorded in topic offerings; consult the dated event links for availability.

1 past offerings · 0 upcoming offerings

Related themes: Scientific Computing

Related topics: Automating Research WorkflowsRobust and Reusable Software

Pandera

DataFrame validation library for checking tabular data schemas and assumptions in Python.

Explore Provisional

Libraries · Teaching

1 topics with recorded teaching · 1 recorded and scheduled offerings

Our View

Pandera makes assumptions about tabular data explicit, testable, and reusable, which helps prevent subtle data-cleaning mistakes from propagating into analysis results.

Recorded in topic offerings; consult the dated event links for availability.

0 past offerings · 1 upcoming offerings

Related themes: Scientific Computing

Related topics: Dataframes and StatisticsRobust and Reusable Software

Polars

Fast DataFrame library with eager and lazy APIs for tabular data processing.

Explore Provisional

Libraries · Teaching

1 topics with recorded teaching · 1 recorded and scheduled offerings

Our View

Polars is useful when tabular workflows need more speed, lower memory use, or lazy query planning while remaining approachable for Python users.

Recorded in topic offerings; consult the dated event links for availability.

1 past offerings · 0 upcoming offerings

Related themes: Neural Data AnalysisScientific Computing

Related topics: Dataframes and StatisticsNeural Spike AnalysisRobust and Reusable Software

PsychoPy

Open-source software for creating psychology and neuroscience experiments

Explore Provisional

Tools & platforms · Teaching

1 topics with recorded teaching · 1 recorded and scheduled offerings

Our View

PsychoPy provides precise timing control and extensive hardware support, making it ideal for behavioral experiments. Its Python-based scripting offers flexibility for complex experimental designs while maintaining millisecond-precision stimulus presentation critical for neuroscience research.

Recorded in topic offerings; consult the dated event links for availability.

1 past offerings · 0 upcoming offerings

Related themes: Scientific Computing

Related topics: Programming and Data AcquisitionRobust and Reusable Software

Pydantic

Python library for data validation and settings management using type annotations.

Explore Provisional

Libraries · Teaching

1 topics with recorded teaching · 2 recorded and scheduled offerings

Our View

Pydantic helps make research applications more explicit and robust by validating inputs, configuration, and structured data.

Recorded in topic offerings; consult the dated event links for availability.

1 past offerings · 1 upcoming offerings

Related themes: Scientific Computing

Related topics: Robust and Reusable Software

Streamlit

Framework for building interactive data applications in pure Python

Explore Provisional

Languages & frameworks · Teaching

0 topics with recorded teaching · 0 recorded and scheduled offerings

Our View

Streamlit enables researchers to quickly create interactive dashboards and web applications without web development expertise. It's ideal for exploratory data analysis, sharing results with collaborators, and building parameter exploration tools.

Recorded in topic offerings; consult the dated event links for availability.

0 past offerings · 0 upcoming offerings

Related themes: Scientific Computing

Related topics: Robust and Reusable Software

timeit

Python standard-library module for measuring execution time of small code snippets.

Explore Provisional

Libraries · Teaching

1 topics with recorded teaching · 2 recorded and scheduled offerings

Our View

timeit gives researchers a simple, repeatable way to compare small implementation choices before investing in heavier profiling or optimization work.

Recorded in topic offerings; consult the dated event links for availability.

1 past offerings · 1 upcoming offerings

Related themes: Scientific Computing

Related topics: Arrays and Numerical ComputingAutomating Research WorkflowsRobust and Reusable Software

xarray

N-dimensional labeled arrays and datasets for scientific data analysis

Explore Provisional

Libraries · Teaching

2 topics with recorded teaching · 2 recorded and scheduled offerings

Our View

Xarray extends pandas-like labels and indexing to multi-dimensional arrays, making it perfect for working with complex scientific datasets like electrophysiology recordings, imaging data, and climate data. It handles coordinates, dimensions, and metadata elegantly.

Recorded in topic offerings; consult the dated event links for availability.

1 past offerings · 1 upcoming offerings

Related themes: Neural Data AnalysisScientific Computing

Related topics: Arrays and Numerical ComputingDataframes and Statistics(M)EEG AnalysisRobust and Reusable Software

Assess

beartype

Runtime type-checking library for Python functions and methods.

Assess Provisional

Libraries · Teaching

1 topics with recorded teaching · 1 recorded and scheduled offerings

Our View

Assess whether this fits the group’s research and teaching workflows. beartype gives fast feedback when function inputs or outputs do not match the types a project claims to support, which is useful for research code that handles many arrays, tables, and configuration objects.

Recorded in topic offerings; consult the dated event links for availability.

0 past offerings · 1 upcoming offerings

Related themes: Scientific Computing

Related topics: Robust and Reusable Software

DearPyGui

GPU-accelerated Python GUI framework for high-performance interactive applications

Assess Provisional

Languages & frameworks · Teaching

0 topics with recorded teaching · 0 recorded and scheduled offerings

Our View

Assess whether this fits the group’s research and teaching workflows. DearPyGui excels at real-time visualization and interactive applications requiring high performance. Built on Dear ImGui, it provides immediate-mode GUI rendering with GPU acceleration, making it ideal for live data streaming, real-time signal processing, and interactive scientific visualizations.

Recorded in topic offerings; consult the dated event links for availability.

0 past offerings · 0 upcoming offerings

Related themes: Scientific Computing

Related topics: Robust and Reusable Software

nbdev

Framework for building tested, documented Python packages from Jupyter notebooks.

Assess Provisional

Languages & frameworks · Teaching

0 topics with recorded teaching · 0 recorded and scheduled offerings

Our View

Assess whether this fits the group’s research and teaching workflows. nbdev can help notebook-heavy projects become importable, documented, and tested packages while preserving an exploratory authoring workflow.

Recorded in topic offerings; consult the dated event links for availability.

0 past offerings · 0 upcoming offerings

Related themes: Scientific Computing

Related topics: Automating Research WorkflowsRobust and Reusable Software

Panel

Python library for creating interactive dashboards and applications from Python objects

Assess Provisional

Languages & frameworks · Teaching

0 topics with recorded teaching · 0 recorded and scheduled offerings

Our View

Assess whether this fits the group’s research and teaching workflows. Panel makes it easy to turn your Jupyter notebooks into interactive dashboards without learning web development. You can create widgets, layouts, and deploy applications directly from Python, making your analyses interactive and shareable with collaborators.

Recorded in topic offerings; consult the dated event links for availability.

0 past offerings · 0 upcoming offerings

Related themes: Scientific Computing

Related topics: Robust and Reusable Software

Let's get in touch

For tutoring, collaboration, or follow-up support, contact the team. We are happy to help you connect workshop ideas with your own research practice.

Privacy information for email contact