Algorytmika i programowanie

Programowanie współbieżne w informatyce i nie tylko

Szkoła ponadpodstawowa, Nauczyciele

Kurs omawia najważniejsze zagadnienia dotyczące programowania współbieżnego.

Czego się nauczysz

  • wyjaśnienie najważniejszych zagadnień dotyczących programowania współbieżnego
  • omówienie sposobów realizacji programów współbieżnych

Program kursu

  • Co to jest programowanie współbieżne
    • Model komputera
    • Program sekwencyjny
    • Program współbieżny
    • Programy i procesy
    • Różne sposoby wykonywania programu współbieżnego
    • Znaczenie programowania współbieżnego
    • Jak komputery wykonują programy współbieżne
  • Kłopoty z programami współbieżnymi
    • Problemy synchronizacyjne
    • Problem z brakiem atomowości instrukcji
    • Problem z jednoznaczną modyfikacją zmiennych globalnych
  • Wzajemne wykluczenie
  • Poprawność programów współbieżnych
    • Własność bezpieczeństwa
    • Własność żywotności
    • Przykłady braku żywotności
  • Podsumowanie

Opis kursu

Prowadzący wyjaśnia, że program współbieżny to zestaw wykonujących się w tym samym czasie „zwykłych” programów. Techniki współbieżne stosuje się przy tworzeniu wielu współczesnych programów, np. opracowując interfejs użytkownika, programując gry czy aplikacje sieciowe. Tworzenie programów współbieżnych wymaga od programisty większej dyscypliny i wyobraźni niż pisanie programów sekwencyjnych. Oprócz zagwarantowania poprawności poszczególnych składowych programu współbieżnego, trzeba jeszcze dobrze zsynchronizować ich działanie oraz przewidzieć wszystkie możliwe scenariusze wykonania. Nie jest to łatwe – uczestnicy kursu przekonają się, jak często podczas analizowania programów współbieżnych może zawieść nas intuicja.

W trakcie zajęć prowadzący przedstawia podstawowe pojęcia programowania współbieżnego. Definiuje pojęcie procesu i wyjaśnia, jak mogą być wykonywane programy współbieżne. Tłumaczy także, jak współczesne systemy operacyjne radzą sobie z wykonywaniem wielu zadań na jednym procesorze. Na przykładzie dwóch klasycznych problemów współbieżności: wzajemnego wykluczania oraz pięciu filozofów omawia pojęcia związane z analizą programów współbieżnych: przeplot, poprawność, bezpieczeństwo oraz żywotność. Wskazuje, że z tymi pojęciami oraz problemami synchronizacyjnymi spotykamy się na co dzień, np. ucząc się, piekąc ciasto albo obserwując ruch samochodów na ulicach. Zajęcia mają formę wykładu, ale w jego trakcie uczestnicy będą uruchamiać niektóre programy współbieżne na „wirtualnym komputerze wieloprocesorowym”, którego procesorami będą słuchacze.

Prowadzący dr Marcin Engel jest wykładowcą na Uniwersytecie Warszawskim.

Podobne kursy

Algorytmika i programowanie

Różnorodne algorytmy obliczeń i ich komputerowe realizacje

Szkoła ponadpodstawowa, Nauczyciele

Celem kursu jest przekazanie uczestnikom wiedzy dotyczącej m.in. algorytmów wyznaczania: dziesiętnej i binarnej reprezentacji liczb, obliczania wartości wielomianu, największego wspólnego dzielnika dwóch liczb (algorytm Euklidesa) oraz wartości potęgi.

Algorytmika i programowanie

Do czego można wykorzystać język Javascript?

Szkoła ponadpodstawowa, Nauczyciele

Kurs przedstawia możliwości języka JavaScript (JS). Wykorzystaj go do wzbogacania stron i serwisów www o elementy interaktywne i graficzne.

Algorytmika i programowanie

Czy wszystko można policzyć na komputerze?

Szkoła ponadpodstawowa, Nauczyciele

Kurs wprowadza do zagadnienia złożoności problemów i algorytmów ich rozwiązywania.

