Skip to Main Content

Science Services

Scientific Computing

Scientific computing projects and all research require well-designed software and applications of mathematics or statistics.  See subpages for information about Python, R, Matlab, Unix (Bash Shell), Version Control, and more.

Please visit for asynchronous materials for on Python, Unix, Version Control, and more.

Research best practices are essential to protecting data and analysis and producing replicable science. 

Computing workflows need to follow the same practices as lab projects and notebooks, with organized data, documented steps, and the project structured for reproducibility. The links and summary below present a set of good computing practices that every researcher can adopt, regardless of their current level of computational skill. 

Summary of Scientific Computing Practices

Click to Expand

1. Data management  +
  1. Save the raw data.
  2. Ensure that raw data are backed up in more than one location.
  3. Create the data you wish to see in the world.
  4. Create analysis-friendly data.
  5. Record all the steps used to process data.
  6. Anticipate the need to use multiple tables, and use a unique identifier for every record.
  7. Submit data to a reputable DOI-issuing repository so that others can access and cite it.
     Learn more about support for Research Data Management at Brandeis Library
2. Software +
  1. Place a brief explanatory comment at the start of every program.
  2. Decompose programs into functions.
  3. Be ruthless about eliminating duplication.
  4. Always search for well-maintained software libraries that do what you need.
  5. Test libraries before relying on them.
  6. Give functions and variables meaningful names.
  7. Make dependencies and requirements explicit.
  8. Do not comment and uncomment sections of code to control a program's behavior.
  9. Provide a simple example or test data set.
  10. Submit code to a reputable DOI-issuing repository.
3. Collaboration +
  1. Create an overview of your project.
  2. Create a shared "to-do" list for the project.
  3. Decide on communication strategies.
  4. Make the license explicit.
  5. Make the project citable.
4. Project organization +
  1. Put each project in its own directory, which is named after the project.
  2. Put text documents associated with the project in the doc directory.
  3. Put raw data and metadata in a data directory and files generated during cleanup and analysis in a results directory.
  4. Put project source code in the src directory.
  5. Put external scripts or compiled programs in the bin directory.
  6. Name all files to reflect their content or function.
5. Keeping track of changes +
  1. Back up (almost) everything created by a human being as soon as it is created.
  2. Keep changes small.
  3. Share changes frequently.
  4. Create, maintain, and use a checklist for saving and sharing changes to the project.
  5. Store each project in a folder that is mirrored off the researcher's working machine.
  6. Add a file called CHANGELOG.txt to the project's docs subfolder.
  7. Copy the entire project whenever a significant change has been made.
  8. Use a version control system.
6. Manuscripts. +
  1. Write manuscripts using online tools with rich formatting, change tracking, and reference management.
  2. Write the manuscript in a plain text format that permits version control.

Getting Started with Scientific Computing

Data Services is available to consult on all stages of your research data lifecycle. 

Learn more about Research Data Management.