Learner Profiles

This course is aimed towards the Master students of the various Biology curricula of the University of Vienna. The course makeup is overwhelmingly (90%) MSc students, with some PhD students attending. Most students will not have any real programming experience, with only ~10-15% of them having attended an intro to R or Python course. A broader part of the audience may have had some introduction to statistics, or been exposed to bioinformatics of some sort (30-40%). Still, the students are not confident in their programming proficiency:

Similarly, even if they do know how to program a bit, they do not know how to organize their code in scripts or programs to solve a particular problem:

A frustration that is voiced often in the course is that the students feel they don’t know where to even start when it comes to solving a problem, be it technical or conceptual. This frustration, in my experience, often mutates into a fear of trying, something that needs to be taken into account, especially when we get started on Rosalind/Advent of Code.

At the very least, the students seem somewhat convinced that using programming can help them be more efficient when working with data, or their analyses easier to reproduce. A less charitable reading of this distribution would be that the students are undecided on this topic, yet still slightly mistrustful.

This part of the course follows bash literacy and introduction to version control; its aim is mostly to teach the students algorithmic thought, problem solving, and Python syntax. In particular, after conquering the basics of Python syntax, the students will experience the following loop multiple times:

  1. Encounter a new problem.
  2. Understand the problem by breaking it down, comparing to solved problems, or drawing from previous knowledge/first principles.
  3. Formulate clear solution objectives.
  4. Sketch a solution algorithm (theoretical solution).
  5. Translate the algorithm to Python.
  6. Overcome logical/syntax errors; iterate and improve on solution.
  7. Validate solution.
  8. Look back.
  9. Log solution with a version-control system.

The experience of overcoming multiple unknown problem settings will slowly build confidence in the students. Furthermore, they will practice cooperation and improve their code comprehension skills by interacting with their colleagues and the instructor.

This course will help the students build a new, healthy relationship with programming, upon which their future interactions can be based. It will also teach them the basics of Python programming, versing them in a popular and well-supported programming language with direct applications in the life sciences. [cc-by-human]: https://creativecommons.org/licenses/by/4.0/ [cc-by-legal]: https://creativecommons.org/licenses/by/4.0/legalcode [ci]: https://communityin.org/ [coc-reporting]: https://docs.carpentries.org/policies/coc/incident-reporting.html [coc]: https://docs.carpentries.org/policies/coc/ [concept-maps]: https://carpentries.github.io/instructor-training/05-memory/ [contrib-covenant]: https://contributor-covenant.org/ [cran-checkpoint]: https://cran.r-project.org/package=checkpoint [cran-knitr]: https://cran.r-project.org/package=knitr [cran-stringr]: https://cran.r-project.org/package=stringr [dc-lessons]: https://www.datacarpentry.org/lessons/ [email]: mailto:team@carpentries.org [github-importer]: https://import2.github.com/ [importer]: https://github.com/new/import [jekyll-collection]: https://jekyllrb.com/docs/collections/ [jekyll-install]: https://jekyllrb.com/docs/installation/ [jekyll-windows]: https://jekyll-windows.juthilo.com/ [jekyll]: https://jekyllrb.com/ [jupyter]: https://jupyter.org/ [jupyterlab]: https://jupyterlab.readthedocs.io/en/stable/ [kramdown]: https://kramdown.gettalong.org/ [lc-lessons]: https://librarycarpentry.org/lessons/ [lesson-example]: https://carpentries.github.io/lesson-example/ [mit-license]: https://opensource.org/licenses/mit-license.html [morea]: https://morea-framework.github.io/ [numfocus]: https://numfocus.org/ [osi]: https://opensource.org [pandoc]: https://pandoc.org/ [paper-now]: https://github.com/PeerJ/paper-now [python-gapminder]: https://swcarpentry.github.io/python-novice-gapminder/ [pyyaml]: https://pypi.org/project/PyYAML/ [r-markdown]: https://rmarkdown.rstudio.com/ [rstudio]: https://www.rstudio.com/ [ruby-install-guide]: https://www.ruby-lang.org/en/downloads/ [ruby-installer]: https://rubyinstaller.org/ [rubygems]: https://rubygems.org/pages/download/ [styles]: https://github.com/carpentries/styles/ [swc-lessons]: https://software-carpentry.org/lessons/ [swc-releases]: https://github.com/swcarpentry/swc-releases [training]: https://carpentries.github.io/instructor-training/ [yaml]: https://yaml.org/