{"id":7380,"date":"2025-04-10T15:00:05","date_gmt":"2025-04-10T13:00:05","guid":{"rendered":"https:\/\/blog.rwth-aachen.de\/forschungsdaten\/?p=7380"},"modified":"2025-04-28T12:06:53","modified_gmt":"2025-04-28T10:06:53","slug":"carpentries-python-workshop","status":"publish","type":"post","link":"https:\/\/blog.rwth-aachen.de\/forschungsdaten\/en\/2025\/04\/10\/carpentries-python-workshop\/","title":{"rendered":"Carpentries Python Workshop"},"content":{"rendered":"<p><div id=\"attachment_7388\" style=\"width: 310px\" class=\"wp-caption alignright\"><a href=\"https:\/\/blog.rwth-aachen.de\/forschungsdaten\/files\/2025\/04\/IMG-20250318-WA0003.jpg\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-7388\" class=\"wp-image-7388 size-medium\" src=\"https:\/\/blog.rwth-aachen.de\/forschungsdaten\/files\/2025\/04\/IMG-20250318-WA0003-300x225.jpg\" alt=\"Carpentries Python Workshop\" width=\"300\" height=\"225\" srcset=\"https:\/\/blog.rwth-aachen.de\/forschungsdaten\/files\/2025\/04\/IMG-20250318-WA0003-300x225.jpg 300w, https:\/\/blog.rwth-aachen.de\/forschungsdaten\/files\/2025\/04\/IMG-20250318-WA0003-1024x768.jpg 1024w, https:\/\/blog.rwth-aachen.de\/forschungsdaten\/files\/2025\/04\/IMG-20250318-WA0003-768x576.jpg 768w, https:\/\/blog.rwth-aachen.de\/forschungsdaten\/files\/2025\/04\/IMG-20250318-WA0003-1536x1152.jpg 1536w, https:\/\/blog.rwth-aachen.de\/forschungsdaten\/files\/2025\/04\/IMG-20250318-WA0003.jpg 2016w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><p id=\"caption-attachment-7388\" class=\"wp-caption-text\">Source: DKZ.2R and NFDI4Microbiota<\/p><\/div><\/p>\n<p>The Software Carpentries Introduction to Python workshop on March 17 to 18, 2025, at the IT Center of the RWTH Aachen University. It was led by Jonathan Hartman from the <a href=\"https:\/\/www.dkz2r.de\/\">Rhine-Ruhr Center for Scientific Data Literacy<\/a> (DKZ.2R) and Catherine Gonzalez from the <a href=\"https:\/\/nfdi4microbiota.de\/\">NFDI4Microbiota<\/a>. This event was specifically designed for graduate students and researchers who are interested in learning Python.<\/p>\n<p><!--more--><\/p>\n<p>&nbsp;<\/p>\n<h3><span style=\"color: #00549f;\"><strong>A Collaborative Experience<\/strong><\/span><\/h3>\n<p>This was more than just a workshop\u2014it was a community-building experience. Participants were encouraged to help one another, fostering a collaborative and supportive learning environment. Using the Carpentries code of conduct, participants were encouraged to use welcoming and inclusive language, be respectful of different viewpoints and experiences to ensure the best possible experience.<\/p>\n<p>&nbsp;<\/p>\n<h3><span style=\"color: #00549f;\"><strong>What is Python<\/strong><\/span><\/h3>\n<p>Python is an interpreted language, meaning you can write code directly and see the results instantly. It&#8217;s like giving instructions to your computer to perform tasks. You write code using the Python language, and the computer executes it step by step. Python is a great programming language to get an introduction to coding as it is very logical and in simplistic spoken English.<\/p>\n<p>&nbsp;<\/p>\n<h3><span style=\"color: #00549f;\"><strong>Assessing Participant Progress<\/strong><\/span><\/h3>\n<p>To better understand the participants\u2019 starting knowledge and expectations for the training, we conducted a <strong>pre-workshop survey<\/strong>. This helped us gauge their familiarity with Python and identify key areas where they wanted to improve. After the workshop, we followed up with a <strong>post-workshop survey<\/strong> to see how their answers had changed, assess their learning progress, and gather feedback on the training experience. This provided valuable insights into the effectiveness of the workshop and areas for future improvement.<\/p>\n<p>For example, the chart below shows how participants\u2019 self-reported skills and confidence levels evolved throughout the training.<\/p>\n<p>&nbsp;<\/p>\n<div id=\"attachment_7381\" style=\"width: 615px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.rwth-aachen.de\/forschungsdaten\/files\/2025\/04\/Bild1-Phython.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-7381\" class=\"wp-image-7381 size-full\" src=\"https:\/\/blog.rwth-aachen.de\/forschungsdaten\/files\/2025\/04\/Bild1-Phython.png\" alt=\"the chart shows how participants\u2019 self-reported skills and confidence levels evolved throughout the training\" width=\"605\" height=\"243\" srcset=\"https:\/\/blog.rwth-aachen.de\/forschungsdaten\/files\/2025\/04\/Bild1-Phython.png 605w, https:\/\/blog.rwth-aachen.de\/forschungsdaten\/files\/2025\/04\/Bild1-Phython-300x120.png 300w\" sizes=\"auto, (max-width: 605px) 100vw, 605px\" \/><\/a><p id=\"caption-attachment-7381\" class=\"wp-caption-text\">Source: DKZ.2R and NFDI4Microbiota<\/p><\/div>\n<p>&nbsp;<\/p>\n<p>We also received encouraging feedback from participants:<\/p>\n<p><em>&#8220;I learned a lot from this workshop. All the staff were very kind and professional. I&#8217;d love to join another Python workshop under your organization. Thanks!&#8221;<\/em><br \/>\n<em>&#8220;Good organization, very well-structured content with understandable examples. I liked the combination of presentations and hands-on exercises.&#8221;<\/em><\/p>\n<p><em>&#8220;All instructors were very engaged and enthusiastic. They provided great examples of how best practices help in day-to-day coding.&#8221;<\/em><br \/>\n<em>&#8220;The enthusiasm from the instructors made it easier to stay engaged in the tasks.&#8221;<\/em><\/p>\n<p><em>\u00a0<\/em><\/p>\n<h3><span style=\"color: #00549f;\"><strong>What Participants Learned<\/strong><\/span><\/h3>\n<p>Over the course of two days, participants explored key programming concepts through hands-on coding exercises. Some of the main topics covered included:<\/p>\n<ul>\n<li><strong>Variables<\/strong> \u2013 Assigning values to variables and performing calculations. Variables are names for values<\/li>\n<li><strong>For Loops, Accumulator Patterns, and Conditionals <\/strong>\u2013 For loops, automate repetitive tasks by iterating through a collection of values. Accumulator patterns, repeatedly update a variable by adding or modifying its value within a loop.\u00a0 Conditionals, control the flow of a program based on certain conditions.<\/li>\n<\/ul>\n<p><em>Example:<\/em> We combined variables, loops, and conditionals to model how velocity changes over time:<\/p>\n<div id=\"attachment_7382\" style=\"width: 305px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.rwth-aachen.de\/forschungsdaten\/files\/2025\/04\/Bild-2-Python.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-7382\" class=\"wp-image-7382 size-medium\" src=\"https:\/\/blog.rwth-aachen.de\/forschungsdaten\/files\/2025\/04\/Bild-2-Python-295x300.png\" alt=\"The code snippet shows how we combined variables, loops and conditions to model how speed changes over time:\" width=\"295\" height=\"300\" srcset=\"https:\/\/blog.rwth-aachen.de\/forschungsdaten\/files\/2025\/04\/Bild-2-Python-295x300.png 295w, https:\/\/blog.rwth-aachen.de\/forschungsdaten\/files\/2025\/04\/Bild-2-Python-50x50.png 50w, https:\/\/blog.rwth-aachen.de\/forschungsdaten\/files\/2025\/04\/Bild-2-Python.png 567w\" sizes=\"auto, (max-width: 295px) 100vw, 295px\" \/><\/a><p id=\"caption-attachment-7382\" class=\"wp-caption-text\">Source: DKZ.2R and NFDI4Microbiota<\/p><\/div>\n<p>&nbsp;<\/p>\n<ul>\n<li><strong>Data Types and Type Conversion<\/strong>: Understanding different data types in Python and how to convert between them.\n<ul>\n<li>For example, data types include strings which are represented by (\u201cHaving quotes around it\u201d); Integers (1234) and many more. You can cast a value to a data type by using str(2) or int(\u201c2\u201d)<\/li>\n<\/ul>\n<\/li>\n<li><strong>Python&#8217;s Built-in Functions and Help<\/strong>: Discovering how to use Python&#8217;s built-in functions effectively and access help within the Python environment.\n<ul>\n<li>For example, common built in functions include: min(), max() which is used to find the smallest or largest value of a series of values. This works on both integers and strings<\/li>\n<\/ul>\n<\/li>\n<li><strong>DataFrames with Pandas<\/strong>: Learning to read tabular data into DataFrames using the powerful Pandas library.\n<ul>\n<li>A DataFrame is a collection of Series; The DataFrame is the way Pandas represents a table, and Series is the data-structure Pandas use to represent a column. We looked at the GDP of various European countries by reading a .csv file with the Pandas library<\/li>\n<\/ul>\n<\/li>\n<li><strong>Plotting with Matplotlib<\/strong>: Gaining hands-on experience in creating visualizations using the Matplotlib library.<\/li>\n<\/ul>\n<p><em>Example:<\/em> This short program uses pandas and Matplotlib to create a plot showing the correlation between GDP and life expectancy for 2007, normalizing marker size by population.<\/p>\n<p>&nbsp;<\/p>\n<div id=\"attachment_7383\" style=\"width: 556px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.rwth-aachen.de\/forschungsdaten\/files\/2025\/04\/Bild-4-Python.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-7383\" class=\"wp-image-7383 size-full\" src=\"https:\/\/blog.rwth-aachen.de\/forschungsdaten\/files\/2025\/04\/Bild-4-Python.png\" alt=\"\" width=\"546\" height=\"145\" srcset=\"https:\/\/blog.rwth-aachen.de\/forschungsdaten\/files\/2025\/04\/Bild-4-Python.png 546w, https:\/\/blog.rwth-aachen.de\/forschungsdaten\/files\/2025\/04\/Bild-4-Python-300x80.png 300w\" sizes=\"auto, (max-width: 546px) 100vw, 546px\" \/><\/a><p id=\"caption-attachment-7383\" class=\"wp-caption-text\">Source: Own illustration<\/p><\/div>\n<p>&nbsp;<\/p>\n<div id=\"attachment_7384\" style=\"width: 410px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.rwth-aachen.de\/forschungsdaten\/files\/2025\/04\/Bild3-Python.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-7384\" class=\"wp-image-7384 size-full\" src=\"https:\/\/blog.rwth-aachen.de\/forschungsdaten\/files\/2025\/04\/Bild3-Python.png\" alt=\"\" width=\"400\" height=\"314\" srcset=\"https:\/\/blog.rwth-aachen.de\/forschungsdaten\/files\/2025\/04\/Bild3-Python.png 400w, https:\/\/blog.rwth-aachen.de\/forschungsdaten\/files\/2025\/04\/Bild3-Python-300x236.png 300w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/><\/a><p id=\"caption-attachment-7384\" class=\"wp-caption-text\">Source: DKZ.2R and NFDI4Microbiota<\/p><\/div>\n<p>Throughout the workshop, participants engaged in <strong>live coding<\/strong> with support from Carpentries-certified instructors and workshop helpers. To complement the hands-on exercises, we also introduced broader programming concepts through short talks on:<\/p>\n<ul>\n<li><strong>The Zen of Python<\/strong> \u2013 A set of 19 guiding principles for writing clear and efficient code.<\/li>\n<li><strong>Third-Party Libraries<\/strong> \u2013 How external packages extend Python\u2019s capabilities.<\/li>\n<li><strong>Git Version Control<\/strong> \u2013 Tools for tracking changes and collaborating on code.<\/li>\n<li><strong>Clean Code Practices<\/strong> \u2013 Writing readable, maintainable code using comments, docstrings, and formatting tools.<\/li>\n<\/ul>\n<p>By the end of the workshop, participants had built a solid foundation in Python programming, equipping them with essential skills for research and data analysis. More importantly, they gained the confidence to continue exploring and applying these concepts in their own projects.<\/p>\n<hr \/>\n<p>Responsible for the content of this article is <a href=\"https:\/\/www.itc.rwth-aachen.de\/cms\/it-center\/it-center\/profil\/team\/~epvp\/mitarbeiter-campus-\/?gguid=PER-7BM8UXQ&amp;allou=1&amp;lidx=1\">Catherine Gonzalez<\/a>.<\/p>","protected":false},"excerpt":{"rendered":"<p>This entry is only available in Deutsch. Der Software Carpentries-Workshop \u201eEinf\u00fchrung in Python\u201c fand am 17. und 18. M\u00e4rz 2025 im IT Center der RWTH Aachen statt. Er wurde von [&hellip;]<\/p>\n","protected":false},"author":3675,"featured_media":7388,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"c2c_always_allow_admin_comments":false,"footnotes":""},"categories":[3,106,108,107],"tags":[887,549,888,618,29],"class_list":["post-7380","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-rwth","category-aus-der-praxis","category-berichte","category-informationen-beratung","tag-carpentries","tag-dkz-2r","tag-live-coding","tag-python","tag-workshop"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/blog.rwth-aachen.de\/forschungsdaten\/en\/wp-json\/wp\/v2\/posts\/7380","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.rwth-aachen.de\/forschungsdaten\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.rwth-aachen.de\/forschungsdaten\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.rwth-aachen.de\/forschungsdaten\/en\/wp-json\/wp\/v2\/users\/3675"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.rwth-aachen.de\/forschungsdaten\/en\/wp-json\/wp\/v2\/comments?post=7380"}],"version-history":[{"count":16,"href":"https:\/\/blog.rwth-aachen.de\/forschungsdaten\/en\/wp-json\/wp\/v2\/posts\/7380\/revisions"}],"predecessor-version":[{"id":7472,"href":"https:\/\/blog.rwth-aachen.de\/forschungsdaten\/en\/wp-json\/wp\/v2\/posts\/7380\/revisions\/7472"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.rwth-aachen.de\/forschungsdaten\/en\/wp-json\/wp\/v2\/media\/7388"}],"wp:attachment":[{"href":"https:\/\/blog.rwth-aachen.de\/forschungsdaten\/en\/wp-json\/wp\/v2\/media?parent=7380"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.rwth-aachen.de\/forschungsdaten\/en\/wp-json\/wp\/v2\/categories?post=7380"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.rwth-aachen.de\/forschungsdaten\/en\/wp-json\/wp\/v2\/tags?post=7380"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}