# Introduction to COMP0233
## Who are we?
### Instructors
All of us are working at the Research Software Development group at UCL's [Advanced Research Computing Centre](https://www.ucl.ac.uk/arc/).
- **David Pérez-Suárez**, a solar-physicist :sun_with_face: converted into a Research Software Engineer. Co-created [sunpy](https://sunpy.org) and [OpenAstronomy](https://openastronomy.org/).
- **Stef Piatek**. Molecular biologist and after some time working as a bioinformatician in clinical genetics, now writing software more generally. Mostly working on healthcare and life sciences projects.
- **Alessandro Felder**. Computational Scientist, used to work on [analysing images of bones](https://bonej.org/) :microscope: :meat_on_bone: before becoming an RSE and starting to work on various bio- or imaging-related projects.
### Helpers
- **Emily**
- **Beatrice**
- **Paul**, a computational physicist who as of two days ago is an RSE in the medical imaging group. I've previously worked on simulating lipids and proteins to understand how they function, and creating software for cardiologists researching arrhythmias.
- **Anastasis Georgoulas**. I used to look at stochastic models and machine learning :computer: :chart_with_upwards_trend:, now work on projects across many disciplines.
- **Ruaridh**
- **Dimitra**
- **Idil**
- **Matthew Cheng**: CDT PhD student in data-intensive science, working on using ML methods to speed up post-mission analysis in space missions, in particular magnetospheric boundary detection at Saturn 🪐 using Cassini.
- **Paddy**: Previously took this course as PhD student in the [CDT DIS](https://www.hep.ucl.ac.uk/cdt-dis/) where I developed signal processing methods to handle analysis of data on incomplete manifolds. I've worked as a Research Software Engineer in ARC for about a year. My job comprises a mix of software and infrastructure work, mainly focused on medical imaging projects.
## How will this course work?
- **Flipped classroom** - Today will be the only exception to this as it will be more of a lecture. For next sessions we will specify on Moodle which material to read, the time we estimate it should take, what exercises to do, etc.
- **Zoom** sessions to host activities that we will run every Thursday from 09'00 to 12'00
- We will have 2 breaks each day: ~09:55 - ~10:05 and ~10:55 - ~11:05.
- :black_circle_for_record: recordings? Only the "lecture" and general discussions will be provided, small group activities won't be recorded (i.e., only will be available what happens as the whole class activity).
- **monotasking**
:::spoiler Do you mean multitasking?

From [mindfulnessbox.com](https://mindfulnessbox.com/monotasking/)
[**Dangers of Context Switching** ](https://benjaminspall.com/monotasking/#the-dangers-of-context-switching)- every time we switch between doing our work and "check X" we experience a “transaction cost” that drains our energy and slows us down

Don't get distracted (it's contagious and inconsiderated to your peers and our work)
:warning: - Online people too!
Wait till a break or if it's urgent get out of the classroom
:::
- **Moodle** will be our hub of information, our ground truth.
- Announcements forum: where we will post any important information
- Q&A forum: for you to ask (and answer) anything during the whole course
- **Assignments**
- 50% individual assignment (git, python, testing and data) - ~16th Nov (after Reading week)
- 50% group assignment (git, python, testing, data, packaging, project management, performance) - ~18th Jan (2 weeks after Xmas break)
- We will use GitHub for the group work but submissions have to be made via Moodle.
- Week sections: where you will find what's plan for the week and any extra information after the session finishes
## What is/isn't this course about?
| :heavy_check_mark: | :X: |
| -------- | -------- |
| Version Control | :snake:Python |
| :keyboard: Write software |Use of :package: x (eg. pandas, tensorflow,...)|
| :floppy_disk: Research Data | Data science |
| Write tests :heavy_check_mark: :negative_squared_cross_mark: | |
| :bookmark_tabs: Document software | |
| :package: Create installable software||
| Optimisation ||
| | |
|... with Python :snake: | |
### How does it fit together?
Let's take a trip to a piece of research software... scikit-image [watershed](https://github.com/scikit-image/scikit-image/blob/main/skimage/segmentation/_watershed.py#L95)
- version control (history/blame)
- tests (and CI)
- documentation (function + package + website)
- package for its distribution
- collaboration and project management
- optimisation
### Review of the survey
```mermaid
pie title Operating Systems
"Windows" : 28
"Mac" : 12
"Linux" : 1
```
- Detailed questions on Moodle
# Questions
Here you can post any question you have while we are going through this document. A summary of the questions and the answers will be posted in moodle after each session. Please, use a new bullet point for each question and sub-bullet points for their answers.
For example writing like this:
```
- Example question
- [name=student_a] Example answer
- [name=TA_1] Example answer
```
produces the following result:
- Example question
- [name=student_a] Example answer
- [name=TA_1] Example answer
Write new questions below :point_down:
- [name=studentba]
- ...
###### tags: `COMP0233` `teaching` `guides`