Karta przedmiotu

  • Status:
  • Gotowy

1DI2153 - Algorytmy w inżynierii danych

Nazwa w drugim języku: 
Algorithms in data science
  • Nazwa skrócona:AWID
  • Numer katalogowy:1DI2153
  • Reprezentuje kierunek: M,D,PL - Informatyka Stosowana
  • Odpowiedzialny za przedmiot: dr inż. Bartosz Chaber
  • Strona WWW przedmiotu: Info  
  • Język wykładowy:PL
  • Liczba punktów ECTS:4
  • Poziom przedmiotu: Średniozaawansowany
  • Forma zaliczenia przedmiotu:Egzamin
  • Wymiar godzin:
  • W: 30, P: 10
Przedmiot realizowany w planach wzorcowych:
  • Informatyka stosowana Semestr: 1 Etap: Model 2, magisterskie II-go stopnia, stacjonarne, polski, Wersja programu studiów: WPS2023Z/2024L
  • Informatyka stosowana Semestr: 1 Etap: Model 2, magisterskie II-go stopnia, stacjonarne, polski, Wersja programu studiów: WPS2021Z/2022L
  • Informatyka stosowana Semestr: 1 Etap: Model 2, magisterskie II-go stopnia, stacjonarne, polski, Wersja programu studiów: WPS2020Z/2021L
  • Informatyka stosowana Semestr: 1 Etap: Model 2, magisterskie II-go stopnia, stacjonarne, polski, Wersja programu studiów: WPS2022Z/2023L
  • Informatyka stosowana Semestr: 1 Etap: Model 2, magisterskie II-go stopnia, stacjonarne, polski, Wersja programu studiów: WPS2019Z/2020L