Algorytmika i programowanie

Język językowi nierówny

Szkoła ponadpodstawowa, Nauczyciele

Kurs przedstawia wybrane aspekty lingwistyczne oraz nakreśla w sposób uproszczony i subiektywny zagadnienia ewolucji języków programowania.

Algorytmika i programowanie

Algorytmika internetu

Szkoła ponadpodstawowa, Nauczyciele

Kurs omawia najważniejsze fakty dotyczące historii algorytmów i rozwoju internetu.

Algorytmika i programowanie

Między programowaniem a wnioskowaniem

Szkoła ponadpodstawowa, Nauczyciele

Kurs przekazuje wiedzę z zakresu podstaw języka Prolog oraz języków zapytań.

Algorytmika i programowanie

Algorytmy poszukiwania i porządkowania. Elementy języka programowania

Szkoła ponadpodstawowa, Nauczyciele

Kurs przekazuje wiedzę z zakresu algorytmiki i programowania.

Algorytmika i programowanie

Proste rachunki wykonywane za pomocą komputera

Szkoła ponadpodstawowa, Nauczyciele

Kurs przekazuje wiedzę na temat obliczeń wykonywanych za pomocą komputera.

Algorytmika i programowanie

Przegląd podstawowych algorytmów

Szkoła ponadpodstawowa, Nauczyciele

Kurs omawia techniki budowania algorytmów. Uczestnicy zapoznają się z informacjami na temat programowania dynamicznego, rekurencji, strategii zachłannych.

Algorytmika i programowanie

Techniki algorytmiczne przybliżone i dokładne

Szkoła ponadpodstawowa, Nauczyciele

Kurs umożliwia poszerzenie wiedzy z zakresu algorytmiki i programowania. Wprowadza podstawowe pojęcia oraz definiuje różnorodne techniki algorytmiczne.

Algorytmika i programowanie

Wprowadzenie do algorytmiki i programowania – wyszukiwanie i porządkowanie informacji

Szkoła ponadpodstawowa, Nauczyciele

Kurs dotyczy podstawowych zagadnień związanych z algorytmiką i programowaniem. Dowiedz się, jak rozwiązywać problemy w postaci algorytmów i implementować je w językach Pascal i C++.

Algorytmika i programowanie

Struktury danych i ich zastosowanie

Szkoła ponadpodstawowa, Nauczyciele

Kurs ma na celu zapoznanie uczestników z różnymi strukturami danych oraz ich zastosowaniem.

Algorytmika i programowanie

Znajdowanie najkrótszych dróg i najkrótszych oraz najniższych drzew

Szkoła ponadpodstawowa, Nauczyciele

Kurs zapoznaje z elementami teorii grafów i obliczeń na grafach. Dowiesz się z niego, jak stosuje się grafy w informatyce (np. drzewa wyrażeń, drzewa algorytmów) oraz nauczysz się rozwiązywać klasyczne problemy obliczeniowe z ich wykorzystaniem.

Algorytmika i programowanie

Porządek wśród informacji kluczem do szybkiego wyszukiwania

Szkoła ponadpodstawowa, Nauczyciele

Kurs jest wprowadzeniem do algorytmiki. Zakres tematyczny obejmuje poszukiwania elementów w zbiorach nieuporządkowanych i uporządkowanych oraz problem porządkowania.

Algorytmika i programowanie

O relacjach i algorytmach

Szkoła ponadpodstawowa, Nauczyciele

Kurs przekazuje uczestnikom wiedzę na temat relacji dwuczłonowych i sposobów ich reprezentacji w postaci macierzy lub grafu.

Algorytmika i programowanie

Jak wnioskują maszyny

Szkoła ponadpodstawowa, Nauczyciele

Kurs dotyczy wprowadzenia do logiki z perspektywy jej zastosowań w informatyce i sztucznej inteligencji. Poznaj klasyczny rachunek zdań i związek między wyszukiwaniem a wnioskowaniem.

Algorytmika i programowanie

Po co informatykom logika?

Szkoła ponadpodstawowa, Nauczyciele

