Skip to content

Commit 8052308

Browse files
authored
Merge pull request #6 from GatorEducator/course-websites
Course websites
2 parents 989a1a1 + e5e7666 commit 8052308

File tree

3 files changed

+89
-91
lines changed

3 files changed

+89
-91
lines changed
5.91 KB
Loading
5.86 KB
Loading

slides/course-websites/index.qmd

Lines changed: 89 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,9 @@ format:
2525
::: {.incremental style="margin-top: -0.15em;"}
2626

2727
- Course sites as **static archives** rather than **living resources**
28-
- Students view materials as **products to consume** not **projects to
29-
contribute to**, limiting learning and engagement
30-
- Interactive examples require **separate tools** or **platforms**
31-
- Content becomes **quickly outdated** without a sustainable update process that
32-
leverages **industry-standard tools**
28+
- Students view materials as **products to consume** not **projects to contribute to**, limiting learning and engagement
29+
- Interactive examples require **separate tools** or **platforms**
30+
- Content becomes **quickly outdated** without a sustainable update process that leverages **industry-standard tools**
3331

3432
:::
3533

@@ -54,71 +52,40 @@ packages like Quarto make it possible to create **interactive** and
5452

5553
::: {.fragment .fade .tight-boxed-content style="margin-top: -0.05em; margin-bottom: -0.25em; font-size: 0.8em;"}
5654