Obieralny dla katalogów:
Znalazłem 0 pozycji. (Pokaż szczegóły)
Cel przedmiotu: 
Celem przedmiot jest przygotowanie studentów do świadomego wykorzystywania algorytmów, metodyk programowania oraz środowisk programistycznych ukierunkowanych na przetwarzanie i analizę danych numerycznych. Ukończenie przedmiotu umożliwi studentom tworzenie rzeczywistych aplikacji uwzględniających analizę danych pomiarowych, symulacyjnych oraz z zakresu statystyki i systemów rekomendacyjnych. Przedmiot ma za zadanie przygotować słuchaczy do krytycznego doboru, dostosowanego do konkretnego zagadnienia metod numerycznych oraz ich implementacji w nowoczesnych językach programowania. Zasadniczym celem jest przygotowanie do samodzielnej analizy i implementacji algorytmów z naciskiem na ich zajętość pamięciową oraz złożoność obliczeniową.
Treści kształcenia: 
* Wprowadzenie do nowoczesnych języków przetwarzania danych (Python, Julia)
* Metodyka przetwarzania danych (praca interaktywna, skryptowa oraz tworzenie systemów przetwarzania danych)
* Przetwarzanie danych statystycznych (rodzaje regresji)
* Systemy uczące (ang. Machine Learning) z nauczycielem i bez nauczyciela
* Algorytmy przetwarzania danych tekstowych
* Implementacja algorytmów geometrycznych (struktury danych do przechowywania danych topologicznych)
* Modelowanie układów dynamicznych (na przykładzie wyznaczania optymalnej trasy z predykcją czasu osiągnięcia celu)
* Programowanie dynamiczne, algorytmy zachłanne
* Problemy NP-zupełne
Bibliografia: 
1. Cormen Thomas H., Leiserson Charles E., Rivest Ronald L, Clifford Stein, Wprowadzenie do algorytmów, 2018
2. Martin Kleppmann, Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems, 2017, O’Reilly Media, 2017, ISBN: 1449373321, 9781449373320
3. Mykel Kochenderfer, Tim Wheeler, Algorithms for Optimization, MIT Press, 2019, ISBN: 0262039427, 978-0262039420
4. Chris Rackauckas †, ""A Deep Introduction to Julia for Data Science and Scientific Computing"", url: http://ucidatascienceinitiative.github.io/IntroToJulia/, dostęp: 27.02.2020.
5. Ben Lauwens, Allen Downey, 2018, ""Think Julia"", url: https://benlauwens.github.io/ThinkJulia.jl/latest/book.html, dostęp: 27.02.2020
Metody oceny: 
Ocena końcowa jest wystawiana na podstawie pisemnego testu oraz oceny zrealizowanego projektu. Projekt końcowy musi być dostarczony w formie raportu oraz musi zostać obroniony w formie prezentacji.
Uwagi: 
-
Przedmioty na których bazuje dany przedmiot (prerekwizyty):
  • Efekty Kształcenia dla kierunku Informatyka Stosowana:
  • Wiedza
    Kod Efekt Kształcenia dla kierunku Procent Efekt kształcenia dla przedmiotu Sposób sprawdzania
    I2_W01 Ma rozszerzoną i pogłębioną wiedzę z zakresu matematyki przydatną do formułowania i rozwiązywania złożonych zadań z zakresu informatyki obejmującą wybrane zagadnienia dotyczące: a) analizy matematycznej, b) algebry, c) probabilistyki, d) metod numerycznych, e) optymalizacji. ++ (66%)
    W ramach przedmiotu student zdobywa wiedzę z zakresu metod numerycznych w zastosowaniach ukierunkowanych na przetwarzanie danych (zarówno klasycznych zbiorów jak i wielkich zbiorów danych).
    Ocena odpowiedzi na pytania opisowe na egzaminie pisemnym.
    I2_W01b ma rozszerzoną i pogłębioną wiedzę z zakresu matematyki przydatną do formułowania i rozwiązywania złożonych zadań z zakresu informatyki, obejmującą wybrane zagadnienia dotyczące

    algebry

    + (33%)
    Student zdobywa wiedzę związana z efektywną implementacją metod z zakresu algebry liniowej wykorzystując algorytmy bezpośrednie jak i iteracyjne.
    Ocena implementacji projektu oraz odpowiedzi na pytania na egzaminie pisemnym.
    I2_W01d ma rozszerzoną i pogłębioną wiedzę z zakresu matematyki przydatną do formułowania i rozwiązywania złożonych zadań z zakresu informatyki, obejmującą wybrane zagadnienia dotyczące

    metod numerycznych

    +++ (100%)
    Student zdobywa wiedzę związaną z implementacją struktur danych oraz algorytmów numerycznych ukierunkowaną na przetwarzanie
    danych.
    Ocena implementacji projektu oraz odpowiedzi na pytania na egzaminie pisemnym.
    I2_W04b ma uporządkowaną, podbudowaną teoretycznie wiedzę ogólną obejmującą kluczowe zagadnienia z zakresu

    algorytmów i złożoności

    ++ (66%)
    Student zdobywa wiedzę an temat metod analizy złożoności zaawansowanych algorytmów numerycznych.
    Ocena wniosków oraz analizy wyników uzyskanych w ramach projektu.
    I2_W06a ma wiedzę o trendach rozwojowych i najistotniejszych nowych osiągnięciach z zakresu

    informatyki

    + (33%)
    Student zapoznanej się z nowoczesnymi językami programowania algorytmów numerycznych.
    Ocena odpowiedzi na egzaminie pisemnym dotyczących nowoczesnych rozwiązań zastosowanych w języku programowania Julia. Ocena przeglądu literatury oraz wyboru narzędzi do rozwiązania zadania projektowego.
    I2_W08c zna podstawowe, stosowane przy rozwiązywaniu złożonych zadań inżynierskich z zakresu informatyki

    narzędzia

    + (33%)
    Student wykorzystuje zaawansowane narzędzia programistyczne oraz wizualizacji danych do przeprowadzania eksploracji danych.
    Ocena zastosowanych narzędi do wizualizacji i eksploracji danych w ramach zaimpleentowanego projektu.
  • Umiejętności
    Kod Efekt Kształcenia dla kierunku Procent Efekt kształcenia dla przedmiotu Sposób sprawdzania
    I2_U01 Potrafi pozyskiwać informacje z literatury, baz danych oraz innych właściwie dobranych źródeł w wersji drukowanej i elektronicznej, w tym w Internecie, także w języku angielskim albo francuskim lub niemieckim w zakresie informatyki, potrafi integrować uzyskane informacje, dokonywać ich interpretacji i krytycznej oceny, a także wyciągać wnioski, formułować i wyczerpująco uzasadniać opinie. + (33%)
    Potrafi przeygotować analizę bieżącego stanu wiedzy związanego z metodami symulacyjnymi dla konkretnego zagadnienia technicznego i przygotować jej opracowanie.
    Ocena przygotowanego raportu końcowego zwłaszcza w kontekście sekcji dotyczącej analizy bieżącego stanu wiedzy.
    I2_U08 Potrafi planować i przeprowadzać eksperymenty, w tym pomiary, symulacje komputerowe, interpretować uzyskane wyniki i wyciągać wnioski. + (33%)
    Student potrafi zaplanować eksperyment potwierdzający założenia teoretyczne oraz wykonać ich krytyczną analizę.
    Ocena implementacji projektu zwłaszcza w kontekście zaprojektowanego samodzielnie przez studenta eksperymentu numerycznego potwierdzającego tezę związaną z własności wybranego algorytmu przetwarzania danych.
    I2_U15 Potrafi dokonać krytycznej analizy sposobu funkcjonowania i ocenić, zwłaszcza w powiązaniu z informatyką, istniejące rozwiązania techniczne, w szczególności maszyny, urządzenia, obiekty, systemy, procesy i usługi. + (33%)
    potrafi dokonać krytycznej analizy sposobu funkcjonowania i ocenić narzędzia programistyczne do wykonania postawionego zadania technicznego
    Ocena zastosowanych rozwiązań oraz wniosków w raporcie zrealizowanego projektu.
    I2_U18 Potrafi ocenić przydatność rutynowych metod i narzędzi służących do rozwiązania zadania inżynierskiego charakterystycznego dla informatyki, w tym dostrzec ograniczenia tych metod i narzędzi; potrafi, stosując także koncepcyjnie nowe metody, rozwiązywać złożone zadania inżynierskie, charakterystyczne dla informatyki, w tym zadania nietypowe oraz zadania zawierające komponent badawczy. + (33%)
    potrafi ocenić przydatność rutynowych metod i narzędzi służących do rozwiązania zadań związanych z wizualizacją oraz przetwarzaniem dużych zbiorów danych numerycznych zwracając uwagę na ich wiarygodność oraz czytelność.
    Ocena analizy wyników zrealizowanego projektu, którego celem jest porównanie efektywności wybranych algorytmów przetwarzania danych, odpowiedź na pytania egzaminacyjne.
  • Kompetencje społeczne
    Kod Efekt Kształcenia dla kierunku Procent Efekt kształcenia dla przedmiotu Sposób sprawdzania
    Brak efektów kształcenia
    • Punkty ECTS za zajęcia kontaktowe z nauczycielem: 2 
    • Punkty ECTS za zajęcia praktyczne łącznie; kontaktowe i bez kontaktu z nauczycielem: 3 
    • Uzasadnienie punktów ECTS:
    • Zajęcia kontaktowe z nauczycielem: 
      Uczestnictwo w wykładach prowadzonych w formie warsztatowej przed komputerem (30h). Wprowadzenie oraz krytyczna ocena realizacji projektów, prezentacja opracowanych projektów w grupie (10h).
    • Zajęcia bez kontaktu z nauczycielem: 
      (25h) - Przygotowanie i utrwalanie materiałów z wykładu.
      (30h) - Samodzielna realizacja projektu.
      (25h) - Rozwiązanie ćwiczeń postawionych na części wykładowo- warsztatowej.
      • Sumaryczna liczba godzin pracy studenta: 120 
    • Łączna liczba punktów ECTS wynika z sumarycznej liczby godzin pracy studenta.