Kurs omawia zagadnienia związane z logiką oraz wykorzystaniem logiki w informatyce.

Algorytmika i programowanie

Fraktale wokół nas

Szkoła ponadpodstawowa, Nauczyciele

Celem kursu jest zapoznanie uczestników z tematem fraktali oraz omówienie zagadnień matematycznych dotyczących podobieństwa i samopodobieństwa figur.

Algorytmika i programowanie

Programowanie współbieżne w informatyce i nie tylko

Szkoła ponadpodstawowa, Nauczyciele

Kurs omawia najważniejsze zagadnienia dotyczące programowania współbieżnego.

Algorytmika i programowanie

Mechaniczne dowodzenie twierdzeń

Szkoła ponadpodstawowa, Nauczyciele

Kurs porusza zagadnienia dotyczące automatycznego dowodzenia twierdzeń. Uczestnicy omówią również podstawy dotyczące logiki zdań.

Algorytmika i programowanie

Zaawansowane algorytmy

Szkoła ponadpodstawowa, Nauczyciele

Kurs pomoże uczestnikom w zgłębianiu najtrudniejszych zagadnień algorytmicznych, które pojawiają się na konkursach informatycznych.

Algorytmika i programowanie

Pomysł, przepis, program… i co dalej?

Szkoła ponadpodstawowa, Nauczyciele

Kurs przekazuje uczestnikom wiadomości dotyczące algorytmu wydawania reszty.

Algorytmika i programowanie

Strukturalnie czy obiektowo – czyli droga do sukcesu

Szkoła ponadpodstawowa, Nauczyciele

Kurs obejmuje treści w zakresie programowania obiektowego – przybliża jego cechy oraz podstawowe pojęcia, takie jak klasa, obiekt, konstruktor, modyfikator dostępu, hermetyzacja.   

Algorytmika i programowanie

Razem można więcej – podstawy pracy zespołowej

Szkoła ponadpodstawowa, Nauczyciele

Kurs przedstawia informacje związane z wykorzystywanymi w procesie tworzenia systemów informatycznych narzędziami CASE oraz z językiem UML.

Algorytmika i programowanie

Podstawy programowania okienkowego w środowisku Visual Studio

Szkoła ponadpodstawowa, Nauczyciele

Kurs dotyczy podstaw programowania okienkowego w środowisku Visual Studio oraz programowania obiektowego. Poznaj język C# i dowiedz się, jak rozwiązywać problemy programistyczne.

Algorytmika i programowanie

Wprowadzenie do programowania obiektowego

Szkoła ponadpodstawowa, Nauczyciele

Kurs stanowi wprowadzenie do obiektowego modelu programowania z przykładami w języku C#. Poznaj istotne elementy tego popularnego języka programowania.

Algorytmika i programowanie

Podstawy języka Python

Szkoła ponadpodstawowa, Nauczyciele

Kurs wprowadza użytkownika w świat języka Python, pozwalającego tworzyć zaawansowane aplikacje dla różnych systemów operacyjnych.

Algorytmika i programowanie

Tworzenie aplikacji mobilnych

Szkoła ponadpodstawowa, Nauczyciele

Kurs zawiera informacje teoretyczne i praktyczne na temat tworzenia aplikacji kalkulatora dla systemu Android.

Algorytmika i programowanie

Podstawy analizy danych w języku Python

Szkoła ponadpodstawowa, Nauczyciele

Celem kursu jest omówienie podstawowych zagadnień związanych z analizą danych w języku Python.

Algorytmika i programowanie

Programowanie w Scratch Junior z Klubem Młodego Programisty

Szkoła podstawowa, Nauczyciele

(klasy I–III, rodzice)

Kurs jest pierwszym krokiem w nauce programowania. Uczestnicy poznają możliwości aplikacji Scratch Junior i stworzą w niej swoje pierwsze programy. Nauczą się wykonywać animacje, kartki okolicznościowe i proste gry zręcznościowe. Przekonają się też, że programowanie to sposób na kreatywne spędzenie czasu.

