Programming can serve multiple purposes. Purposes like developing applications and working with data are also very useful for research. For dealing with these issues, Python offers many libraries. Getting the skills of working with some of these libraries will enable future learning.
This can be for more advanced programming applications, but also for self-learning to apply different libraries.
After the course, students should be able to:
• create a computer program based on a given basic algorithm expressed in plain English;
• adapt and combine standard algorithms to solve a given problem (includes numerical as well as non-numerical algorithms);
• detect and repair coding errors in a given piece of programming code; use existing libraries taught during the course in programs, e.g., for data manipulation and visualization (Numpy, Pandas and Matplotlib);
The following programming principles, in general and/or in Python:
• Basic types: float, integer, string, list, tuple, dictionary
• Conditionals: if-elif-else structures
• Functional programming
• Iterating: loops for a known and an unknown number of iterations
• Text formatting: string formatting
File handling: reading to and writing from txt-files
This is reflected in the following materials: Think Python chapters 1 through 14
Textbook (for preparation):
Think Python, how to think like a computer scientist, by Allen B. Downey, available on-line at: https://greenteapress.com/wp/think-python-2e
Also available as printed book: 2nd edition by O'Reilly, ISBN: 978-1-491-93936-9. There will be a number of copies available in the WURshop (StudyStore) for about 39 EUR.
Software:
Materials on Brightspace:
Official documentation of logging (docs.python.org), numpy, pandas and pyplot. Links in Brightspace.
Software libraries (modules). Modern programming languages consist of a relatively small core and many additional parts. Those additional parts are called libraries or (especially in Python) modules. The course teaches how to use a number of the modules that come with Python, and also how to define your own modules.
Some of the most relevant libraries have to do with data. In particular, dealing with array-like data is possible in Python, but the mathematical capabilities are limited. Using Numpy allows more efficient and intuitive use of array-like data. Many data formats are tabular, such as excel files, cv-files, json-files. Dealing with these kinds of data in Python is easily done using pandas.
Using pandas allows easy data manipulation and a link to Python, which means programming functionalities can be used on such data files.
Visualizing data unlocks value and insight data written or tabular data can not. Using Pyplot, many visualization options are available. Being familiar with this library enables the making of proper plots and is also a stepping stone to the use of more advanced plotting libraries.
• Day 1: Programming for research and data science introduction (morning). Refresher on basic principles of programming (in Python) (afternoon).
• Day 2: Data structures and data sources (morning). Array-like (numpy) and tabular (pandas) data (afternoon).
• Day 3: Data manipulation and handling (numpy and pandas) (morning) and data visualization (pyplot) (afternoon).
• Day 4: Debugging and Error handling in Python (morning). Recap and assignment for handing in (afternoon).
• Day 5: Bring your code. Discussing the relevant programming problems of course participants. Introduction and group discussions (morning) and plenary discussions and processing of findings (afternoon).
During the first day of the course, the morning will be a plenary session discussing relevant programming knowledge, the uses of programming in research and data science and course information. During the afternoon, an individual practical will be offered with refreshment exercises to test the programming skills which are assumed knowledge. Days two, three and four will have a structure like the following: brief plenary introduction (30-45 minutes) followed by hands-on coding assignments (2.5 to 3 hours). Some of these will be discussed plenary, whilst other are individual work. During the final day, a mix of plenary and group discussions combined with individual work time to work on brought in problems will be offered. Supervision will be available during all five days to offer support when needed. The course will be spread over two weeks: 3 full days in the first week and 2 full days in the second week.
Target Group | The course is aimed at PhD candidates and other academics |
Group Size | 20-30 people |
Course duration | 5 days spread over 2 weeks |
Language of instruction | English |
Number of credits | 1.5 ECTS |
Lecturers | See above |
Prior knowledge | See above |
Location | Wageningen Campus |
Options for accommodation | Accommodation is optional in this course. We can book a room for you at the venue, but you can also make your own arrangements elsewhere, or spend the nights at home. Do note that there is quite an intense evening programme, though. There are several possibilities for overnight stay in Wageningen. For information on B&B's and hotels in Wageningen please visit proefwageningen.nl. Another option is Short Stay Wageningen. Furthermore Airbnb offers several rooms in the area. Finally, there is also a very active public Facebook group called “Wageningen Student Plaza”, where rooms are often offered for short-term sublets, but where one could also easily post a request for renting a room for a week in Wageningen. Finally, note that besides the restaurants in Wageningen, there are also options to have dinner at Wageningen Campus.. |
Dr. Sanja Selakovic
Email: sanja.selakovic@wur.nl
At this moment, this course is not scheduled yet. However, if you register your interest in this activity below, we will inform you as soon as the course is scheduled and registration of participation is opened.