Programowanie od podstaw

Prowadzący: Radosław Rowicki, Mikołaj Miękus


Safespace dla osób, które przeraża słowo "kompilator".
Zadania kwalifikacyjne:
Na te warsztaty nie ma kwalifikacji. Nie liczą się do puli wymaganych zgłoszeń.
Kategorie:
informatyka

Opis

Są to warsztaty przygotowane z myślą o tych, którzy jeszcze nie mieli okazji zapoznać się z cudownym światem informatyki. Będziemy od zera stawiać pierwsze programistyczne kroki mówiąc do komputera w języku Python.

Python jest stosunkowo prostym a przy tym niezwykle użytecznym językiem programowania. Jest on niezastąpionym narzędziem pracy naukowców najróżniejszych specjalności, od biologii po sztuczną inteligencję.

Podczas zajęć omówimy, między innymi:

  • Działanie komputera, w tym procesor, RAM, dysk;
  • Wyrażenia, w tym zmienne;
  • Instrukcje, w tym pętle;
  • Funkcje, w tym parametry;
  • Typy danych, w tym napisy, listy, krotki;
  • Algorytmy, w tym rekurencję;
  • Działania na plikach.

Wymagania

Na zajęciach każdy będzie potrzebować komputera z dystrybucją Pythona 3. Polecamy zainstalować najnowsze stabilne wydanie z oficjalnej strony: https://www.python.org/

Użytkownikom Linuxów zalecamy skorzystanie z ich menedżerów pakietów:

  • *Ubuntu/Debian: sudo apt install python lub sudo apt install python3
  • Arch/Manjaro: sudo pacman -S python
  • Fedora: sudo dnf install python
  • Gentoo: sudo emerge python

Na Macach powinien być zainstalowany, żeby to sprawdzić należy odpalić Terminal i wpisać python

Zadania niekwalifikacyjne

Na te warsztaty nie ma kwalifikacji, lecz przygotowaliśmy drobny zestaw zadanek przygotowawczo-testowych, które pomogą nastawić uczestników na programistyczny mindset i dadzą nam znać o stanie grupy. Rozwiązania prosimy przesyłać nam na maila (do obu prowadzących, CC/DW) — system przesyłania zadań przez stronę WWW służy tylko warsztatom kwalifikującym, a te takie nie są.

Zad 0. "Sito na nerdów" (-100 pkt.)

Napisz sumator elementów drzewa BST algorytmem BFS. Jeśli umiesz to rozwiązać, to te warsztaty nie są dla ciebie.

Zad 1. "Sortowanie"

Weź 10 kamieni. Ułóż je od najlżejszego do najcięższego. Proste? To wyobraź sobie że masz 1000000 kamieni tak podobnych do siebie, że różnicę w ich masach możesz sprawdzić jedynie korzystając ze specjalnej Wagi do Kamieni™ Premium, która za każde użycie nalicza producentowi 1 pieniądz (waga działa online w oparciu o technologię blockchain przy użyciu IoT na bazie sztucznej inteligencji). Waga porównuje tylko dwa kamienie na raz. Opisz krok po kroku jak przy jej użyciu ułożyć kamienie kolejno według ich masy. Zakładając że masz n kamieni do posortowania, napisz matematyczny wzór, który powie ile pieniędzy w przybliżeniu będziesz musiał/a zapłacić za posortowanie ich twoją metodą.

Zad 2. "Tosty"

Warsztaty słyną z wieloletniej tradycji przemysłu tostowego. Przez pokolenia tost-masterzy zmagają się ze spartańskimi warunkami w celu przygotowywania tej wykwintnej potrawy I ZAWSZE ALE TO ZAWSZE CZYSZCZĄ TOSTER PO ZAKOŃCZENIU PRACY Z NIM. W tym zadaniu prosimy cię o zaprezentowanie nam algorytmu (przepisu) na przygotowanie perfekcyjnego tosta. Tost jest perfekcyjny jeśli jest serio upieczony (ale nie spalony), zawiera ser (którego na WWW nigdy nie zabraknie), masło/margarynę, keczup i pietruszkę. Ponadto wyczyszczenie tostera po pracy jest niezbędne do zatwierdzenia go jako perfekcyjnego.

WAŻNE: Twój przepis musi być dokładny do bólu i nie może pomijać żadnych kroków niezbędnych do osiągnięcia celu. Dla referencji, autorem tego zadania jest niejaki Radek, na którego stronie warsztatowej znajduje się przepis na kurczaka jego autorstwa. Wyobraźcie sobie, że z waszego przepisu korzystać będzie osoba o jego zdolnościach kulinarnych. Nie spalcie mu kuchni.

Zad 3. "Motywacja"

Czego oczekujesz od tych warsztatów? Jakie jest twoje dotychczasowe doświadczenie z informatyką/programowaniem/stronkami internetowymi?

Kontakt z prowadzącymi

mikolaj.miekus@gmail.com, radrowicki@gmail.com (CC do obu)