Course manual 2021/2022

Course content

The ability to create, understand and scrutinize computer code is an extremely important skill set throughout academia, but especially so in interdisciplinary work. Computer code and, more generally, computational thinking, forces us to follow standards, be precise in definitions and be explicit about what we assume and what we mean exactly by our concepts or models. Computational thinking enhances our ability to exchange and link ideas, knowledge and data across disciplines.

This course is aimed at : 1) teaching basic coding skills (and some general computational skills) to get concrete scientific data and modelling tasks done, and 2) enhancing creative and critical thinking skills.

The coding skills concern data processing, visualization and the implementation of (mathematical and conceptual) models in computer code. Creative and critical thinking focuses on the translation from algorithm to code, comparison of different implementations, debugging and code documentation.

In this course, we will work with the R programming language and use the RStudio development environment.

Study materials

Practical training material

  • manual at https://uva.sowiso.nl

Software

  • R and RStudio

Objectives

  • 1. explain and give examples of how the R language can be applied to scientific problems
  • 2. operate an integrated development environment (RStudio) to check code, run code and analyse data
  • 3. apply basic R syntax to run a script, document what it does, and view its output
  • 4. implement basic mathematical calculations in code
  • 5. implement basic data manipulation tasks (selecting, merging, aggregating, sorting) in code
  • 6. handle date-time data, spatial data and text data and implement basic data manipulation tasks on these data types
  • 7. import and parse different data formats into R
  • 8. create appropriate figures to visualise data
  • 9. implement and simulate a simple ODE model based on a mathematical description
  • 10. implement and conduct simple linear algebra calculations based on a mathematical description
  • 11. enhance code by removing repetitive parts and turning it into modular code
  • 12. create a script to implement a given algorithm (in text, pseudo-code and/or mathematical notation)
  • 13. troubleshoot obvious programming problems ("bugs") like non-closure of a loop, wrong input arguments to a function, incorrect syntax
  • 14. explain what the ADVerTS practices (Lee et al., 2021) are and how these contribute to the reliability and reproducibility of scientific outputs
  • 15. apply good practices for coding (writing, organization, documentation) and project organization (folder structure, file naming and file management) according to Wilson et al. (2017)

Teaching methods

  • Self-study
  • Lecture
  • Computer lab session/practical training

There are weekly lectures where overarching concepts are explained and an overview of the material for the coming week is provided. To acquire R coding skills and get sufficient practise, students will complete the exercises at  https://sowiso.uva.nl by self study and during computer practicals (two per week). During practicals, students get additional explanation on the material and can ask questions. Attendance to the practical is compulsory.

Learning activities

Activity

Hours

 

Digitale Test

4

 

Computer tutorials

28

 

Lectures

8

 

Self study

44

 

Total

84

(3 EC x 28 uur)

Attendance

Programme's requirements concerning attendance (OER-B):

  • Participation in fieldwork is compulsory and cannot be replaced by assignments or other courses.
  • In case of practical sessions, the student is obliged to attend at least of 90% of the sessions and to prepare himself adequately, unless indicated otherwise in the course manual. In case the student attends less than 90%, the practical sessions should be redone entirely.
  • In case of tutorials/seminars with assignments, the student is obliged to attend at least 7 out of 8 seminars and to prepare thoroughly for these meetings, unless indicated otherwise in the course manual. If the course has more than 8 seminars, the student can miss up to 1 extra meeting for every (part of) 8 tutorials/seminars. If the students attends less than the mandatory tutorials/seminars, the course cannot be completed.

Additional requirements for this course:

For all students (students who follow this course for the first time as well as those who have to retake the course) the computer practicals are compulsory, regardless whether these are online or on-campus. Only 1 of the 8 practicals can be missed.

Assessment

Item and weight Details

Final grade

1 (100%)

Tentamen

This course assessed by a single graded exam at the end of the course, which makes up 100% of the assessment. The exam will contain the same kind of programming problems as those studied during the course.

Assessment diagram

Learning goal: importance of exam:
#1. implicitly covered everywhere
#2. implicitly covered everywhere
#3. implicitly covered everywhere
#4. 0.1
#5. 0.1
#6. 0.1
#7. 0.1
#8. 0.1
#9. 0.1
#10. 0.1
#11. 0.1
#12. 0.5
#13. 0.5
#14. 0.5
#15. 0.5

 

Students that were enrolled in the course in previous years

Students who were enrolled in the course in previous years are advised to attend all computer practicals, but attendance is not mandatory for them.

Assignments

Students complete project assignments during self-study as well as during the practicals. Each project uses examples from ecology, earth, and environmental sciences to carry out a programming task.

Fraud and plagiarism

The 'Regulations governing fraud and plagiarism for UvA students' applies to this course. This will be monitored carefully. Upon suspicion of fraud or plagiarism the Examinations Board of the programme will be informed. For the 'Regulations governing fraud and plagiarism for UvA students' see: www.student.uva.nl

Course structure

Week nr Topics SOWISO Chapters
1 data types, operators; data I/O 1 and 2
2 data manipulation; visualization 3 and 4
3 control structures, functions; implementing algorithms 5 and 6
4 numerics and simulation models; revision 7 and 8

Timetable

The schedule for this course is published on DataNose.

Honours information

-

Additional information

https://datanose.nl/#course[48612]

Last year's course evaluation

Compared to the material from last year, new exercises have been created.
Also overview-lectures to provide an overview of the course are added.

Contact information

Coordinator

  • dr. ir. E.E. van Loon

Staff

  • Jens van Erp
  • Emma Polman
  • Rosa Rougoor