Nauka programowania jest jak jedzenie lodów z czekoladą. Każdy kawałek sprawia, że sięgamy po następny. Podobnie, im więcej programujemy tym bardziej nam się to podoba. Mamy nadzieję, że Wy też tak macie. Dookoła panuje grypa, więc uważajcie, by się nie zarazić. My za to chcemy zarażać Was pasją do programowania i dzielić się wiedzą, a nie wirusami. 🔬

Poprzednie zajęcia

Małe podsumowanie poprzednich zajęć z programowania dla dzieci oraz zdjęcia naszego CoderDojo Gliwice:

  • łamanie szyfrów - podstawy kryptoanalizy
  • programowanie gier czasu rzeczywistego w C#
  • nauka programowania ze Scotty Go
  • programowanie bez komputera

Tematy tych zajęć opisaliśmy w artykule CoderDojo Gliwice - 2019-02.

Zdjęcia z CoderDojo Gliwice #4

Zajęcia z programowania dla dzieci - CoderDojo Gliwice z dnia 16-03-2019

Tematy na CoderDojo Gliwice

Zaprogramuj deszyfrator

Don Pedro

Znacie Don Pedro, najlepszego szpiega z Krainy Deszczowców? Będziecie mieli okazję zdekonspirować go. Karramba!

Na ostatnich zajęciach z szyfrowania mieliście okazję poznać podstawy kryptoanalizy. Programistka Agnieszka oraz programista Alek zaszyfrowali dla Was wiadomości różnymi szyframi. Okazało się, że niektóre metody szyfrowania były tak skomplikowane, że nie dało się ich jednoznacznie odszyfrować. Ale dzięki temu nauczyliście się jak działa kryptoanaliza statystyczna. Wykorzystaliście częstotliwość występowania liter w języku polskim do znalezienia kluczy w szyfrach podstawieniowych. Użyliście również metod słownikowych dla jednoznakowych i dwuznakowych wyrazów. Oto kod źródłowy w Ruby przydatny do kryptoanalizy statystycznej:

# Przykładowa zaszyfrowana wiadomość
input = %(
Cemrqfgnjvnz jnz Zvfvn Chpungxn, xgóel jłnśavr j grw pujvyv
fpubqmv cb fpubqnpu. Ghx-ghx, ghx-ghx, mfhjn fvę Chpungrx
an temovrpvr, qb tóel abtnzv, j glyr mn Xemlfvrz, xgóel tb
pvątavr mn cemrqavą łncxę. Bqxąq Chpungrx fvrovr cnzvęgn,
wrfg gb wrqlal fcbfóo fpubqmravn mr fpubqój, pubć Zvś pmhwr
pmnfnzv, żr zótłol gb ebovć mhcrłavr vanpmrw, tqlol hqnłb zh
fvę cemrfgnć ghxgnć pubćol an wrqaą pujvyę v qboemr fvę anq
glz mnfgnabjvć. N cbgrz maój zh fvę mqnwr, żr pulon avr zn
an gb vaartb fcbfboh. Gnx pml fvnx, Zvś mwrpunł whż an qół
v tbgój wrfg mncbmanć fvę m jnzv. Cebfmę oneqmb: bgb wrfg
Xhohś Chpungrx. Xhohś Chpungrx yhov bq pmnfh qb pmnfh
anwebmznvgfmr mnonjl, n pmnfrz maój yhov fvąść fcbxbwavr
cemrq xbzvaxvrz v cbfłhpunć wnxvrwś pvrxnjrw uvfgbelwxv.
)

def frequency_of_characters(input)
  hash = Hash.new(0)
  input.downcase.each_char do |character|
    hash[character] += 1
  end
  hash
end

puts 'Częstotliwość znaków w kolejności od najpopularniejszych:'
frequency_of_characters(input).sort_by { |item| -item[1] }.each do |item|
  puts "'#{item[0]}' => #{item[1]}" if item[1] > 0
end

Na najbliższych zajęciach będziemy jeszcze więcej programować i jeszcze więcej deszyfrować. Szpieg z Krainy Deszczowców (Don Pedro) chciał przesłać tajne wiadomości. Nasi mentor-agenci przejęli je i skopiowali. Jednak ich treść jest wciąż niezrozumiała. Trzeba zbudować odpowiedni deszyfrator, ponieważ ręczna kryptoanaliza zajęłaby zbyt wiele czasu. Na szczęście w Gliwicach działa CoderDojo, czyli najlepsze zajęcia programowania dla dzieci. Świat liczy na Waszą pomoc.

