Grupowe kodzenie: Astropy + warunki kontrolowane

Prowadzący: Mateusz Zieliński


Kategorie: informatyka fizyka inne

Poniższe warsztaty, choć w istotnej części będą kodzeniem w Pythonie, są szczególnie skierowane do nieinformatyków, a szczególnie do astro±fizyków. Do rozpoczęcia kwalifikowania się nie jest potrzebna wcześniejsza znajomość Pythona, ale może być konieczne zacięcie do nauczenia się go i obsługi (bardziej lub mniej) popularnych narzędzi. Warsztaty te mają też drugi, choć nie całkiem drugoplanowy, aspekt – praktykowanie dbania o kod, czyli suplement do warszatów kod-projekt-produkt (lub „Realna tj. nieakademicka inżynieria oprogramowania”), ze względu na który poniższe warsztaty są także skierowanie do chętnych uczestników wspomnianych warsztatów i innych zainteresowanych uczestników WWW którzy doświadczyli lub doświadczą kwestii poruszonej w słowach następujących:

Give a man a fish and you feed him for a day. Write a program to fish for him and you maintain it for a lifetime.
(@tdhopper on Twitter, Nov 3, 2015, 15:31)

 Do warsztatów motywuje to, że sporo programów studiów nieinformatycznych przewiduje przedmioty gdzie uczony jest język programowania lub uczone jest co można zakodzić lub wymagane jest zakodzenie czegoś, a ignoruje się problemy jak i w jakiej formie kodzić oraz jak zakodzić, żeby inni nie musieli tego kodzić znowu po nas. Zatem, mając na uwadze te ostatnie problemy, pobawmy się wspólnie kodzeniem czegoś nietrywialnego. Zamiast kodzić jakieś pierdoły w zbyt czystym Pythonie, będziemy korzystać z istniejącego nietrywialnego zestawu pakietów. Wybór padł na Astropy, gdyż można tam znaleźć tyle różnych funkcji do operacji astronomicznych, fizycznych, przetwarzania danych i kreślenia wykresów z użyciem matplotliba, że powinno się dać przy nim formułować bardzo dostosowywalne pod kątami trudności oraz tematyki (tu mam nadzieję, że podzielicie się zainteresowaniami w ramach ankiety kwalifikacyjnej) zadanka do zakodzenia.

Wymagania

Od kwalifikującego się wymagana będzie chęć poznania i przećwiczenia użycia pewnych narzędzi oraz doczytania w tym celu dokumentacji lub innych pomocnych źródeł.

Od uczestnika będzie także wymagane dużo chęci, ale przyda się też komputer z przygotowaną pewną bazą oprogramowania, ewentualnie dobranie się z kimś do pary i wytrwałość we współpracy i nienudzeniu się w takim przypadku.

Wymagania co do tej bazy oprogramowania zostaną doprecyzowane niedługo, przy okazji wystawiania zadań kwalifikacyjnych. Należy się w obu spodziewać elementów Pythona (np. conda), gita, Astropy. Oczywiście nie zaszkodzi też korzystanie z systemu wspierającego POSIX, np. siedzenie na unixowym systemie lub posiadanie na niestandardowym systemie maszyny wirtualnej z odpowiednim (chociażby popularnym Ubuntu); nie jest to wymagane, ale dla niestandardowych systemów operacyjnych będziemy mieli ograniczone wsparcie, ze względu na wysoce niestardowe problemy przez nie generowane.

Przydatne rzeczy

artykuł A. Nowogrodzki, Nature 571, 133-134 (2019)