Logo Obozu Naukowego

Programowanie od podstaw

Prowadzący

Czas Trwania Warsztatów

25 godzin lekcyjnych (5 dni po 5 godzin lekcyjnych)

Programowanie od podstaw

Podstawy programowania na przykładzie języka Python

Podczas warsztatu poznamy różnice między rodzajami języków programowania, genezę programowania jako nauki oraz dowiemy się o złożoności obliczeniowej i pamięciowej. Poznamy strukturę języka Python oraz napiszemy pierwszą prostą aplikację konsolową. Umiejętność programowania ułatwi uczestnikom dalszy rozwój w kierunku informatycznym, gdyż stanowi jeden z jej najważniejszych fundamentów.

Do kogo kierowany jest ten warsztat?

Warsztat skierowany jest do uczniów chcących rozpocząć przygodę z programowaniem (nigdy wcześniej nie programowali). Programowanie w szczególności ważne jest dla informatyków i analityków danych, lecz korzystają z niego także fizycy, chemicy i biolodzy (symulacje ruchów planet czy rozwoju pandemii). 

Do uczestnictwa w warsztacie nie jest wymagana znajomość żadnego języka programowania. Osoby mające wcześniej styczność z Logomocją czy Scratchem z pewnością szybciej zrozumieją niektóre pojęcia. Wskazana jest jednak umiejętność posługiwania się komputerem (nawigacja w Eskploratorze plików itp.). 

Niezbędny sprzęt i oprogramowanie

Do uczestnictwa w warsztatach wymagany jest własny laptop o minimalnych parametrach: 

  • System Windows 10, 8, 7 (SP1, 64 bitowy) lub Linux (64 bitowy)
  • 4 GB RAM
  • 2.5 GB wolnego miejsca na dysku (na środowisko programistyczne)
  • Wyświetlacz 1024x768

Wymagany jest również program PyCharm Community (środowisko programistyczne), które można za darmo pobrać na stronie producenta (można wybrać również dowolne inne środowisko obsługujące Pythona 3): https://www.jetbrains.com/pycharm/download/#section=windows

oraz zainstalowany Python w wersji 3.8 (lub nowszy): 

https://www.python.org/downloads/

Dlaczego warto wziąć udział w tym warsztacie?

Uczestnicy warsztatu:

  • poznają język Python 3,
  • nauczą się rozpoznawać złożoność obliczeniową i pamięciową programu,
  • poznają narzędzia wykorzystywane przy pracy programisty,
  • nauczą się szukać i naprawiać błędy w kodzie,
  • napiszą swoją pierwszą aplikację,
  • rozwiną umiejętność rozwiązywania problemów oraz logicznego myślenia.

Przyjazna atmosfera ułatwi myślenie 😊

Program warsztatu

Dzień pierwszy

Wstęp

Pierwszego dnia warsztatów uczestnicy zapoznają się z 2 rodzinami języków programowania, ich wadami i zaletami. Poznają także rodzaje zmiennych (int, float, double, char, string, pair, void). Nauczą się podstawowych operacji w języku Python, takich jak operacje warunkowe (if), operacje arytmetyczne (dodawanie, odejmowanie, mnożenie, dzielenie, potęgowanie, dzielenie z resztą – modulo) oraz komunikacja poprzez konsolę z użytkownikiem. Uczestnicy dowiedzą się o pułapkach kodowania oraz jak unikać błędów z nimi związanymi.

Dzień drugi

Pętle i tablice (listy), losowość

Podstawą każdego programu (oprócz znanych już operacji warunkowych) są pętle. Służą one wykonywaniu tych samych operacji wiele razy. Uczestnicy dowiedzą się kiedy najlepiej stosować najważniejsze typy pętli (for oraz while) w języku Python – wykorzystają je w pisaniu prostych algorytmów. Oprócz tego wprowadzona zostanie struktura tablic, która ułatwia przechowywanie wielu zmiennych w jednym, uporządkowanym zbiorze. Dowiedzą się także dlaczego algorytmy losowe wcale nie są losowe. 

Dzień trzeci

Funkcje, tekst

Znajomość pętli oraz tablic pozwala na napisanie dużej liczby programów. Znajomość funkcji pozwala na napisanie tych samych programów w estetyczny i zrozumiały sposób (co jest szczególnie ważne pisząc duże projekty, których kod czytać będą osoby, które go nie pisały, a mają go rozwijać). Następnie powiemy o obsłudze tekstu, ważnego aspektu programowania.

Dzień czwarty

Proste algorytmy sortowania, wyszukiwania i inne

Po zaznajomieniu się ze sporą częścią składni języka Python, przyszła pora na optymalizację. Co z tego, że umiemy napisać program, jeśli jego wykonanie dla małej liczby (powiedzmy 10^6) danych trwa 5 lat, a mogłoby trwać kilka sekund. Taki program jest na większą skalę bezużyteczny. Poznamy i napiszemy niewydajne algorytmy sortowania (o wydajności obliczeniowej O(n^2)) oraz wspomnimy o takich, które sortują w czasie O(nlogn), a nawet (optymistycznie) O(1)! Ulepszymy wcześniej napisany algorytm wyszukiwania oraz poznamy kilka ciekawych technik optymalizacji.

Dzień piąty

Odczyt danych z pliku, tworzenie pierwszej aplikacji

Ostatniego dnia warsztatu przez chwilę zajmiemy się odczytywaniem (i zapisywaniem) danych z pliku tekstowego. Następnie jako podsumowanie dotychczasowej pracy, uczestnicy napiszą swoją pierwszą aplikację, na którą składać się będą umiejętności zdobyte przez poprzednie 4 dni. Gry, algorytmy szyfrujące, czy nawet programy liczące średnie z ocen – wszystko jest możliwe!

Perfekcję [w programowaniu] osiąga się nie wtedy, kiedy nie można już nic dodać, ale wtedy, kiedy nie można już nic ująć.

Antoine de Saint-Exupry