Lesson 10 Portfolio & exam

10.1 Plagiarism and copying work of others

It is not allowed to hand in a pre-existing analysis as your own work. It is allowed to let yourself be inspired by existing work and copy a few lines of code from pre-existing work, as long as you provide credit to the work you are using or changing. Pay respect to the associated license if present. It is not allowed to let somebody else create your portfolio for you. All suspects or assessments of fraude or plagiarism will be reported to the Examcommittee of the Institute for Life Sciences & Chemistry

10.2 Details on exam for this course

As explained, the course will be completed with a portfolio. The portfolio needs to be hosted on a publicly accessible Gihub pages website. During a live assessment halfway trough the course, the teacher, fellow students and you will go over the portfolio together. The idea is that you provide clarifications on any questions that might arise from your portfolio. You will have to process all the feedback you receive and include the alterations in your final portfolio.

10.3 Assessment

An assessment will be planned for you to be able to elaborate on your final portfolio. Two skills are hard to show in a portfolio, and will have assessments during class. You need to pass these partial assessments and show your skill in the final portfolio.

10.4 Getting help

We are here to help you pass this course! If you need assistance on getting your portfolio in order, please let us know. We do not have all the answers though, sometimes we will merely be able to point you in a solutions direction. Make sure to look around on the internet, usually other people have encountered very similar problems and have shared how they solved them. Or they were solved on a forum and you can look at it for inspiration.

10.5 portfolio requirements

Your portfolio needs te be something that you would happily send to your current/prospective internship supervisor or boss, and linked to from LinkedIn. Something really showcasing your skills in data science for biology.

Let bij het maken van je portfolio in het algemeen op:

  • dat je alle portfolio-opdrachten er in stopt en de eisen die in die opdrachten staan goed leest… zie lijstje met criteria hieronder.
  • dat het er uit ziet als een professioneel portfolio. Laat wat zien van wat je kan. Maak gebruik van de mogelijkheden van Rmarkdown en css
  • denk aan je eigen reproduceerbaarheid, ook in je github repo’s (zie les 2)
  • zet alles niet op het laatste moment in github pages, grote kans dat er dan toch iets nog niet werkt en dan heb je geen tijd meer om het op te lossen
  • de open opdracht bestaat min of meer uit: een plan + een uitwerking. Voor beide zijn punten te halen. We willen dus graag een goed plan zien (onderbouwd, praktisch toepasbaar: waar wil je straks stage gaan lopen, wat voor werk wil je over een jaar? Waarom gaat deze skill je daarbij helpen? Hoe ga je die na deze 4 dagen verder ontwikkelen?), en een resultaat van de eerste stappen in dat plan. Dat resultaat moet iets (eigenlijk meestal een stukje zelfgeschreven code) zijn wat je zelf gemaakt hebt, anders kunnen wij nog niet zien wat je nu kan. En daar gaat een portfolio juist over. Dus de code van een tutorial in je portfolio plakken is niet goed.
  • Verwerk de feedback op je portfolio.
  • Stop minimaal alle portfolio-opdrachten in je portfolio. Andere gerelateerde skills includeren is een goed idee!
  • Deel je portfolio niet in met headers als “opdracht 1.1” en “opdracht 5”. Daar kan een potentiele werkgever niets mee. Geef inhoudelijke titels en leg ook uit wat er te zien is. Hou in je hoofd steeds in gedachten dat je dit meestuurt met een sollicitatie.

