Uniwersytet Warszawski - Centralny System UwierzytelnianiaNie jesteś zalogowany | zaloguj się
katalog przedmiotów - pomoc

Języki i narzędzia programowania III

Informacje ogólne

Kod przedmiotu: 1000-225bJNP3 Kod Erasmus / ISCED: 11.303 / (brak danych)
Nazwa przedmiotu: Języki i narzędzia programowania III
Jednostka: Wydział Matematyki, Informatyki i Mechaniki
Grupy: Przedmioty obowiązkowe dla III roku informatyki
Przedmioty obowiązkowe dla III roku JSIM - wariant 3I+4M
Punkty ECTS i inne: 2.00
Język prowadzenia: polski
Rodzaj przedmiotu:

obowiązkowe

Wymagania (lista przedmiotów):

Wstęp do programowania (podejście imperatywne) 1000-211bWPI

Skrócony opis:

Celem tego przedmiotu pokazanie studentom konkretnych języków i narzędzi programistycznych.

Pełny opis:

Celem tego przedmiotu pokazanie studentom konkretnych języków i narzędzi programistycznych. Dynamiczny rozwój informatyki pwoduje, że stale powstają nowe języki, środowiska i technologie informatyczne. Zestaw języków i narzędzi, o których warto by było opowiedzieć studentom, poszerza się z każdym rokiem. Są to zagadnienia bardzo ważne dla każdego, kto chce zajmować się praktycznymi zastosowanieami informatyki. Z drugiej strony program zajęć uniwersyteckich jest w naturany sposób nakierowany na przedstawianie tych zagadnień, które są ogólne i w małym stopniu zależne od aktualnych trendów. Nie ma też możliwości pomieszczenia w nim wszystkich pojawiających się nowości. Chcąc pogodzić ze sobą te dwie sprzeczne ze soba potrzeby (nowości i stabilności) wprowadzamy do naszego planu zajęć 30-godzinne kursy.

Literatura:

Specyficzna dla danego kursu (zwykle będzie to dokumentacja języka programowania i jego środowiska bądź dokumentacja przedstawianego narzędzia).

Efekty uczenia się:

Wiedza

Zna szczegółowo wybrane narzędzie lub język programowania [K_W02, K_W09, K_W10].

Umiejętności

Potrafi realizować projekty programistyczne w wybranym narzędziu lub języku programowania [K_U05].

Kompetencje

Potrafi samodzielnie zdobywać i pogłębiać swoją wiedzę na temat wybranego narzędzia lub języka programowania [K_K04].

Metody i kryteria oceniania:

Praca zaliczeniowa. Szczegóły podane przez prowadzącego zajęcia w grupie.

Zajęcia w cyklu "Semestr zimowy 2020/21" (w trakcie)

Okres: 2020-10-01 - 2021-01-31
Wybrany podział planu:


powiększ
zobacz plan zajęć
Typ zajęć: Ćwiczenia, 30 godzin więcej informacji
Koordynatorzy: Piotr Wasilewski
Prowadzący grup: Marcin Benke, Robert Bogucki, Michał Gruchała, Henryk Michalewski, Jan Kanty Milczek, Michał Sierakowski, Piotr Wasilewski, Maciej Włodarkiewicz
Lista studentów: (nie masz dostępu)
Zaliczenie: Zaliczenie na ocenę
Pełny opis:

* Grupa 1 i 2. Machine Learning w praktyce. Prowadzący: Robert Bogucki, Henryk Michalewski, Jan Kanty Milczek

Celem zajęć jest przybliżenie studentom praktycznej wiedzy z zakresu uczenia maszynowego. Oprócz korzystania z istniejących narzędzi, studenci będą tworzyć własne implementacje algorytmów.

Tematy:

1. Czym jest uczenie maszynowe, uczenie nadzorowane i nienadzorowane, regresja, klasyfikacja.

2. Algorytmy uczenia maszynowego (kNN, regresja liniowa i logistyczna, SVM, GBM, FM, drzewa decyzyjne, lasy losowe, ...).

3. Inżynieria i selekcja cech, techniki redukcji wymiaru, regularyzacja, ocena jakości modelu.

4. Narzędzia (R, scikit-learn, Vowpal Wabbit).

5. Uczenie maszynowe online.

6. Ensembling modeli, meta-klasyfikacja.

7. Sieci neuronowe i deep learning.

8. Case study.

9. Przetwarzanie tekstu (Bag of Words, N-gramy, LDA, TF-IDF).

* Grupa 3. Wstęp do programowania w z/OS. Michał Sierakowski

Celem zajęć jest przedstawienie klasycznych technik programowania w systemie operacyjnym z/OS. Program obejmuje wprowadzenie do architektury komputerów IBM Z i systemu z/OS, podstawy programowania w języku COBOL, serwer aplikacyjny CICS oraz bazę danych DB2 z uwzględnieniem interfejsu CICS-DB2. Wszystkie zawarte w programie technologie należą do uniwersalnych i najpowszechniej stosowanych technik w środowiskach z/OS, a stanowią punkt wyjścia do poznania innych mechanizmów tego systemu operacyjnego. Jednocześnie początkowa część zajęć (5 godzin) obejmująca

wprowadzenie do architektury sprzętowej jest podstawą do poznania innych, poza z/OS, systemów operacyjnych ekosystemu IBM Z: z/VM i Linux oraz funkcji realizowanych na poziomie sprzętowym (wirtualizacja, kryptografia). Będące integralną częścią przedmiotu zadania programistyczne będą realizowane w środowisku zdalnym.

1. Wstęp: wprowadzenie do architektury IBM Z i systemu operacyjnego z/OS, sesja TSO, ISPF/PDF, JCL, zarządzanie zadaniami (kolejki, SDSF), model bezpieczeństwa systemu.

2. Język COBOL: wprowadzenie do programowania w języku COBOL, struktura

programu, obsługa tablic i plików, wywoływania i łączenie, run unit, funkcje wewnętrzne i funkcje zaawansowane.

3. Serwer aplikacyjny CICS: środowisko programistyczne CICS i przegląd poleceń, tworzenie aplikacji w CICS, podstawowe wsparcie dla odwzorowań, sterowanie program-program, dostęp do danych, kolejki, programowanie komunikacji z użytkownikiem w CICS.

4. Baza danych DB2 dla z/OS: architektura, mechanizmy DB2, monitorowanie i

sterowanie, autoryzacja i transakcje, narzędzia użytkowe DB2 dla z/OS, środowisko CICS - DB2

* Grupa 4. Przetwarzanie informacji przez człowieka. Piotr Wasilewski

Celem zajęć jest przedstawienie podstawowych zagadnień związanych z przetwarzaniem informacji przez człowieka z uwzględnieniem kwestii interakcji człowiek - komputer. Zostaną omówione podstawy wyjaśniania zachowań człowieka w terminach przetwarzania informacji wraz z podstawami paradygmatu eksperymentalnego badania zachowań. Na zaliczenie zajęć studenci w małych grupach przygotują komputerowe programy eksperymentalne i przeprowadzą badania dotyczące przetwarzania informacji przez ludzi.

* Grupa 5. Wprowadzenie do procesów i technologii wytwarzania gier komputerowych. Maciej Włodarkiewicz

Celem zajęć będzie wprowadzenie do procesów i technologii wytwarzania gier komputerowych. Zaczniemy od wprowadzenia teoretycznego i zapoznania z wyzwaniami jakie stoją przed twórcami gier a następnie skupimy się na warsztacie na którym, studenci będą samodzielnie tworzyć grę komputerową w oparciu o znany silnik Unity3D i język programowania C#. Zajęcia będą dzielone w proporcji wykłady/ćwiczenia: 30/70

Tematy zajęć:

1. Wprowadzenie do procesów tworzenia gier komputerowych

2. Wyzwania organizacyjne w procesie tworzenia gier

3. Wyzwania technologiczne w procesie tworzenia gier

4. Modele realizacji projektów

5. Tworzenie gry komputerowej.

Format:

Pierwsze kilka zajęć spędzimy na wprowadzeniu do branży i wyzwań, będzie to realizowane w postaci wykładów z dużą interakcją od studentów. Następnie przez ok 8-10 zajęć będziemy pisać razem prostą grę komputerową w oparciu o popularne technologie C# Unity. Studenci będą mogli śledzić cały proces poprzez działania prowadzącego. Ostatnie dwa zajęcia są zarezerwowane na zaliczenie: prezentacji swojego tytułu dla całej grupy.

* Grupa 6. Zaawansowane programowanie funkcyjne. Marcin Benke

Celem kursu jest przedstawienie najważniejszych zagadnień nowoczesnego programowania funkcyjnego w języku Haskell. Wśród poruszanych zagadnień znajdą się m.in.

1. Podstawy programowania deklaratywnego

2. Typy i klasy

* typy podstawowe

* typy algebraiczne i klasy typów

3. Funkcje polimorficzne funkcje wyższego rzędu

4. Funktory

5. Leniwa ewaluacja

6. Wejście-wyjście oraz inne efekty

7. Testowanie programów funkcyjnych

* Grupa 7. Aplikacje web - Michał Gruchała

Architektura, wydajność i skalowalność mikroserwisów w aplikacjach internetowych

Celem zajęć będzie przedstawienie nowoczesnych technik budowy wydajnych i skalowalnych aplikacji internetowych, które składają się z wielu mikroserwisów. Wydajność i skalowalność zapewni nam cache, sharding baz danych oraz rozwiązania NoSQL.

W ramach zajęć będziemy używać technologii / poruszać następujące zagadnienia:

- Architektura aplikacji www, z naciskiem na architekturę mikroserwisów

- Konteneryzacja aplikacji (na przykładzie Docker)

- Skalowalność baz danych (replikacja, sharding)

- Cache (na przykładzie Varnish-Cache)

- Rozwiązania NoSQL (na przykładzie Redis i Elasticsearch)

Zajęcia odbywać się będą w formie warsztatów, gdzie uczestnicy będą tworzyć własne rozwiązania oparte o prezentowane techniki.

Opisy przedmiotów w USOS i USOSweb są chronione prawem autorskim.
Właścicielem praw autorskich jest Uniwersytet Warszawski.