Celem zajęć jest przedstawienie podstawowych metod i algorytmów rozwiązywania typowych zadań obliczeniowych. Omawiane zagadnienia mają wielorakie zastosowania m.in. w obliczeniach naukowych czy grafice komputerowej.

Virtual course for first-year students of Data Science.

Inżynieria oprogramowania -- szkoła przyszłych szefów

Przedmiot stanowi wprowadzenie do fundamentalnych zagadnień związanych z projektowaniem, semantyką i implementacją języków programowania, prezentowanych w systematyczny i rygorystyczny sposób przy użyciu wybranego formalizmu matematycznego.

Kurs języka Rust 2019

Kurs obecnie prowadzony zdalnie, opis i materiały do kursu na stronie https://e-edu.cko.uni.wroc.pl/user/index.php?id=3431 (dostępne po zalogowaniu) 

Półsemestralny kurs obejmuje naukę podstaw programowania równoległego kart graficznych w oparciu o bibliotekę CUDA firmy NVIDIA.

Współczesne karty graficzne zawierają coraz większą moc obliczeniową w postaci wielu równoległych jednostek obliczeniowych i są wykorzystywane nie tylko do generowania grafiki. Biblioteka CUDA umożliwia programowanie kart graficznych przy pomocy rozszerzeń języka C. W ten sposób możemy wykonywać obliczenia często szybciej niż na CPU. Wymaga to jednak niskopoziomowego programowania w oparciu o bardziej skomplikowany model pamięci.

Głównym celem kursu jest nabycie umiejętności programowania równoległego w technologii CUDA zagadnień nie tylko związanych z grafiką komputerową. W tym celu konieczne jest poznanie architektury współczesnych kart graficznych i ograniczeń które wpływają na wybór algorytmu i sposób implementacji na karcie graficznej. W tym roku ze względu na pracę zdalną najwygodniej mieć własną kartę firmy NVidia lub opcjonalnie korzystać przez VPN z komputerów w pracowni 7 (wtedy zdalnie niestety  bez grafiki). 

Korespondencja i materiały pomocnicze zpl-a na ćwiczenia i pracownię z inżynierii oprogramowania (IO).

Wykład z podstaw grafiki komputerowej wprowadza podstawowe metody i niezbędną teoretyczną wiedzę umożliwiając efektywne programowanie grafiki z użyciem kart graficznych. W części praktycznej na pracowni uczymy się programować w nowoczesnej wersji OpenGL (wersja 3.3 lub nowsza).

Na wykładzie przedstawię szereg wyników dotyczących rozstrzygalności/nierozstrzygalności i złożoności obliczeniowej logik motywowanych teorią informatyki.

W programie m.in.: logiki modalne, temporalne i deskrypcyjne, logiki z dwiema zmiennymi, fragmenty strzeżone, logika z unarną negacją. Wykład będzie oparty głównie na pracach opublikowanych w ciągu ostatnich dwudziestu kilku lat, choć opowiem oczywiście również o paru klasycznych wynikach, sięgając m.in. do prac Kurta Gödla.

Projekt dyplomowy pod opieką LGR

Tematem seminarium jest przegląd wybranych zagadnień związanych z procedurami redukującymi λ-termy, od tych czysto syntaktycznych po normalizatory wyższego rzędu realizujące strategię normalizacji przez ewaluację w meta języku.

Celem wykładu jest zapoznanie słuchaczy z wybranymi aspektami systemu uniksowego z punktu widzenia administratora i programisty. Na przykładzie wywołań systemowych i narzędzi systemu Linux zostaną przedstawione najważniejsze osiągnięcia w dziedzinie systemów operacyjnych.

Wykład jest wprowadzeniem do programowania systemów wbudowanych. W ramach wykładu student zapozna się z architekturą popularnych mikrokontrolerów, nauczy się wykorzystywać ich peryferia do sterowania różnorodnymi urządzeniami zewnętrznymi, a także pozna popularne magistrale używane w systemach wbudowanych.

Celem tego kursu jest nauczenie i rozwinięcie podstawowych umiejętności programowania w jednym z najbardziej rozpowszechnionych języków imperatywnych — języku C. Wykład jest ilustrowany wieloma przykładami, a towarzyszące mu zajęcia w pracowniach uczą (poprzez wiele drobnych zadań i końcowy projekt) praktyki dobrego programowania. W końcowej części wykładu wprowadzane są niektóre elementy języka C++.

Celem zajęć jest przedstawienie studentom praktyki projektowania obiektowego oprogramowania. Zajęcia w zwięzły sposób łączą podstawową wiedzę z zakresu baz danych i inżynierii oprogramowania w obszarze projektowania obiektowego w wybranych współczesnych realiach technologicznych.

C++ to obiektowy język programowania z długą i bogatą historią. Stworzony przez Bjarne Stroustrupa w roku 1983, doczekał się pierwszego standardu ISO/IEC 14882:1998 w 1998 roku, znanego jako C++98. Następnie kilkukrotnie standard ten był aktualizowany: C++03, C++11 oraz C++14. Ostatnia, najnowsza wersja standardu ISO/IEC 14882:2017, nazwana C++17, opublikowana została w grudniu 2017 roku. Obecnie trwają prace nad kolejną wersją standardu, na razie roboczo nazywanego C++2a.

Język C++ jest jednym z najpopularniejszych obecnie języków programowania, przeznaczonych do tworzenia programów o charakterze systemowym, inżynierskim oraz do pisania gier komputerowych. Umożliwia pisanie przenośnych aplikacji zarówno pod Windowsa, Linuxa oraz inne systemy operacyjne. Język ten oferuje potężne możliwości - pozwala ukrywać skomplikowane rozwiązania pod prostymi interfejsami wysokiego poziomu i jednocześnie tworzyć kod działający na niskim poziomie, gdy wymagane są wysoka wydajność i niskie obciążenie.

Biblioteka standardowa języka C++ jest jego częścią i należy do standardu. Uzupełnia sam język logicznymi strukturami, czyniąc go łatwiejszym w używaniu. STL, czyli standardowa biblioteka szablonów, jest trzonem biblioteki standardowej. Powinna być pierwszą rzeczą jakiej trzeba się nauczyć zaraz po opanowaniu języka C++.

Kurs zaawansowanych technik w C++ i STL ma zapoznać studentów z najnowszymi elementami samego języka programowania jak również z całą biblioteką standardową.

Najważniejsze informacje dla nowych studentów rozpoczynających naukę w roku akademickim 2020/21.