School of Scientific Computing & Informatics · Algorithms & software engineering
Research Software Engineering
Research code that others depend on needs the habits of professional software engineering. This course teaches those habits in a form that suits scientists: practical, proportionate and focused on correctness.
Course overview
Research Software Engineering covers the practices that make scientific code trustworthy: modular design, automated tests (including tests for numerical tolerance), packaging, documentation, code review and semantic versioning.
You take an existing analysis script and turn it into a tested, documented, installable package with continuous integration, a licence and a citation file, ready to be archived with a DOI.
Learning outcomes
By the end of the course you will be able to:
- Structure code into modules with clear interfaces
- Write unit, regression and property-based tests
- Package and publish Python or R libraries
- Document code for users and contributors
- Release, license and cite research software properly
Skills you will practise
Eligibility and prerequisites
Who can apply
- Students and graduates in any science, engineering, pharmacy, medicine, agriculture, geography or computing programme (B.Sc., B.Tech., B.E., BCA, M.Sc., M.Tech., MCA, PhD)
- Researchers, faculty and working professionals in research, healthcare, biotech, pharma or IT who want to apply computing to science
- Final-year students may apply before their results are declared
Prerequisites
- Programming in Python or R
- Git basics
Best suited to
- PhD students and postdocs who write code for their lab
- Bioinformaticians maintaining shared tools
- Developers joining scientific teams
Module-wise syllabus
6 modules. Each pairs instructor-led sessions with a hands-on lab on public data.
Topics
- Functions, modules and interfaces
- Separating I/O from computation
- Refactoring safely
Topics
- Unit and regression tests
- Numerical tolerances
- Property-based testing
Topics
- pyproject.toml and R packages
- Dependencies and versions
- Publishing to PyPI or CRAN-like repositories
Topics
- READMEs, docstrings and tutorials
- Code review
- Issue and contribution workflows
Topics
- Semantic versioning and changelogs
- Licences
- CITATION.cff and Zenodo DOIs
Topics
- Refactor
- Test
- Release
Practical sessions and projects
Capstone project
Release your research software
Refactor, test, document and release a piece of real research code so that another lab can install, trust and cite it.
Assessed on the correctness of the analysis, the quality of the code and the reasoning in the write-up. A pass is required for the certificate.
- Designing research code
Refactor a long analysis script into a small library with a command-line entry point.
- Testing scientific code
Write a test suite that catches a deliberately introduced numerical bug.
- Packaging and distribution
Package the library and install it in a clean environment.
- Documentation and collaboration
Write user documentation and review a classmate’s pull request.
- Releasing research software
Prepare a versioned, licensed and citable release of the package.
- Project: from script to software
Turn a real research script into released, tested and documented software.
Software, tools and datasets
Software and tools
All software is free and open source or free for academic use. Recommended computer: 8 GB RAM, 30 GB free disk, Linux, macOS or Windows with WSL2.
Datasets
- Your own research code: Material to refactor and release.Your projects
Core reading
- Wilson G et al. (2014). Best practices for scientific computing. PLOS Biology 12:e1001745.
- Taschuk M, Wilson G (2017). Ten simple rules for making research software more robust. PLOS Computational Biology 13:e1005412.
Duration, format and fees
- Next cohort
- Dates are sent with your admission offer
- Timetable
- Three evening or weekend sessions a week (IST), plus a lab clinic; intensive and weekend-only schedules on request
- Payment
- Secure online payment link with your admission offer (UPI, cards, net banking). Instalments on request for fees above ₹15,000.
- Refunds
- See the refund and cancellation policy.
Instructor
The instructor for each cohort is named in your admission offer and on this page when the cohort is announced. Vedicgen instructors are selected for hands-on research or industry experience in the subject they teach, and every course is reviewed by a second subject expert.
Questions about who teaches a cohort? [email protected]
Certificate
Learners who complete the course and pass its capstone receive a Vedicgen certificate of completion for Research Software Engineering, issued by Vivofold, stating the guided hours and skills assessed. Each certificate has a unique ID and QR code that anyone can check.
Apply for Research Software Engineering
Apply
Send the form below. It takes about five minutes.
Review
An adviser confirms your fit and format within two working days.
Offer
You receive dates, timetable and a secure payment link.
Onboard
Set-up guide, pre-reading and joining links.
Frequently asked questions
In the live cohort, modules are taught in instructor-led sessions with a weekly lab clinic where you work on real public data with help at hand; every session is recorded. The self-paced format uses the same lessons, labs and datasets with mentor review of your capstone. Both formats end with an assessed project reviewed for the code and the science.
A laptop with at least 8 GB of RAM and about 30 GB of free disk space, running Linux, macOS, or Windows with WSL2. Installation instructions are sent before the first session, and lab clinics help with any set-up problems.
Yes. Learners who complete the course and pass its assessment receive a Vedicgen certificate of completion, issued by Vivofold. Every certificate carries a unique ID and a QR code that anyone, including an employer or admissions office, can check on the certificate verification page.
Apply with the form on this page. Live and in-person cohorts run through the year; the dates, timetable and joining details of the next cohort are sent with your admission offer and listed on this page once announced. Self-paced enrolment opens as soon as your application is accepted.
Yes. No course runs longer than four weeks, and the length is customisable: choose the standard schedule, an intensive one- to two-week schedule, weekends only, or a custom timetable. Pick your preference on the application form; colleges and teams can book their own dates.
Continue learning