Choinka programisty Ruby
Czy programiści Ruby 💎 programują swoje choinki 🎄 święteczne?
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:
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:
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:
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.
Jeśli macie jakieś pytania organizacyjne to przeczytajcie proszę dział FAQ - często zadawane pytania.
16.03.2019 (sobota) od 09:00 do 12:00
Trzeba wejść na II piętro, skręcić w prawo i iść wzdłuż korytarza.
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