July 9th of 2019
Free and Practical Software for Algebraic Combinatorics 2019
A great reference: François Bergeron's talk Mathématiques Expérimentales
Two key recommendations:
A great reference: Mike Croucher's talk: Is Your Research Software Correct
Croucher's Law: I am an idiot, and I will make mistakes
We all do.
How hard does it affect us?
What can we do about it?
What was the goal? The hypothesis to be tested?
What was the process?
What artefacts were used? (software stack, …)
What was our interpretation?
To enable:
retrieving what was tried, when, what was the outcome
checking the process: is it really doing what we meant?
reproducing the process: is it still the same outcome?
reusing the artefacts for related experiments
sharing it with others!
Ideal description of the process:
Results = MyAnalysis(Data)
where MyAnalysis
:
Write the notebook as a narrative text mixing prose and computation.
Desirable features:
The logic should be easy to read by the casual scientist in your field, with no special preparation
Express what you compute rather than how
E.g. comprehensions rather than loops
Model the business objects
E.g. with Object Oriented Programming
Model the business processes
E.g. with functions
Write code in a high level language
Rationale:
Learn basic computer science skills:
Version control
git, mercurial, … +nbdime for Jupyter
Tests
sage -t file.sage
+nbval for Jupyter
Profiler
Early optimization is the root of all evil!
%prun, snakeviz, …
Debugger
pdb, …
Provide or document all artefacts:
Instant bonus: reproducibility with Binder!
Computational maths tends to be a bit different, with less reliance on data Nevertheless much of the analysis and tips in the following pages remains relevant up to adaption:
or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing