OxfordRSE / gutenberg

https://oxfordrse.github.io/gutenberg
BSD 3-Clause "New" or "Revised" License
4 stars 5 forks source link

typescript script to generate markdown table of courses #43

Open martinjrobins opened 1 year ago

martinjrobins commented 1 year ago

https://github.com/UNIVERSE-HPC/course-material/issues/20

martinjrobins commented 1 year ago
Theme Course Description
Software Architecture and Design Procedural Programming Procedural Programming is based around the idea that code should be structured into a sequence of procedures that operate on data. This course will introduce you to the basics of procedural programming in either Python or C++.
Object-Orientated Programming The Object Oriented Paradigm builds upon the Procedural Paradigm, but builds code around data. This course will introduce you to the basics of Object Oriented Programming in either Python or C++.
Functional Programming Functional Programming is based around the idea that programs are constructed by applying and composing/chaining functions. This course will introduce you to the basics of functional programming in either Python or C++.
Technology and Tooling The Bash shell The Bash shell is a command-line interface used in Unix-based operating systems such as Linux and macOS. This course will introduce you to the basics of using the Bash shell.
Version Control This course introduces the basics of version control using the Git version control system. We will learn how to setup Git, and use it to track changes in our code.
Packaging and Dependency Management This course introduces the basics of packaging and dependency management in Python and C++. For Python, we introduce venv for virtual envronments, and pip for package management and how to structure a modern Python package and publish it to PyPI. For C++, we introduce the CMake build system and how use it to manage dependencies and the build process.
Best Practices
IDEs Integrated Development Environments (IDEs)provide programmers with a complete development environment to write, edit, debug, and deploy their code. This course introduces the popular VSCode IDE, both for Python and C++ development.
Visualisation and GUIs
Testing This course introduces the basics of automated testing and debugging in Python, using the Pytest framework.
Containerisation with Docker This course aims to introduce the use of Docker containers with the goal of using them to effect reproducible computational environments.
Snakemake Tutorial This tutorial introduces the text-based workflow system Snakemake.
Software Project Management Collaboration on GitHub This course will show you how to use Git for effective collaboration with others using the GitHub platform. After completion of the course, you will be able to contribute to projects on GitHub, including opening issues and pull requests.
Continuous Integration This course introduces the concept of continuous integration and how to set it up for a Python project using GitHub Actions.
High Performance Computing Introduction to High Performance Computing An introduction to high-performance computing (HPC), covering connecting to HPC resources and the slurm job scheduler.
HPC Scalability Profiling This session introduces the concept of scalability and how to profile the scalability of your code.
Introductory Courses Intro to Python This course introduces the basics of programming in Python. We will learn how to run Python code, and how to use variables, functions, and control flow. We will also learn how to use Python for data analysis and visualization.
martinjrobins commented 10 months ago
Theme Course Description
Software Architecture and Design Procedural Programming Procedural Programming is based around the idea that code should be structured into a sequence of procedures that operate on data. This course will introduce you to the basics of procedural programming in either Python or C++.
Object-Orientated Programming The Object Oriented Paradigm builds upon the Procedural Paradigm, but builds code around data. This course will introduce you to the basics of Object Oriented Programming in either Python or C++.
Functional Programming Functional Programming is based around the idea that programs are constructed by applying and composing/chaining functions. This course will introduce you to the basics of functional programming in either Python or C++.
Technology and Tooling The Bash shell The Bash shell is a command-line interface used in Unix-based operating systems such as Linux and macOS. This course will introduce you to the basics of using the Bash shell.
Version Control This course introduces the basics of version control using the Git version control system. We will learn how to setup Git, and use it to track changes in our code.
Packaging and Dependency Management This course introduces the basics of packaging and dependency management in Python and C++. For Python, we introduce venv for virtual envronments, and pip for package management and how to structure a modern Python package and publish it to PyPI. For C++, we introduce the CMake build system and how use it to manage dependencies and the build process.
Best Practices This course covers how to style your Python code, and use linters to enforce a consistant style and highlight any code that can lead to commonly encountered bugs or problems.
IDEs Integrated Development Environments (IDEs)provide programmers with a complete development environment to write, edit, debug, and deploy their code. This course introduces the popular VSCode IDE, both for Python and C++ development.
Testing This course introduces the basics of automated testing and debugging in Python, using the Pytest framework.
Containerisation with Docker This course aims to introduce the use of Docker containers with the goal of using them to effect reproducible computational environments.
Snakemake Tutorial This tutorial introduces the text-based workflow system Snakemake.
Software Project Management Collaboration on GitHub This course will show you how to use Git for effective collaboration with others using the GitHub platform. After completion of the course, you will be able to contribute to projects on GitHub, including opening issues and pull requests.
Continuous Integration This course introduces the concept of continuous integration and how to set it up for a Python project using GitHub Actions.
High Performance Computing Introduction to High Performance Computing An introduction to high-performance computing (HPC), covering connecting to HPC resources and the slurm job scheduler.
HPC Scalability Profiling This session introduces the concept of scalability and how to profile the scalability of your code with an increasing number of cores.
Introductory Courses Intro to Python This course introduces the basics of programming in Python. We will learn how to run Python code, and how to use variables, functions, and control flow. We will also learn how to use Python for data analysis and visualization.
Libraries Intro to PyBaMM This course introduces the basics of PyBaMM (Python Battery Mathematical Modelling), an open-source battery simulation package written in Python. We will learn how to run PyBaMM models for various parameters and operating conditions. We will also learn how to process and visualise the outputs of the models.
steve-crouch commented 10 months ago

@martinjrobins the summaries look really good from my side. A few minor things: