Part IV · Essential tools
Part IV · Essential tools
The digital ecosystem of a computational thesis
The editor, version control, document system, notebooks and typesetting that a computational thesis runs on, and how to make the whole setup reproducible on another machine.
4.1 Visual Studio Code
Visual Studio Code (VS Code) is a versatile and robust integrated development environment (IDE) ideal for scientific research and writing. Begin by downloading VS Code from the official website and performing an initial setup tailored to academic workflows. Install and configure essential extensions:
- Markdown All-in-One: simplifies markdown editing, previewing, and formatting.
- GitLens: integrates powerful Git version control directly into your IDE.
- LaTeX Workshop: essential for working seamlessly with LaTeX documents.
- Python or R Extensions: critical for running and debugging code within the IDE.
Customize your VS Code workspace to improve productivity by setting keybindings, themes, and workspace-specific settings aligned with your project’s needs.
4.2 Git and GitHub
Mastery of Git and GitHub significantly enhances project management, collaboration, and reproducibility in academic projects. Start by creating a GitHub repository for your TFG. Maintain best practices by committing changes frequently with clear, descriptive commit messages. Utilize branches effectively to manage different aspects of your project, merging these thoughtfully back into the main branch after thorough review.
GitHub also facilitates collaboration, enabling your supervisor or peers to review your progress or contribute directly to your project. Additionally, GitHub Pages allows you to easily publish a project portfolio or personal academic webpage, increasing your visibility within the academic community.
4.3 Quarto
Quarto is an advanced tool integrating narrative text and executable code, perfect for preparing academic documents and presentations. With Quarto, you can seamlessly embed Python, R, or Julia code directly into markdown documents, automatically generating results and figures.
You can easily create professional documents, interactive websites, academic articles, or dynamic presentations. Quarto supports multiple output formats like PDF, HTML, and interactive web pages, significantly streamlining your academic publication process and enhancing reproducibility.
4.4 Jupyter and Quarto Notebooks
Jupyter Notebooks combined with Quarto offer a powerful platform for interactive data analysis, visualization, and scientific reporting. Write, execute, and document your code alongside explanations in a structured notebook format, clearly demonstrating your analytical workflow.
These notebooks can be exported effortlessly into polished documents, whether PDF or HTML, making them ideal for both internal documentation and formal presentations of results. Using Jupyter within Quarto ensures your analyses are clear, reproducible, and easily shareable with peers or evaluators.
4.5 LaTeX and Markdown
Proficiency in LaTeX and Markdown is invaluable for effective scientific communication. LaTeX excels at precise formatting of complex equations, figures, and structured documents, making it ideal for physics reports. Markdown, particularly in Quarto, simplifies document preparation, integrating seamlessly with executable code chunks.
Choose appropriate document templates adhering to citation styles like IEEE or APA, ensuring consistency and professional quality in your academic outputs. Familiarize yourself with both formats to enhance your efficiency and flexibility across different writing tasks.
4.6 Interoperability and Cross-Platform Development
Ensuring consistent operation across multiple devices and operating systems is critical in collaborative and reproducible research. Set up standardized computational environments using Python virtual environments (venv, Conda) or R environments (renv). Clearly document and manage dependencies, ensuring that your analyses run smoothly on Windows, macOS, and Linux.
Optionally, explore Docker as an advanced solution to encapsulate your entire computational environment, guaranteeing absolute reproducibility regardless of the underlying platform. Learning to manage these tools proficiently will significantly enhance your project’s robustness and long-term sustainability.