Verified Commit 58a1a4cb authored by Laurent Heirendt's avatar Laurent Heirendt
Browse files

remove slides that are not required

parent bdc49fa5
[
{
"filename": "index.md"
},
{
"filename": "overview.md"
},
{
"filename": "wheel.md"
},
{
"filename": "repro_crisis.md"
},
{
"filename": "whatiscode.md"
},
{
"filename": "whyCare.md"
},
{
"filename": "qualityCode.md"
},
{
"filename": "what_is_git.md"
},
{
"filename": "the_terminal.md"
},
{
"filename": "the_editor.md"
},
{
"filename": "installation.md"
},
{
"filename": "github_gitlab.md"
},
{
"filename": "configuration.md"
},
{
"filename": "cloneRepo.md"
},
{
"filename": "forks.md"
},
{
"filename": "branches.md"
},
{
"filename": "essential_commands.md"
},
{
"filename": "merge.md"
},
{
"filename": "syncFork.md"
},
{
"filename": "best_practices.md"
},
{
"filename": "thanks.md"
}
{ "filename": "index.md" },
{ "filename": "overview.md" },
{ "filename": "what_is_git.md" },
{ "filename": "the_terminal.md" },
{ "filename": "the_editor.md" },
{ "filename": "installation.md" },
{ "filename": "github_gitlab.md" },
{ "filename": "configuration.md" },
{ "filename": "cloneRepo.md" },
{ "filename": "forks.md" },
{ "filename": "branches.md" },
{ "filename": "essential_commands.md" },
{ "filename": "merge.md" },
{ "filename": "syncFork.md" },
{ "filename": "best_practices.md" },
{ "filename": "thanks.md" }
]
# Overview
1. **PART I**: Quality of computer code.
2. **PART II**: Basic git course
1. The terminal
2. The editor
3. What is `git`? What is the use of `git`? <!--(5 min)//-->
4. Installation of `git`
5. GitHub and GitLab <!--(5min)//-->
6. How do I configure `git`? <!--(5min)//-->
7. Where and how to start? <!--(5min)//-->
8. What is a fork? <!--(5min)//-->
9. What are branches?
10. The 5 essential commands (`pull` / `status` / `add` / `commit` / `push`)
11. What are merge/pull requests? <!--(10 min)//-->
12. How do I synchronize my fork?
13. Best practices
\ No newline at end of file
1. The terminal
2. The editor
3. What is `git`? What is the use of `git`?
4. Installation of `git`
5. GitHub and GitLab
6. How do I configure `git`?
7. Where and how to start?
8. What is a fork?
9. What are branches?
10. The 5 essential commands (`pull` / `status` / `add` / `commit` / `push`)
11. What are merge/pull requests?
12. How do I synchronize my fork?
13. Best practices
\ No newline at end of file
# Quality of computer code is relevant for everyone.
`This does not concern me – I am only writing documentation or a script for generating a figure that I want to publish!`
[Anonymous researcher]
<div class="fragment">
**Great**, but ...
- Figure may not be reproducible
- Figure looks different when the input data changes
- Documentation will become outdated
… actually, **EVERYONE** writing documentation, a script, or code is concerned!
<div align="center">
<img src="slides/img/snoopy.png" height="400px">
</div>
# Attributes of high-quality computer code
**Quality** of computer code can be seen as a **group of various attributes**.
High-quality computer code should be:
1. <font color="#A52A2A">**Versioned**</font>: incremental code
2. <font color="#FFA500">**Well-written**</font> (formatted, documented, commented): easy to read by a human
3. <font color="#008931">**Tested**</font>: extensively tested code
<div align="center">
<img src="slides/img/qualitybadge.png">
</div>
\ No newline at end of file
# Reproducibility crisis
<div align="center">
<img src="slides/img/reproCrisis.png">
</div>
*Baker, M., <a href="https://www.nature.com/news/1-500-scientists-lift-the-lid-on-reproducibility-1.19970">1,500 scientists lift the lid on reproducibility</a>, Nature 533, 452–454, 2016. doi:10.1038/533452a*
\ No newline at end of file
# What is computer code?
**Computer code**: Set of instructions executed by a computer
**Programming language:**: Style of writing the set of instructions (e.g., C, C++, Fortran, Python, R, Matlab, Julia, …)
**Example:**
<div align="center">
<img src="slides/img/computerCode.png">
</div>
<div class="fragment">
<div align="center"><font color="#A52A2A"><span class="fas fa-arrow-right"></span> Maybe this is not so relevant … or even, why should I care?</font></div>
# PART I
<br><br><h1>Quality of computer code.</h1><br>
<h1>Should you care? What if you didn't?</h1>
# A true story ...
<div align="center">
<img src="slides/img/wheel.png">
</div>
<table style="width:100%">
<tr>
<th width="33%" align="center">Researcher who cares about<br>quality of his code</th>
<th width="33%" align="center">Fellow researcher</th>
<th width="33%" align="center">Pi or Manager</th>
</tr>
</table>
\ No newline at end of file
# Why you should care (1)
<div align="center">
<video width="40%" controls>
<source src="slides/img/arianeLaunch.mov" type="video/mp4">
Your browser does not support the video tag.
</video>
</div>
**Aerospace Application**: First launch of Ariane 5, 1996
<font color="#A52A2A"><span class="fas fa-times-circle"></span></font> **Problem**: Rocket exploded shortly after liftoff.
<font color="#FFA500"><span class="fas fa-exclamation-triangle"></span></font> **Root cause of disaster - Software error:**
Horizontal velocity of the rocket exceeded the limits of the 16-bit signed integer value and led to overflow
Ariane 5 launched with the same software as Ariane 4 - **the code had not been tested**
# Why you should care (2)
<div align="center">
<img src="slides/img/therac.png">
</div>
**Biotechnology Application**: Therac-25 – computer controlled radiation therapy machine
<font color="#A52A2A"><span class="fas fa-times-circle"></span></font> **Problem**: Device malfunctions and delivers a lethal dose of radiation - several patients died.
<font color="#FFA500"><span class="fas fa-exclamation-triangle"></span></font> **Root cause of disaster - Software error:**
**No testing** of software before release, **lack of documentation**
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment