Przedmiot ma na celu przedstawienie uczestnikom podstawowych algorytmów używanych przez uczestników podczas takich zawodów jak Olimpiada Informatyczna bądź Akademickie Mistrzostwa Polski w Programowaniu Zespołowym.
W ramach przedmiotu Architektura Komputerów będziemy poznawali budowę współczesnych procesorów, akceleratorów (np. kart graficznych), a także sieci łączących te elementy w ramach jednego układu scalonego. Wiedza zdobyta w ramach tego przedmiotu pozwoli na projektowanie własnych procesorów, a także ułatwi zrozumienie decyzji projektowych stojących za architekturą sprzętu, z którym mamy do czynienia na co dzień jako programiści niskopoziomowi.
Wykład oferuje intensywne wprowadzenie do budowy i zasad działania komputerów z punktu widzenia programisty. Po zaliczeniu przedmiotu studenci powinni rozumieć jaki wpływ ma architektura komputera na wydajność aplikacji, które przyjdzie im implementować w praktyce zawodowej.
Bazy danych 2025
Advances in digital photography have made great interest in Digital Image Processing (DIP) area and created new research field of Computational Photography (CP). In this lecture we will present both classical DIP methods which are the main tools in image editors as well as the new methods from the CP.

Krzywe i powierzchnie to podstawowe obiekty grafiki komputerowej. To właśnie przy ich pomocy można modelować skomplikowane kształty i sceny, którym nadaje się później cechy realistyczne i wykorzystuje na przykład w animacji komputerowej.

Głównym celem wykładu jest przedstawienie podstawowych wiadomości na temat narzędzi pozwalających efektywnie reprezentować i modelować krzywe oraz powierzchnie różnego typu i wygładzać przy ich pomocy dane. Szczególny nacisk położony będzie na omówienie odpowiednich technik i algorytmów z tym związanych, które pozwolą uczestnikom zajęć przygotować własny edytor krzywych i powierzchni.

C++ to obiektowo zorientowany język programowania. Został on zaprojektowany przez Bjarne'a Stroustrupa z myślą o programowaniu systemowym oraz do zaawansowanych obliczeń inżynierskich. Świadome używanie C++ do rozwiązywania problemów algorytmicznych daje dużo satysfakcji doświadczonym programistom, zwłaszcza dlatego, że generowany przez kompilator kod jest bardzo efektywny.

Celem kursu jest zapoznanie studentów z bogatą składnią języka C++, różnorodnymi technikami stosowanymi w programowaniu w C++ oraz z wybranymi fragmentami biblioteki STL.

Celem projektu jest praktyczna nauka architektur komputerów poprzez ich implementację w formie umożliwiającej syntezę na układy FPGA. Pierwszym krótkoterminowym celem projektu jest zaimplementowanie minimalnego rdzenia RISC-V (RV32I) w mikroarchitekturze out-of-order. Implementacja będzie miała w założeniu modularny charakter „generatora rdzeni”, umożliwiający dodawanie, rekonfigurację i wymianę elementów składowych rdzenia bez głębokich zmian w kodzie.

Wprowadzenie do (skończonej) teorii modeli. Dostęp do kursu po wcześniejszym kontakcie mailowym.
Wykład jest wprowadzeniem do projektowania układów cyfrowych. Celem wykładu jest nauczenie zasad rządzących funkcjonowaniem elektroniki cyfrowej oraz typowych rozwiązań stosowanych przy projektowaniu układów. Wiedza zdobyta na wykładzie pomoże w zrozumieniu zasady działania mikroprocesorów i mikrokontrolerów oraz zasad rządzących programowalnymi układami logicznymi FPGA.
Metody programowania to jeden z przedmiotów obowiązkowych. Jego zasadniczym celem jest objaśnienie zasad rządzących językami programowania oraz ich implementacjami: interpreterami i kompilatorami. Przedmiot ma charakter praktyczny: zagadnienia są prezentowane przy użyciu funkcyjnego języka programowania. Kładziony jest nacisk na używanie języków programowania jako formalnych narzędzi komunikacji między ludźmi.
Język C# i platforma .NET to kluczowe elementy ekosystemu platformy Windows - i nie tylko, z uwagi na multiplatformowość środowiska. Otwiera to rozliczne zastosowania, w tym programowanie aplikacji desktop, web, gamedev czy devops. W trakcie wykładu szczegółowo zapoznamy się z możliwościami języka i platformy. Zajęcia skierowane do wszystkich zainteresowanych poszerzeniem swojego warsztatu.
Wykład skierowany jest do przyszłych architektów i projektantów systemów informatycznych oraz do wszystkich programistów zainteresowanych udoskonaleniem swojego warsztatu. Celem wykładu jest zapoznanie studentów z kanonem współczesnych narzędzi w zakresie projektowania obiektowego oprogramowania.

Seminarium poświęcone jest automatom skończonym, algorytmom uczenia maszynowego oraz ich zastosowaniom w różnych dziedzinach. Program obejmuje zagadnienia od podstaw teoretycznych po zaawansowane metody uczenia i wykorzystanie automatów w różnych dziedzinach, w tym w weryfikacji formalnej. Przygotowanie i prezentacja wybranego tematu umożliwiają rozwinięcie umiejętności analizy, pracy z literaturą naukową oraz komunikowania złożonych zagadnień.

Każdy uczestnik dostanie jeden temat do przygotowania i zaprezentowania reszcie grupy.

Internet jaki jest każdy widzi.

Java to współczesny obiektowy język programowania stworzony przez Jamesa Goslinga z firmy Sun Microsystems. Od momentu powstania w połowie lat 90-tych XX wieku przeżył on dynamiczny rozwój a zainteresowanie nim nie maleje. Język Java przyciągnął do dziś wiele milionów programistów. Znajduje zastosowanie w każdej ważniejszej gałęzi przemysłu informatycznego i jest obecny w różnego rodzaju urządzeniach, komputerach i sieciach. Popularność Javy wynika przede wszystkim z przenośności programów i niezależności od konkretnej platwormy sprzętowej, a co za tym idzie, ma zastosowanie w Internecie oraz ogólnie w aplikacjach sieciowych. Jego podstawowe koncepcje zostały przejęte z języka Smalltalk (maszyna wirtualna, odśmiecanie pamięci) oraz z języka C++ (znaczna część składni i słów kluczowych).

Zajęcia te to kontynuacja kursu Javy z poprzedniego semestru. Celem tych zajęć jest poznanie najpopularniejszych obecnie technologii używanych przez zawodowych programistów Javy.