57-
- {{< iconify fa6-solid lightbulb >}} **Ultimate Goal**: Build content-focused,
58-
interactive, collaborative course sites that instructors can maintain with
59-
minimal effort
60-
- {{< iconify fa6-solid diagram-project >}} **Next Steps**: Give examples of
61-
content you can immediately use! See `https://github.com/GatorEducator/PyCon2025-EducationAndTypingSummit-Presentations` for more details!
55+
- {{< iconify fa6-solid lightbulb >}} **Ultimate Goal**: Build content-focused, interactive, collaborative course sites that instructors can maintain with minimal effort
56+
- {{< iconify fa6-solid diagram-project >}} **Next Steps**: Give examples of content you can immediately use! See [Algorithmology.org](https://algorithmology.org/) for more details!
6257

6358
:::
6459

65-
## Explore Use of the `LinkedList`
60+
## Interactive Fibonacci Sequence
6661

6762
```{pyodide}
6863
#| autorun: true
6964
#| max-lines: 10
70-
class ListNode:
71-
def __init__(self, data, link = None):
72-
self.data = data
73-
self.link = link
74-
75-
class LinkedList:
76-
def __init__(self):
77-
self._head = None
78-
79-
def addfirst(self, item):
80-
self._head = ListNode(item, self._head)
81-
82-
def addlast(self, item):
83-
if self._head is None:
84-
self.addfirst(item)
85-
else:
86-
currentnode = self._head
87-
while currentnode.link is not None:
88-
currentnode = currentnode.link
89-
currentnode.link = ListNode(item)
90-
91-
def removefirst(self):
92-
item = self._head.data
93-
self._head = self._head.link
94-
return item
95-
96-
def removelast(self):
97-
if self._head.link is None:
98-
return self.removefirst()
99-
else:
100-
currentnode = self._head
101-
while currentnode.link.link is not None:
102-
currentnode = currentnode.link
103-
item = currentnode.link.data
104-
currentnode.link = None
105-
return item
106-
107-
LL = LinkedList()
108-
LL.addfirst(3)
109-
LL.addfirst(5)
110-
print(LL.removefirst() == 5)
111-
LL.addlast(9)
112-
LL.addlast(13)
113-
print(LL.removefirst() == 3)
114-
print(LL.removefirst() == 9)
115-
print(LL.removelast() == 13)
65+
def fibonacci(n):
66+
"""Calculate the Fibonacci sequence up to n terms."""
67+
fib_sequence = [0, 1]
68+
69+
if n <= 0:
70+
return []
71+
if n == 1:
72+
return [0]
73+
74+
# Generate Fibonacci sequence
75+
for i in range(2, n):
76+
fib_sequence.append(fib_sequence[i-1] + fib_sequence[i-2])
77+
78+
return fib_sequence
79+
80+
# Calculate and display first 10 Fibonacci numbers
81+
fib_10 = fibonacci(10)
82+
print(f"First 10 Fibonacci numbers: {fib_10}")
83+
11684
```
11785

11886
::: {.fragment style="margin-top: -0.25em; font-size: 0.775em;"}
11987

120-
- {{< iconify fa6-solid robot >}} **Task**: Visualize `ListNode` and
121-
`LinkedList` and explain the `True` outputs!
88+
- {{< iconify fa6-solid lightbulb >}} **Task**: Try modifying the code to calculate more terms or implement a different algorithm!
12289

12390
:::
12491

@@ -134,78 +101,109 @@ print(LL.removelast() == 13)
134101

135102
:::
136103

137-
## The Instructor's Role
104+
## Course Roles & Contributions
138105

139-
::: {.fragment .fade-right}
106+
::: {.columns}
107+
::: {.column width="48%"}
108+
### Instructor's Role
140109

141-
- Create core course content and structure
110+
::: {.fragment .fade-right}
111+
- Create course content and structure
142112
- Establish contribution guidelines
143-
- Review and provide feedback on student submissions
144-
- Guide collaborative knowledge building
145-
113+
- Review and provide feedback
114+
- Guide collaborative learning
115+
:::
146116
:::
147117

148-
## How Students Contribute
149-
150-
::: incremental
118+
::: {.column width="4%"}
119+
:::
151120

152-
- Fork the repository and create content in their assigned folder
153-
- Write reflections and examples in simple Markdown with code
154-
- Submit a Pull Request for review and feedback
155-
- Content is automatically published when approved
121+
::: {.column width="48%"}
122+
### Student's Role
156123

124+
::: {.fragment .fade-left}
125+
- Fork repository, create content
126+
- Write reflections with code examples
127+
- Submit PRs for review
128+
- Learn from publication process
129+
:::
157130
:::
131+
:::
132+
133+
## Real World Examples
158134

159-
## Real World Example
135+
::: {.columns}
136+
::: {.column width="48%"}
137+
### [Course Website](https://algorithmology.org/)
160138

161139
::: {.fragment .fade-right}
162140

163-
- [Algorithmology.org](https://algorithmology.org/)
164-
- [Algorithmology GitHub repository](https://github.com/Algorithmology/www.algorithmology.org)
141+
![](algorithmology_website.png){width=500 fig-align="center"}
142+
:::
143+
:::
165144

145+
::: {.column width="4%"}
166146
:::
167147

168-
## Educational Benefits
148+
::: {.column width="48%"}
149+
### [GitHub Repository](https://github.com/Algorithmology/www.algorithmology.org)
169150

170-
::: incremental
171-
172-
- **Learn by Contributing**: Students practice real-world technical documentation
173-
- **Code + Context**: Code always presented with educational context
174-
- **Literate Programming**: Encourages explaining code, not just writing it
175-
- **Continuous Improvement**: Course materials evolve each semester
151+
::: {.fragment .fade-left}
152+
#### [](https://github.com/Algorithmology/www.algorithmology.org)
176153

154+
![](algorithmology_repo.png){width=500 fig-align="center"}
155+
:::
156+
:::
177157
:::
178158

179-
## Technical Advantages
159+
## Technical Advantages & Future Improvements
180160

181-
::: {.fragment .fade-right}
161+
::: {.columns}
162+
::: {.column width="60%"}
163+
### Current Advantages
182164

165+
::: {.fragment .fade-right}
183166
- **Low Barrier to Entry**: Markdown is easier than HTML/CSS/JS
184167
- **Focus on Content**: Technical details are abstracted away
185168
- **Interactive Examples**: Code runs in the browser without installation
186169
- **Full-Text Search**: Find anything across all course materials
187170
- **Developer Workflow**: Students learn how to collaborate using industry-standard tools
188-
171+
:::
189172
:::
190173

191-
## Future Improvements
192-
193-
::: {.fragment .fade-right}
174+
::: {.column width="40%"}
175+
### Future Improvements
194176

177+
::: {.fragment .fade-left}
195178
- Full browser-based IDE experience
196179
- Better error messages for WebAssembly Python
197-
- Implementation of a note taking tool, allowing students to take notes in the browser by commenting on the slides
198-
180+
- In-browser note taking and collaborative whiteboarding tools
181+
:::
182+
:::
199183
:::
200184

201185
## Why You Should Consider This Approach
202186

203187
::: incremental
204188

205189
- **Student Ownership**: Contributions create investment in the course
190+
- **Transparency**: Public materials encourage higher quality work
206191
- **Living Knowledge Base**: Materials improve rather than decay over time
207192
- **Practical Skills**: Industry tools in an educational context
208-
- **Transparency**: Public materials encourage higher quality work
209193
- **Scalability**: Works for any course size, from small seminars to large lectures
210194

211195
:::
196+
197+
::: {.fragment .fade .boxed-content style="margin-top: 1em; font-size: 0.8em;"}
198+
199+
**Contact Us & Resources**:
200+
201+
**Site**: [https://algorithmology.org/](https://algorithmology.org/)
202+
203+
**Repo**: [https://github.com/Algorithmology/www.algorithmology.org](https://github.com/Algorithmology/www.algorithmology.org)
204+
205+
**Alish Chhetri**: chhetri01@allegheny.edu
206+
207+
**Gregory M. Kapfhammer**: gkapfhammer@allegheny.edu
208+
209+
:::

0 commit comments

Comments
 (0)