E: Scientific coding
About |
Questions |
Video Intro |
Reading |
Aalto |
|
---|---|---|---|---|---|
E60 Modular code development |
Break your large programs into small problems by separating aspects of desired functionality to different sub-modules. |
>How to divide code into independent modules? >What are pure functions like? |
>Python example of breaking code into small components |
>Lesson on Modular code development by CodeRefinery |
|
E61 Software testing |
It is important to ensure that your program performs effectively and without failures. Adding tests for your software can save a lot of your time later. |
>How to test code on different levels? >What kind of testing tools are there? |
>Software testing fundamentals by Software Carpentry |
>Lesson on testing by CodeRefinery |
|
E62 Profiling |
Code efficiency is critical especially in HPC. Learn to measure the performance of your programs. |
>What is profiling used for? |
>Profiling Python code with cProfile |
>Profiling tools for Linux >Profiling for C and Python >An intro article on Ruby and Python’s profilers |
Triton profiling guide |
E63 Debugging |
Detect, investigate and resolve bugs. |
>How to debug different types of errors? |
>Debugging strategies |
>Debugging in a nutshell. >See Triton’s debugging guide >A hands-on tutorial on pdb debugger |
|
E02 Software Licensing |
Sharing your work can be very beneficial. Take a look at social coding and software licensing. |
>What is free software? >Why should you share your code? |
>Brief introduction to differences between open and closed source software |
>Lesson on social coding by CodeRefinery >Brief guide to licensing |
|
E04 Documentation |
Document your project so other people can easily use the code and even contribute to it. |
>What should be included in a documentation? |
>Documentation with Sphinx |
>Tools for documentation >CodeRefinery lesson on documentation |
|
E03 Reproducible research |
How different tools can improve reproducibility. |
>Which tools can help with reproducibility? |
>What is reproducible research |
>Lesson by CodeRefinery |