Zwinne Programowanie

Lekcje programowania, bazujące głównie na języku Python, bibliotekach PyGame, Matplotlib, Pillow i innych. Zależnie od poziomu grupy, na zajęciach dzieci uczą się od całkowitych podstaw programowania w Pythonie, aż po zaawansowane zagadnienia programistyczne (API, obsługa baz danych, optymalizacja kodu itp.).

W Aivola podchodzimy do nauczania programowania w sposób elastyczny, dostosowując tempo i zakres materiału do postępów oraz potrzeb każdej grupy. Nie stosujemy sztywnego programu nauczania, lecz bazujemy na przygotowanych scenariuszach lekcji, które nauczyciel może modyfikować – przyspieszać lub poświęcać im więcej czasu w zależności od dynamiki grupy. Chociaż językiem Python posługujemy się najczęściej, naszym głównym celem nie jest wyłącznie nauka jego składni. Koncentrujemy się na przekazaniu szerszego rozumienia zasad programowania i myślenia komputacyjnego, niezależnie od używanych narzędzi. Zgodnie z naszą metodyką, nawet podstawowe koncepcje, takie jak zmienne czy instrukcje warunkowe, wprowadzane są w kontekście praktycznych projektów realizowanych przez uczniów od samego początku. Istotnym elementem zajęć jest również wykorzystanie sztucznej inteligencji jako narzędzia wspierającego. Uczniowie mają z nią kontakt już podczas pierwszych zajęć, a zagadnienia związane z kulturą i etyką jej użycia omawiane są na kolejnych. Ponadto, scenariusze lekcji uwzględniają cele związane z rozwijaniem kreatywności, logicznego myślenia oraz łączą programowanie z elementami innych dziedzin nauki.

Poniżej przedstawiamy ogólny zarys zagadnień poruszanych na zajęciach dla grup początkujących w I semestrze nauki, pamiętając, że jest to jedynie przykład zakresu materiału, który może być dostosowywany.

Uczymy się przez działanie – tworzymy praktyczne projekty

Na naszych zajęciach stawiamy na praktykę. Od samego początku uczniowie angażują się w realizację konkretnych projektów. Nawet podczas wprowadzania podstawowych pojęć, takich jak zmienne czy instrukcje warunkowe, wiedza ta jest od razu stosowana do tworzenia działających programów, na przykład prostego kalkulatora, nieskomplikowanej gry czy narzędzia do rysowania. Każda lekcja stanowi nowe zadanie i okazję do zastosowania zdobytej wiedzy w praktyce.

Python jako narzędzie do realizacji projektów

Głównym narzędziem wykorzystywanym na zajęciach jest język Python, ceniony za swoje możliwości oraz stosunkowo łatwą do opanowania składnię, co czyni go dobrym wyborem dla osób rozpoczynających naukę programowania. Uczniowie nauczą się wykorzystywać jego możliwości do tworzenia różnorodnych projektów:

  • Na pierwszych zajęciach poznają podstawy Pythona i jego podstawowe możliwości.
  • Z biblioteką turtle będą tworzyć grafiki, rysując wzory za pomocą kodu.
  • Nauczą się, jak Python wykonuje operacje matematyczne, tworząc własne, bardziej zaawansowane kalkulatory.
  • Odkryją, jak przechowywać informacje w programie za pomocą zmiennych, tworząc np. prostą bazę danych.
  • Nauczą się, jak programy podejmują decyzje dzięki instrukcjom warunkowym (if), budując np. interaktywne quizy.
  • Nauczą się łączyć warunki za pomocą operatorów logicznych (and, or), tworząc bardziej złożone scenariusze.
  • Dzięki pętlom (while, for) umożliwią programom powtarzanie określonych czynności, np. wyświetlanie sekwencji czy animacji.
  • Poznają listy, jako sposób na przechowywanie wielu informacji, przydatny np. przy tworzeniu list zadań czy wyników gier.
  • Nauczą się pracować z tekstem, przetwarzając słowa i znaki.
  • Dzięki instrukcjom break i continue uzyskają większą kontrolę nad działaniem pętli.
  • Wykorzystają pętle zagnieżdżone do tworzenia bardziej złożonych struktur, np. wzorów czy tabliczki mnożenia.

Wykorzystanie sztucznej inteligencji

Podczas zajęć uczniowie uczą się wykorzystywać narzędzia sztucznej inteligencji jako wsparcie w procesie tworzenia projektów. Od pierwszych zajęć poznają praktyczne zastosowania AI w rozwiązywaniu problemów i generowaniu pomysłów. Zdobywają umiejętności formułowania zapytań do systemów AI, krytycznej analizy uzyskanych odpowiedzi oraz bezpiecznego i etycznego korzystania z tej technologii.

Nauka współpracy i prezentacji

Zajęcia w Aivola to nie tylko nauka kodowania, ale również rozwijanie umiejętności miękkich. Uczniowie często współpracują w grupach, wymieniając się pomysłami i wspólnie poszukując rozwiązań. Uczą się prowadzenia dyskusji, przedstawiania argumentów oraz prezentowania wyników swojej pracy przed grupą. Każda lekcja stwarza okazję do wymiany wiedzy i doświadczeń.

Struktura typowej lekcji

Każde 90-minutowe zajęcia mają na celu efektywne połączenie teorii z praktyką:

  • Zaczynamy od wprowadzenia i rozmowy, odwołując się do posiadanej wiedzy i określając problem do rozwiązania.
  • Następnie uczniowie pracują nad zadaniem programistycznym, samodzielnie lub w grupach. Nauczyciel wspiera ich w procesie dochodzenia do rozwiązania.
  • W trakcie pracy mogą pojawić się krótkie wyjaśnienia teoretyczne, pomagające zrozumieć nowe koncepcje.
  • Nauczyciel inicjuje dyskusje, zadaje pytania i zachęca do dzielenia się pomysłami.
  • Pod koniec niektórych lekcji wybrany uczeń lub grupa prezentuje swój projekt lub rozwiązanie, a reszta klasy może zadawać pytania i dyskutować.
  • Każde nowe zadanie bazuje na wcześniej poznanych koncepcjach, co sprzyja utrwalaniu wiedzy.

Przykładowy zakres tematów dla początkujących

Poniższa lista przedstawia przykładowe zagadnienia omawiane w ramach I semestru zajęć dla początkujących:

1 Pierwsze kroki w Pythonie: Poznanie podstaw języka i środowiska.

2 Grafika z modułem turtle: Tworzenie rysunków za pomocą kodu.

3 Python jako kalkulator: Wykonywanie operacji matematycznych.

4 Zmienne: Przechowywanie i wykorzystywanie danych.

5 Instrukcje warunkowe if: Podejmowanie decyzji w programie.

6 Logika and i or: Budowanie złożonych warunków.

7 Pętla while: Powtarzanie czynności warunkowo.

8 Pętla for: Iterowanie po sekwencjach i listach.

9 Listy: Przechowywanie i organizowanie zbiorów danych.

10 Operacje na tekście: Przetwarzanie ciągów znaków.

11 Kontrola pętli: break i continue: Modyfikowanie przepływu sterowania w pętlach.

12 Pętle zagnieżdżone: Tworzenie złożonych struktur iteracyjnych.

13 Projekty i wyzwania: Zastosowanie zdobytej wiedzy w praktycznych zadaniach.