Course Project

This course is designed to introduce mathematicians and scientific computing students to essential software development tools and practices. No prior programming or Linux experience required.

Difficulty Levels

Each topic is organized by difficulty level:

🟒 FOUNDATIONAL

Prerequisites: None

Essential tools every mathematician needs for computational work

🟑 INTERMEDIATE

Prerequisites: Linux basics, Git fundamentals

Collaborative development and project management

πŸ”΄ ADVANCED

Prerequisites: All previous modules

High-performance computing and automation

Course Topics

🐧 Linux

Master command-line essentials for mathematical computing.

🟒 Fundamentals

Shell basics, file operations, text processing

🟑 Remote Computing

SSH, remote access, VS Code Remote-SSH

πŸ”€ Git & GitHub

Track changes in LaTeX documents and collaborate on research projects.

🟒 Git Basics

Version control fundamentals, repository management

🟒 GitHub Basics

Essentials, issues, getting started

🟑 Collaboration

Branching, merging, pull requests

πŸ”΄ Automation

GitHub Actions, CI/CD workflows

πŸ’» VS Code

Set up your integrated development environment for mathematical work.

🟒 Getting Started

Installation, basic usage, extensions, configuration

πŸ““ Jupyter Notebooks

Interactive computing for mathematical research and teaching.

πŸ“¦ Containers

Create reproducible environments for mathematical computing.

🟑 Docker Fundamentals

Containers, images, Dockerfile, Docker Compose

πŸ”΄ HPC Containers

Apptainer/Singularity, HPC deployment

πŸ“‹ Project Management

Apply project management to mathematical research and thesis projects.

🟑 Fundamentals

Project phases, practical examples

🟑 Tools & Methods

Gantt charts, Agile practices, GitHub integration

πŸ”„ CI/CD

Automate testing, building, and deployment of mathematical software.

πŸ”΄ Platforms

GitLab CI/CD, GitHub Actions

πŸ“Š Visualization

Create interactive visualizations for research results.

πŸ”΄ Web Dashboards

Dash, Plotly

Quick Start

🎯 Students

Don’t jump straight into modules! Start with the Prerequisites & Self-Assessment to find your optimal starting point.

πŸ’¨ In a hurry? β†’ πŸš€ Quick Start Guide

πŸ‘©β€πŸ« Instructors

Check out the πŸ“š Instructor Guide with week-by-week curriculum, assessment strategies, and teaching tips.

Questions? Join us on Slack