###### tags: `Progr@muj w zespole`
# Progr@muj w zespole
Lead:
> Innowacyjna, nowoczesna edukacja. Projektowe podejście do nauki. Praca zespołowa. Brak sprawdzianów. Odpowiedzialność za własną wiedzę.
>
> Tak, tak, wielu z nas wydaje się to być zupełnie oderwane od rzeczywistości szkolnej. Osobiście zbliżam się do 50-tki na liczniku, a pracę jako nauczyciel przy tablicy rozpocząłem w ubiegłym roku. Nie dla osławionych 11k miesięcznie; po prostu zawsze chciałem być nauczycielem, tylko los sprawił, że zostałem programistą, administratorem serwerów, product managerem, sprzątaczką, handlowcem i kim tam jeszcze... po prostu prowadzę własną działalność gospodarczą. To doświadczenie dało mi wiele i dzisiaj chciałbym przedstawić Wam moje "ostatnie dziecko":
>
> Idea projektu jest w dużej mierze oparta na metodzie Cooperative Learning rozwijanej m.in. przez Davida i Rogera Johnsonów oraz Spencera Kagana.
>
> Wszystko, aby dać młodzieży szansę na współczesnym rynku pracy.
>
> 
> Rys. - Serwis https://justjoin.it - ogłoszenia pracy dla programistów Python.
W metodzie **Uczenia się we współpracy** **(Cooperative Learning)** ucznia postrzega się jako osobę myślącą, zdolną do tworzenia własnych teorii i weryfikowania ich.
Według Spencera Kagana metoda ta opiera się na czterech podstawowych elementach wspólnej nauki:
• Pozytywna współzależność: cały zespół ustala zasady, zgodnie z którymi członkowie będą pracowali dla osiągnięcia wspólnego celu; wszyscy członkowie czują się odpowiedzialni za siebie i za zespół.
• Odpowiedzialność indywidualna: działania każdego członka mają bezpośredni wpływ na cały zespół. Wpływ ten może być pozytywny lub negatywny. Każdy członek zespołu czuje się odpowiedzialny za realizację swojego zadania na rzecz wspólnego celu.
• Równe uczestnictwo: wszyscy członkowie mają równe szanse na uczestnictwo w pracach zespołu. Bardzo ważną częścią tej zasady jest to, że praca powinna być sprawiedliwie dzielona od samego początku. Jedna osoba nie powinna mieć znacząco więcej pracy niż inna.
• Jednoczesna interakcja: wszyscy członkowie zespołu muszą się ze sobą komunikować, to znaczy: dzielić się swoimi opiniami, wyrażać emocje dotyczące pracy i wspólnie podejmować decyzje. Jeśli brakuje interakcji, zespół może się rozpaść, co uniemożliwi osiągnięcie celu.
Po zakończeniu wspólnej pracy nad zadaniem członkowie zespołu dzielą się ze sobą wrażeniami o tym, jak im się współpracowało, co było dobre, a co nie. To bardzo ważny element procesu uczenia się, pozwalający przyswoić, utrwalić i zintegrować nabytą wiedzę oraz umiejętności społeczne.
Podsumowując: uczenie się we współpracy w porównaniu z metodą tradycyjną daje uczniom możliwość bardziej efektywnego przyswajania wiedzy z konkretnej dziedziny, jak i nabywania umiejętności z obszaru rozwoju osobistego takich jak: słuchanie, mówienie, analizowanie, wyciąganie wniosków, szanowanie odmiennych poglądów, szanowanie koleżanek i kolegów, branie odpowiedzialności za siebie i swoją pracę.
----
## Grupy docelowe
Innowacja powstała z myślą o nauczycielach informatyki, którzy potrzebują gotowego rozwiązania, możliwego do zastosowania niejako „po wyjęciu z pudełka”. Materiały zostały opracowane tak, aby łatwo dało się po nich nawigować i wybrać te elementy, które potrzebne są w danym momencie. Dla szczególnie zaangażowanych i zainteresowanych wskazaliśmy też rozliczne źródła dodatkowej wiedzy i inspiracji, co pozostawia określoną swobodę działania. Opracowane zajęcia i pozostała część materiału może być stosowana na wiele sposobów i przez wielu innych użytkowników:
• podstawowe zastosowanie dotyczy wykorzystania w ramach szkolnych jednostek lekcyjnych,
• nauczyciele mogą wykorzystać je podczas prowadzenia zajęć pozalekcyjnych (np. w ramach kół zainteresowań),
• edukatorzy młodzieży mogą na bazie opracowanych materiałów stworzyć kurs zajęć o charakterze pozaformalnym (prowadzonych np. w klubach młodzieżowych, domach kultury itp.),
• materiały można adaptować również dla młodzieży z ostatnich klas szkoły podstawowej (test kompetencji został opracowany z myślą o osobach w wieku od 12 do 18 r.ż.),
• część dotycząca rozwoju umiejętności współpracy i komunikacji w zespole (przewodnik dla nauczycieli, opis badania kompetencji, wideoporady) może zostać włączona do projektów nauczycieli innych przedmiotów, którzy w oparciu o ideę uczenia się we współpracy chcą doskonalić umiejętności społeczne uczniów,
• wreszcie – młodzież może samodzielnie rozwijać swoje pasje informatyczne oraz ugruntować wiedzę z zakresu kompetencji społecznych poprzez swobodny dostęp do materiałów wideo w serwisie Diode Zone (pod adresem https://diode.zone/c/filmy_programuj_w_zespole/).
Niezależnie od tego, w jaki sposób innowacja zostanie wdrożona, jej odbiorcami są uczniowie szkół średnich w wieku 16-18 lat (z możliwością rozszerzenia na grupę wiekową 12-15 lat), tj. młodzież z liceów ogólnokształcących i klas o profilach z rozszerzonym programem informatyki oraz techników kształcących w zawodzie technik informatyk oraz technik programista. Nie ma również przeciwwskazań, aby stosować program w odniesieniu do uczniów klas pierwszych szkół średnich.
Uczestnictwo w zajęciach może ułatwić posiadanie przez odbiorców minimalnej wiedzy i umiejętności z zakresu programowania, tj. podstawowej wiedzy o konstrukcjach programistycznych lub znajomości jakiegokolwiek języka programowania tekstowego (C; Pascal; LOGO; BASIC; JavaScript; itp.) na poziomie podstawowym.
Dodatkowo przydatna będzie znajomość języka angielskiego na poziomie średnim, ze względu na konieczność czytania dokumentacji technicznej oraz interfejs oprogramowania dostępny w języku angielskim, choć można obecnie korzystać z serwisów tłumaczących tekst w sposób zautomatyzowany.

*Rys. 1 - Przykładowa strona dokumentacji serwisu, z którego korzystamy w projekcie.*
----

*Rys. 2 - Środowisko programistyczne PyCharm Community, z którego korzystamy w projekcie.*
W naszym projekcie zakładamy, że młodzież pracuje w warunkach jak najbardziej zbliżonych do takich, jakie mogą znaleźć w firmach, w których będą pracować. A więc:
* język programowania Python z naciskiem na czystość kodu (zgodność z **PEP 8**)
* środowisko programistyczne **PyCharm Community** (wersja OpenSource, a więc legalna i darmowa dla wszystkich)
* serwis GitHub do przechowywania kolejnych wersji oprogramowania
* system operacyjny Linux Ubuntu (w wersji 20.04 LTS z Python 3.8)
Chcemy uczyć przez doświadczenie, pokazując maksymalnie dużo efektów pracy już na początku. Dlatego już pierwsze zajęcia kończą się okienkiem programu (zauważmy, jak niewiele jest tam kodu).

*Rys. 3 - Środowisko programistyczne PyCharm Community, w nim pierwszy program.*
Oczywiście, chcemy też pokazać młodzieży, w którą stronę zmierza projekt, a więc jak może wyglądać finalna aplikacja. Dlatego przygotowaliśmy aplikację DEMO, którą każdy może sobie uruchomić jeszcze przed zajęciami - ta aplikacja w prosty sposób pokazuje funkcjonalność, jaką chcemy uzyskać.

*Rys. 4 - Przykład aplikacji demonstracyjnej*
Aby pokazać, że to nie jest naprawdę tzw. "rocket science", pokażemy kod źródłowy:
```python
import PySimpleGUI as sg
import requests
import sys
api_link = "https://api.ipify.org/?format=json"
app_layout = [
[sg.Text("I will check your public IP - just press button"), sg.Button("Check your IP")],
[sg.Text("_" * 50)],
[sg.Output(size=(50, 6), key="-OUTPUT-")],
[sg.Button("Clear -OUTPUT-"), sg.Exit()],
]
window = sg.Window("Checking public IP.", app_layout, enable_close_attempted_event=True)
# używamy pętli nieskończonej, która działa aż do słowa kluczowego `break`
# pamiętajmy o PEP-8, wcięciach i bloku kodu - https://www.python.org/dev/peps/pep-0008/#indentation
while True:
# poniższe wywołanie otwiera okno i wczytuje dane
event, values = window.read()
# inny sposób sprawdzania — tu x nie spowoduje zniknięcia okna
if event in (sg.WINDOW_CLOSE_ATTEMPTED_EVENT, "Exit") and sg.popup_yes_no('Do you really want to exit?') == 'Yes':
print("Break and EXIT")
break
# dodajemy sprawdzenie wciśniętego przycisku
if event == "Check your IP":
# sprawdzamy ip
print("Checking....")
public_ip = None
try:
public_ip = requests.get(api_link)
if public_ip.status_code == 200:
print(f"Your public IP is raw: {public_ip.json()}")
print(f"So another way: {public_ip.json()['ip']}")
else:
print(f"Error on status code is: {public_ip.status_code}")
except:
print("Some Error")
# sprawdzamy naciśnięte przyciski
if event == "Clear -OUTPUT-":
window['-OUTPUT-'].update(value='')
# koniec programu
window.close()
print("End of application")
sys.exit()
```
Dodatkowo, do wszystkich lekcji, przygotowaliśmy samouczki wideo - filmy maksymalnie 5-minutowe, w trakcie których staram się (bo ja jestem ich autorem) wytłumaczyć najważniejsze elementy. Wszystkie filmy można pobrać offline, w serwisie **Diode.zone** nie ma reklam, to całkowicie wolne i otwarte rozwiązanie, opierające się na metodach współdzielenia plików.
**UWAGA!**
Protokół P2P, używany w tym serwisie, jest często kojarzony z tzw. *„piractwem komputerowym”*. W tym projekcie chcemy pokazać, że to tylko złe nastawienie mediów. To może być wykorzystywane w dobrych celach!

*Rys. 5 - Serwis https://diode.zone - Playlista filmów samouczków przygotowanych dla projektu*
Mamy nadzieję, że taki projekt może być ciekawy i z powodzeniem wykorzystywany w szkołach. Nie ma tu żadnych sprawdzianów i testów. Testem dla uczestników jest samo uczestnictwo, możliwość doprowadzenia projektu do końca. Młodzież w zespole sama decyduje o tym, jak ma wyglądać produkt końcowy, z jakiego `API` (ang. Application Programming Interface) chce korzystać. Dajemy im wędkę - a więc informacje, które pozwolą im samodzielnie budować.
Rozumiemy, że nasz projekt powinien być dopasowany do podstawy programowej. Dołożyliśmy starań, aby zawarte w nim treści były z nią zgodne.
**Podstawa Programowa dla technikum/liceum** w zakresie podstawowym mówi m. in:
> Uczeń planuje kolejne kroki rozwiązywania problemu, z uwzględnieniem podstawowych etapów myślenia komputacyjnego (określenie problemu, definicja modeli i pojęć, znalezienie rozwiązania, zaprogramowanie i testowanie rozwiązania).
>
> Uczeń projektuje i programuje rozwiązania problemów z różnych dziedzin, stosuje przy tym: instrukcje wejścia/wyjścia, wyrażenia arytmetyczne i logiczne, instrukcje warunkowe, instrukcje iteracyjne, funkcje z parametrami i bez parametrów, testuje poprawność programów dla różnych danych; w szczególności programuje algorytmy z punktu I.2);
>
> Uczeń do realizacji rozwiązań problemów prawidłowo dobiera środowiska informatyczne, aplikacje oraz zasoby, wykorzystuje również elementy robotyki;
>
> Uczeń wyszukuje w sieci potrzebne informacje i zasoby, ocenia ich przydatność oraz wykorzystuje w rozwiązywanych problemach.
>
> **Uczeń aktywnie uczestniczy w realizacji projektów informatycznych rozwiązujących problemy z różnych dziedzin, przyjmuje przy tym różne role w zespole realizującym projekt i prezentuje efekty wspólnej pracy;**
>
> **Uczeń respektuje obowiązujące prawo i normy etyczne dotyczące korzystania i rozpowszechniania oprogramowania komputerowego, aplikacji cudzych i własnych oraz dokumentów elektronicznych;**
W naszym rozumieniu taki projekt całkiem dobrze wpasowuje się w powyższe założenia. Widzimy olbrzymi potencjał w jego wykorzystaniu.
----
### Projekt „Progr@muj w zespole” jest innowacją społeczną która powstała w ramach projektu POPOJUTRZE 2.0 – KSZTAŁCENIE (POWR.04.01.00-00-I108/19) - jedynego inkubatora w Polsce wybranego przez Ministerstwo Funduszy i Polityki Regionalnej do wspierania Innowacji Społecznych w obszarze „KSZTAŁCENIE”.
* #### Elżbieta Piotrowska-Gromniak
###### AUTORKA POMYSŁU
Nauczycielka i pasjonatka edukacji. Absolwentka historii na Uniwersytecie Jagiellońskim i MBA na Akademii Leona Koźmińskiego. Promotorka dwujęzyczności, uczenia się we współpracy (Cooperative Learning) oraz mądrego wprowadzania narzędzi IT w szkołach i placówkach.
* #### Adam Jurkiewicz
###### TWÓRCA MATERIAŁÓW (PYTHON)
Programista, hacker edukacji, członek nieformalnej grupy SuperbelfrzyRP. Absolwent kursów Massachusetts Institute of Technology, Google IT Automation with Python oraz IBM Professional Data Science. Zdobywca wyróżnienia Szerokiego Porozumienia na Rzecz Umiejętności Cyfrowych Polsce w latach 2017, 2020 2021, członek zarządu Szkolnej Sekcji Informatyki przy Polskim Towarzystwie Informatycznym.
* #### Konrad Kosieradzki
###### TWÓRCA MATERIAŁÓW (PRACA ZESPOŁOWA)
Trener rozwoju osobistego, coach. W pracy szkoleniowej i edukacyjnej korzysta z bogatych zasobów własnej ścieżki zawodowej. Ma wieloletnie doświadczenie w budowaniu i prowadzeniu zespołów w międzynarodowych firmach branży technicznej. Absolwent Instytutu Okrętowego Politechniki Gdańskiej oraz studiów MBA na Akademii Leona Koźmińskiego.
* #### Rafał Kamiński
###### ZARZĄDZAJĄCY PROJEKTEM
Współtwórca i kierownik projektów, współpracuje z uczelniami, przedsiębiorcami, NGO oraz szkołami jako autor i koordynator przedsięwzięć krajowych i ponadnarodowych. Posiada bogate doświadczenie menedżerskie oraz m.in. certyfikat zarządzania projektami PRINCE2 Foundation.

*Rys. 6 - Serwis https://github.com - Repozytorium materiałów projektu.*
----
Info o Autorze:
<img src="/home/adasiek/pCloudDrive/ABIX_Edukacja/40_Projekty_EDU/tik-w-edukacji-artykuły/adam_j.jpg" alt="adam_j" style="zoom:25%;" />
Adam Jurkiewicz - nauczyciel informatyki w 78 Liceum Ogólnokształcącym oraz w Technikum Mechatronicznym nr 1 w Warszawie.
Aautor książki „Python 3. Projekty dla początkujących i pasjonatów” wydanej przez Helion Edukacja. Laureat II miejsca konkursu na Najlepszą Polską Książkę Informatyczną 2022 organizowanego przez Polskie Towarzystwo Informatyczne.
Autor kursów języka Python dla projektu OSE IT-Szkoła - w zakresie szkoły podstawowej i szkoły ponadpodstawowej.
Współautor treści z języka Python w projekcie E-Podręczniki do kształcenia ogólnego dla klas szkoły podstawowej oraz liceum/technikum.
Współautor książki "Koduj w Pythonie - tworzymy grę przygodową" oraz publikacji "ENIGMA - Poznaj zagadkę Enigmy, tworząc grę przygodową w Pythonie" wydanych przez Fundację Rozwoju Edukacji Cyfrowej.
Twórca i prowadzący portal https://python.szkola.pl - zajmuje się tam wsparciem dla nauczycieli informatyki i oswajaniem Pythona w szkołach. Tworzy scenariusze lekcji, inspiracje i kursy dla początkujących.
Ekspert ds informatycznych w różnych fundacjach, m.in.:
* Fundacji Rozwoju Edukacji Cyfrowej
* Fundacji Edukacji na Nowo
* Fundacji INTO the future
Profile w sieciach społecznościowych:
* https://www.linkedin.com/in/adam-jurkiewicz-python-linux/
* https://www.facebook.com/adam.jurkiewicz.superbelferRP
* https://101010.pl/web/@abix_edukacja