Wymagania:

  • Zamiłowanie do matematyki.
  • Pobierz i zainstaluj Ruby, język programowania, w którym powstało wiele startupów. Ruby jest darmowy i można w nim programować na różnych systemach operacyjnych. Składnia Ruby jest bardzo czytelna i ma niską barierę wejścia. Zapewniamy, że pokochacie język Ruby tak jak my.

Wstęp do Unity3D

Splashscreen z Unity

We wcześniejszej serii zajęć zapoznaliśmy się z podstawami programowania obiektowego, od tworzenia pętli i instrukcji warunkowych, aż do tworzenia własnych metod oraz klas. Nauczyliśmy się wykorzystywać różne rodzaje zmiennych oraz instancjonowanie obiektów. Teraz zaczynamy nową tematykę. Na kolejnych kilku zajęciach będziemy poznawać krok po kroku podstawy Unity3D. Zajęcia poprowadzi game developer Grzegorz.

Unity to silnik używany do tworzenia gier zarówno 2D jak i 3D. Językiem wykorzystywanym do implementacji logiki w tym programie jest, już poznany przez Was na kilku poprzednich zajęciach z programowania, język C#. Praca w Unity zapewnia nam wiele ułatwień, tak długo jak dostosowujemy się do sposobu pisania kodu wyznaczonego przez twórców silnika, możemy korzystać z dostarczonej obsługi klawiatury, dźwięku, grafiki oraz symulacji fizyki.

Zajęcia rozpoczniemy od poznania interfejsu. Zapoznamy się z importowaniem assetów i standardowych paczek. Poznamy podstawowe komponenty. Jednym z nich będzie komponent Rigidbody odpowiadający za fizykę w grze. Utworzymy prefabrykaty służące do ponownego używania tych samych elementów w grze. Na końcu utworzymy naszą pierwszą klasę, która korzystając z fizyki gry pozwoli nam strzelać pre-fabrykantami lub wykrywać trafiony obiekt i wpływać na niego.

Wymagania:

  • Ściągnij i zainstaluj Unity3D - silnik do tworzenia gier komputerowych. Zainstalowany silnik powinien być w wersji przynajmniej 2018. Przy pierwszym uruchomieniu należy wybrać wersję personal aby używać tego narzędzia w wersji darmowej.

Gdzie jest Python?

Wąż pyton

Ostatnio zniknął Python, wielki wąż. 🐍 Możliwe, że dopadł go jakiś wirus. Dlatego nie było mentora Darka. 🧔 Poszedł go szukać. Mamy nadzieję, że go znalazł i przyprowadzi na zajęcia CoderDojo Gliwice. A później nauczy Was jak programować takiego Pythona.

Spodziewajcie się więc dużo wiedzy. Pewnie starczyłoby jej na dwa osobne zajęcia. Ale nie ma co się lenić. Matura z informatyki już niedługo, a tam spotkacie Pythona.

Wymagania:

  • Pobierz i zainstaluj Pythona na dowolnej platformie i zupełnie za darmo. W Pythonie jest napisanych wiele popularnych aplikacji tj. DropBox, Instagram czy YouTube.

Podobają Wam się nasze programistyczne plany? Mamy nadzieję, że tak. Nie bójcie się wyrażać swoich opinii zarówno poniżej w komentarzach jak i w social mediach. Jeżeli macie własne propozycje tematów to również piszcie. Chcemy aby CoderDojo w Gliwicach było najlepszym dojo w Polsce.

Informacje organizacyjne

Jeśli macie jakieś pytania organizacyjne to przeczytajcie proszę dział FAQ - często zadawane pytania.

Czas zajęć ⏰

16.03.2019 (sobota) od 09:00 do 12:00

Miejsce zajęć 🏢

Gliwickie Centrum Organizacji Pozarządowych
ul. Zwycięstwa 1/1
44-100 Gliwice

Trzeba wejść na II piętro, skręcić w prawo i iść wzdłuż korytarza.

Mapa dojazdu do GCOP (Gliwice, ul. Zwycięstwa 1)


Spodobało Ci się? Napisz nam o tym i czytaj nas regularnie. Możesz również podzielić się tym artykułem z innymi (Facebook, Twitter). Będzie nam niezmiernie miło.

Zostaw komentarz