|
1 | 1 | {
|
2 | 2 | "cells": [
|
3 |
| - { |
4 |
| - "cell_type": "raw", |
5 |
| - "metadata": {}, |
6 |
| - "source": [ |
7 |
| - "---\n", |
8 |
| - "title: \"Python Tutorial 2023\"\n", |
9 |
| - "subtitle: \"17-20 April\"\n", |
10 |
| - "format: revealjs\n", |
11 |
| - "callout-icon: false\n", |
12 |
| - "jupyter: python3\n", |
13 |
| - "highlight-style: gruvbox\n", |
14 |
| - "execute:\n", |
15 |
| - " echo: true\n", |
16 |
| - " enabled: false\n", |
17 |
| - "---" |
18 |
| - ] |
19 |
| - }, |
20 | 3 | {
|
21 | 4 | "cell_type": "markdown",
|
22 | 5 | "metadata": {},
|
23 | 6 | "source": [
|
24 |
| - "## Welcome! 🐍\n", |
| 7 | + "# Welcome! 🐍\n", |
25 | 8 | "\n",
|
26 | 9 | "Hello and welcome, everyone! We’re excited that you chose to embark in this Python journey\n",
|
27 | 10 | "\n",
|
28 | 11 | "Over **four** days, we'll see a lot of Python. **Two** fundamental topics each day\n",
|
29 | 12 | "\n",
|
30 |
| - "::: {.panel-tabset}\n", |
31 |
| - "\n", |
32 | 13 | "### Day 1\n",
|
33 | 14 | "1. Basic syntax and data types\n",
|
34 | 15 | "2. Control flow, loops, and exceptions\n",
|
|
45 | 26 | "1. Modules and packages\n",
|
46 | 27 | "2. Questions, exercises, more questions...\n",
|
47 | 28 | "\n",
|
48 |
| - ":::\n", |
49 |
| - "\n", |
50 |
| - "\n", |
51 |
| - "::: {.notes}\n", |
52 |
| - "\n", |
53 |
| - "Although this is an introductory course, we will be going quite in-depth to cover as much ground as possible. Our aim is to equip you with a strong foundation in Python programming that you can build on in the future. So, let's get started!\n", |
54 |
| - "\n", |
55 |
| - ":::" |
| 29 | + "Although this is an introductory course, we will be going quite in-depth to cover as much ground as possible. Our aim is to equip you with a strong foundation in Python programming that you can build on in the future. So, let's get started!" |
56 | 30 | ]
|
57 | 31 | },
|
58 | 32 | {
|
|
63 | 37 | "\n",
|
64 | 38 | "**TL;DR:** Every morning, 9:00-13:00, on Zoom\n",
|
65 | 39 | "\n",
|
66 |
| - ". . .\n", |
67 |
| - "\n", |
68 | 40 | "More in detail:\n",
|
69 | 41 | "\n",
|
70 |
| - "::: {.incremental}\n", |
71 |
| - "\n", |
72 | 42 | "- 8:45-9:00 — Welcome, warm-up questions\n",
|
73 | 43 | "- 9:00-10:50 — Topic 1 (theory, hands-on, Q&A)\n",
|
74 |
| - "- *10:50-11:10 — Break ☕*\n", |
| 44 | + "- *10:50-11:10 — Break* ☕\n", |
75 | 45 | "- 11:10-13:00 — Topic 2\n",
|
76 |
| - "\n", |
77 |
| - ":::" |
| 46 | + "- 🥪 – Practice – Offline discussions on Slack" |
78 | 47 | ]
|
79 | 48 | },
|
80 | 49 | {
|
|
83 | 52 | "source": [
|
84 | 53 | "## How to interact\n",
|
85 | 54 | "\n",
|
86 |
| - "::: {.notes}\n", |
87 |
| - "\n", |
88 | 55 | "Each block is 20% theory and 80% hands-on. It's an online workshop, so interaction between us is **essential**\n",
|
89 | 56 | "\n",
|
90 |
| - ":::\n", |
91 |
| - "\n", |
92 | 57 | "A few tips to interact:\n",
|
93 | 58 | "\n",
|
94 |
| - "::: {.panel-tabset}\n", |
95 |
| - "\n", |
96 | 59 | "### On Zoom\n",
|
97 | 60 | "- Raise your hand 🤚 then ask\n",
|
98 | 61 | "- Write in the chat\n",
|
|
101 | 64 | "\n",
|
102 | 65 | "### On Slack\n",
|
103 | 66 | "- Ask your question in the **corresponding channel**. Use `#help` for generic questions\n",
|
104 |
| - "- Reply **in a thread** if you want to add a comment on another question\n", |
| 67 | + "- Reply **in a thread** if you want to add a comment to a question\n", |
105 | 68 | "- Use `@Sasha`, `@Simone`, `@Edoardo` if you want to mention the tutorial instructors directly\n",
|
106 | 69 | "\n",
|
107 |
| - ":::\n", |
108 |
| - "\n", |
109 |
| - "::: {.notes}\n", |
110 |
| - "\n", |
111 |
| - "Although the chat will be distributed together with the recording, Slack is much better suited to hold continued Q&A and other discussions. Please, use it.\n", |
112 |
| - "\n", |
113 |
| - ":::" |
| 70 | + "Although the chat will be distributed together with the recording, Slack is much better suited to hold continued Q&A and other discussions. Please, use it." |
114 | 71 | ]
|
115 | 72 | },
|
116 | 73 | {
|
|
134 | 91 | "source": [
|
135 | 92 | "## Exercises 🌶️\n",
|
136 | 93 | "\n",
|
137 |
| - "::: {.fragment}\n", |
138 |
| - "\n", |
139 | 94 | "For each topic we prepared a bunch of exercises to practice the concepts\n",
|
140 | 95 | "\n",
|
141 |
| - ":::\n", |
| 96 | + "In the notebooks, you will see cells like\n", |
142 | 97 | "\n",
|
143 |
| - "::: {.fragment}\n", |
144 |
| - "\n", |
145 |
| - "You will see cells like\n", |
146 |
| - "\n", |
147 |
| - "```{.python code-line-numbers=\"false\"}\n", |
| 98 | + "```python\n", |
148 | 99 | "%%ipytest\n",
|
149 | 100 | "\n",
|
150 | 101 | "def solution_to_exercise(input_arg):\n",
|
|
156 | 107 | "\n",
|
157 | 108 | "**Unless otherwise noted**, you can delete everything *below* the line starting with `def` and write your solution\n",
|
158 | 109 | "\n",
|
159 |
| - ":::\n", |
160 |
| - "\n", |
161 |
| - "::: {.notes}\n", |
162 |
| - "\n", |
163 | 110 | "The \"chili\" 🌶️ symbol estimates the effort required. In general, more chilis mean more work and thinking to solve the exercise\n",
|
164 | 111 | "\n",
|
165 | 112 | "Double-check before deleting everything in a solution's cell. There might be useful hints to solve the exercise!\n",
|
166 | 113 | "\n",
|
167 |
| - ":::" |
168 |
| - ] |
169 |
| - }, |
170 |
| - { |
171 |
| - "cell_type": "markdown", |
172 |
| - "metadata": {}, |
173 |
| - "source": [ |
174 |
| - "## Exercises 🌶️\n", |
| 114 | + "---\n", |
175 | 115 | "\n",
|
176 |
| - "::: {.callout-important}\n", |
| 116 | + "Let's look at one important detail about exercises: the variables in **your solution** you are expected to work with.\n", |
177 | 117 | "\n",
|
178 |
| - "If you tried to evaluate an exercise cell and you see the error\n", |
| 118 | + "```python\n", |
| 119 | + "%%ipytest\n", |
179 | 120 | "\n",
|
| 121 | + "def solution_longest_sequence(numbers: list[int]) -> int:\n", |
| 122 | + " \"\"\"\n", |
| 123 | + " You should treat `numbers` as a \"list of integers\".\n", |
| 124 | + " It will be already defined when you run this function\n", |
| 125 | + " \"\"\"\n", |
| 126 | + " pass\n", |
180 | 127 | "```\n",
|
181 |
| - "UsageError: Cell magic %%ipytest not found\n", |
182 |
| - "```\n", |
183 |
| - "\n", |
184 |
| - "make sure you **first** evaluate the cell with the content below\n", |
185 | 128 | "\n",
|
186 |
| - "```\n", |
187 |
| - "%reload_ext tutorial.tests.testsuite\n", |
188 |
| - "```\n", |
| 129 | + "<div class=\"alert alert-block alert-danger\">\n", |
| 130 | + " <h4><b>Important</b></h4>\n", |
| 131 | + " The input arguments to the <code>solution_*</code> function <strong>is already available</strong>. We also tell you what <strong>type</strong> you should expect: a string, an integer, a file path, or anything else.\n", |
| 132 | + "</div> \n", |
189 | 133 | "\n",
|
190 |
| - "You should find it just after the **Exercises** section heading\n", |
191 | 134 | "\n",
|
192 |
| - ":::\n", |
| 135 | + "Remember: **ask** if you need help, either on Zoom or on Slack. These four days should be a practical workshop where we can answer to most of your questions you have as a beginner Python user. Let's make the most out of this time!\n" |
| 136 | + ] |
| 137 | + }, |
| 138 | + { |
| 139 | + "cell_type": "markdown", |
| 140 | + "metadata": {}, |
| 141 | + "source": [ |
| 142 | + "## Hands-on sessions\n", |
193 | 143 | "\n",
|
194 |
| - ". . .\n", |
| 144 | + "There will be plenty of time to work on the exercises.\n", |
195 | 145 | "\n",
|
196 |
| - "::: {.callout-tip}\n", |
| 146 | + "Here's how these time slots will be organized **on Zoom**:\n", |
197 | 147 | "\n",
|
198 |
| - "There might be more exercises than time available. Don't worry, you can come back and continue any time, even after the workshop\n", |
| 148 | + "### Main room\n", |
199 | 149 | "\n",
|
200 |
| - ":::\n", |
| 150 | + "- Anyone who is not yet comfortable with Python\n", |
| 151 | + "- Walkthrough of a few challenging exercises\n", |
| 152 | + "- **Interactive**: you should participate with suggestions\n", |
201 | 153 | "\n",
|
202 |
| - "::: {.notes}\n", |
203 | 154 | "\n",
|
204 |
| - "Remember: **ask** if you need help, either on Zoom or on Slack. These four days should be a practical workshop where we can answer to most of your questions you have as a beginner Python user. Let's make the most out of this time!\n", |
| 155 | + "### Break-out rooms\n", |
205 | 156 | "\n",
|
206 |
| - ":::" |
| 157 | + "- Anyone who wants to work on their own\n", |
| 158 | + "- Discussion with someone who wants to share their code\n", |
| 159 | + "- Specific Q&A" |
207 | 160 | ]
|
208 | 161 | },
|
209 | 162 | {
|
|
0 commit comments