Lijstje criteria portfolio-opdrachten:

  • je kan laten zien dat je data analyses van iemand anders kan reproduceren
  • je kan de reproduceerbaarheid van een wetenschappelijke studie beoordelen en hierover rapporteren
  • Je includeert in een repo alle files (data code, documentatie) die nodig zijn om de gebruikte workflow te reproduceren
  • github wordt ingezet als uitgangsbasis voor profilering als professional
  • je houdt je aan de regels rond citeren van werk van anderen en past dit toe in een reproducible workflow
  • je werkt reproducible en open door middel van het delen van je werk in Rmarkdown en github pages
  • Je hebt een onderbouwd plan voor de vrije ruimte
  • Je hebt in de vrije ruimte een goede stap zelf gemaakt met het gaan leren van een nieuwe skill
  • Je kan R en SQL toepassen om met relational databases te werken
  • Je kan Rpackages bouwen om je werk voor jezelf en anderen reproduceerbaar te houden
  • je geeft blijk van kennis van literate progamming (RMarkdown) (inclusief goede grafieken, opmaak, parameters, tabellen, inline code, etc) en past deze toe in je werk
  • de principes van reproducible research zijn herkenbaar toegepast in de eindproducten
  • Het portfolio is een professionele weergave van wat je nu kan en wat je aan het leren bent
  • werkhouding is conform open science practice

10.6 Setting up a bookdown project and publishing it online as course portfolio

The part below will show you how to:

  1. Setup github pages
  2. Create a bookdown project
  3. Render a bookdown project to a local website
  4. Add the rendered site to your github pages

10.7 Github pages

Each account on github can be associated to one or multiple websites that are hosted on Github.com. To setup a website on Github (also called github-pages or gh-pages), we need to create a repository with a special name. For this course we will require you to upload results from the exercises and assignments results to you personal github pages. This is a hard requirement for passing this course. If you have no or an empty portfolio, you cannot pass this course

10.7.0.0.1 Exercise setup portfolio
  1. Execute the steps explained here to setup a github-pages repository called workflows-portfolio
  2. Send the url to your public portfolio address to the teachers by personal chat / email.

10.8 Bookdown

The {bookdown} R package is basically a collection of RMarkdown files, collated into a website with nice formatting and the possibility to cross reference and add citations and visualizations. The author of the bookdown is also the main author of {knitr}.

10.9 A simple bookdown example

To start with bookdown, there is a good and free resource available.

10.10 Transform your current portfolio project to a bookdown site

Over the course you will collect several Rmd files for completing the exercises and assignments. If everything went well, you have these files collected in your portfolio RStudio project, linked to a Github repo. To start building your bookdown project, use the minimal example you have seen above. Start by rendering your project using bookdown::render(). To the very least you should have an index.html file that contains the yaml definitions for your bookdown project. You can arrange the chapters by using an index in every Rmd file. Use indexes like 001_<file_name>.Rmd. When you want to add a chapter in between two chapters, this makes it easier. to achieve this.

10.11 Render the book locally

When you have build your index.Rmd file and have collected all files in the root of your project, be sure all depending data, scripts and other files such as images etc. are also present in the project. Use the guerrilla analytics logic to setup the project structure. Set the option new_session: yes in your _bookdown.yml or index.Rmd file. This prevent problems down the line. Render the book until all errors are solved. You can debud each file and error by looking at the line numbers where the rendering is causing problems.

10.12 Hosting the bookdown project in your github pages

IMPORTANT NOTE ON CONFIDENTIALITY

When hosting you portfolio on a public web address, please make sure that there is no confidential information visible in your project. Data that falls under a non-disclosure agreement for example from your projecticum may not be shared. Also, be sure not to publish any personal secrets such as passwords and tokens, inside a github repo or webpage.

Once you have sucefully rendered your bookdown to a full website, hosting can be achived by copying all html files to your Github-pages. The easiest way is to clone your github pages repo and add, commit and push all html files to your github pages repo. The website will be automatically updated after some time. You can also setup a theme for your github pages. See here for more info.

Trouble with figures not showing up? Try googling “.nojekyll file figures”.

For a complete manual on working with github pages, see the gh-pages docs

If you want to go for a full continuous integration workflow (which is highly recommended), you can follow these steps in this blog


CC BY-NC-SA 4.0 This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. Unless it was borrowed (there will be a link), in which case, please use their license.