Algorytmika i programowanie

Programowanie w Scratch 3.0 z Klubem Młodego Programisty

Szkoła podstawowa, Nauczyciele

(klasy IV–VI, rodzice)

Kurs uczy programowania blokowego od podstaw. Uczestnicy zapoznają się z funkcjonalnościami aplikacji Scratch 3.0 i stworzą w niej swoje pierwsze programy (animacje, gry zręcznościowe, gry przygodowe). Nauczą się wykorzystywać konstrukcje warunkowe, pętle, zmienne i funkcje podczas tworzenia programów. Poznają też zasady remiksowania projektów.

Algorytmika i programowanie

Programowanie w Pythonie z Klubem Młodego Programisty – poziom podstawowy

Szkoła podstawowa, Nauczyciele

W dzisiejszych czasach programowanie to umiejętność, która może dać nam wiele możliwości. Python jest jednym z wiodących języków programowania. Według corocznych ankiet prowadzonych przez serwis Stack Overflow od kilku lat utrzymuje się w ścisłej czołówce najbardziej pożądanych języków wśród programistów. Poznaj podstawy Pythona z Klubem Młodego Programisty.

Algorytmika i programowanie

Programowanie w Pythonie z Klubem Młodego Programisty – poziom średnio zaawansowany

Szkoła ponadpodstawowa, Nauczyciele

W dzisiejszych czasach programowanie to umiejętność, która może dać nam wiele możliwości. Python jest jednym z wiodących języków programowania. Według corocznych ankiet prowadzonych przez serwis Stack Overflow od kilku lat utrzymuje się w ścisłej czołówce najbardziej pożądanych języków wśród programistów. Kontynuuj naukę Pythona z Klubem Młodego Programisty.

Algorytmika i programowanie

Python z KMP na CodeWeek 2022 – poziom podstawowy

Szkoła podstawowa, Szkoła ponadpodstawowa, Nauczyciele

Język obiektowy Python to jeden z popularnych języków programowania, który ciągle zyskuje nowe zastosowania w dziedzinie informatyki, a specjaliści coraz częściej dostrzegają jego potencjał. Dlatego właśnie na CodeWeek przygotowaliśmy propozycję dotyczącą Pythona.

Algorytmika i programowanie

Python z KMP na CodeWeek 2022 – poziom średnio zaawansowany

Szkoła ponadpodstawowa, Nauczyciele

Język obiektowy Python to jeden z popularnych języków programowania, który ciągle zyskuje nowe zastosowania w dziedzinie informatyki, a specjaliści coraz częściej dostrzegają jego potencjał. Dlatego właśnie na CodeWeek przygotowaliśmy propozycję dotyczącą Pythona.

Algorytmika i programowanie

Scratch Junior z KMP na CodeWeek 2022

Szkoła podstawowa, Szkoła ponadpodstawowa, Nauczyciele

Moduł jest rozwinięciem kursu „Programowanie w Scratch Junior z Klubem Młodego Programisty”. Dzięki materiałowi uczniowie jeszcze lepiej poznają możliwości aplikacji Scratch Junior i stworzą w niej zegar przypominający, że CodeWeek może trwać cały rok. Nauczą się wykonywać animację z dźwiękami i przekonają się, że kodowanie to sposób na kreatywne spędzenie czasu.

Algorytmika i programowanie

Scratch 3.0 z KMP na CodeWeek 2022

Szkoła ponadpodstawowa, Nauczyciele

Moduł „CodeWeek i Scratch 3.0 – codeweekowa gra przygodowa” to rozwinięcie kursu „Programowanie w Scratch 3.0”. Uczestnicy przypomną sobie funkcjonalności programu Scratch 3.0, a następnie stworzą grę przygodową nawiązującą do inicjatywy CodeWeek. Nauczą m.in. się wykorzystywać konstrukcje warunkowe, pętle oraz zmienne podczas tworzenia programów.

Informacje o kursie

Programowanie współbieżne w informatyce i nie tylko

Szkoła ponadpodstawowa, Nauczyciele

Algorytmika i programowanie