Lots of references & pointers, for the trip home.
Twitter for live-complaints:
- Unaesthetic diagrams - Latest research in linear algebra - Homework
5 levels of reproducibility defined in P. Vandewalle, J. Kovacevic and M. Vetterli, "Reproducible research in signal processing"
On Linux, git is probably installed, otherwise:
$ tree . ├── code ├── data │ ├── data1.csv │ └── data2.txt ├── results │ ├── results.csv │ └── img │ └── paper └── paper.tex
julia> ] (v1.1) pkg> activate . (JuliaNantes) pkg> instantiate
If Manifest.toml provided $\Rightarrow$ same exact configuration as when the code was written.
Otherwise $\Rightarrow$ compatible configuration with Project.toml, creates a Manifest file.
Research software moves fast, and breaks things.
Cover corner cases:
@test_throwswith expected error
What happens with limit values?
@test_throws MethodError mean(["hello"]) @test isnan(mean(Float64))
Avoid too special structure in tests Example: input always integer.
Avoid trivial "comfort" tests.
Example: copying a function implementation to test it:
@test mean(x) == sum(x) / length(x)
Examples: positivity, idempotency, existence for any input, order conservation, ...
An article about computational science in a scientific publication is not the scholarship itself, it is merely advertising of the scholarship. The actual scholarship is the complete software development environment and the com-plete set of instructions which genemted the figures.
Showcase your work, reference it in your paper.
Better something out now than some day a "perfect" library.
Find a project to contribute to
Commit & push to fork
Mathieu Tanneau's tutorial on coding for research: https://github.com/mtanneau/tutorial_airo
Jane Herriman, How to get started with Julia 1.0's package manager: https://www.youtube.com/watch?v=76KL8aSz0Sg
Read the documentation https://docs.julialang.org/en/v1/stdlib/Pkg/index.html