Projektowanie systemów informatycznych 2400-IiE2PSI
Kurs obejmuje:
1. Wprowadzenie do projektowania nowoczesnych systemów informatycznych
a. wspieranie analizy danych i procesów decyzyjnych przez systemy informatyczne
b. wykorzystanie algorytmów data science w systemach informatycznych
2. Podstawy projektowania systemów
a. gromadzenie i analiza wymagań funkcjonalnych i niefunkcjonalnych
b. dokumentacja i specyfikacja wymagań w procesie projektowania
3. Cykl życia systemu informatycznego
a. etapy tworzenia systemu: analiza, projektowanie, implementacja, testowanie, wdrażanie
b. zarządzanie projektem systemu informatycznego
4. Metodologie tworzenia oprogramowania
a. Agile, SCRUM, Waterfall - porównanie i zastosowanie
b. Wybór odpowiedniej metodologii do projektu
5. Wzorce architektury systemów informatycznych, podstawy UML
6. Narzędzia i technologie
a. wykorzystanie języka programowania R w odpowiednim środowisku IDE
b. implementacja metod przetwarzania i eksploracji danych
7. Eksploracja i przetwarzanie danych nieustrukturyzowanych
a. źródła pozyskiwanie danych
b. techniki czyszczenia, normalizacji i tokenizacji tekstu
8. Modelowanie tekstu i uczenie maszynowe
a. model Bag of Words i jego zastosowanie
b. uczenie maszynowe nadzorowane i nienadzorowane w analizie tekstu
9. Wizualizacja danych i ich interpretacja
a. tworzenie wykresów, chmur słów i interaktywnych raportów
b. praktyczne zastosowania wizualizacji w eksploracji danych
10. Praca z kodem i repozytorium GitHub
a. współpraca w zespole przy projektach programistycznych
b. wersjonowanie kodu, commitowanie i zarządzanie repozytorium
11. Podejście Reproducible research
a. dokumentowanie kodu i analiz dla powtarzalności wyników
b. tworzenie interaktywnych raportów (np. w R Markdown)
12. Praktyczne zastosowania i case studies
a. wykonywanie zadań
b. analiza case studies i dyskusja
13. Analiza ryzyka w projektowaniu systemów informatycznych
a. Macierz ryzyka
b. Metody zarządzania ryzykiem
14. Zastosowanie języka R
a. wybór ze względu na jego wszechstronność i popularność
b. rozwijanie umiejętności w pracy z R jako kontynuacja nauki z wcześniejszych etapów studiów
Rodzaj przedmiotu
Założenia (opisowo)
Koordynatorzy przedmiotu
Efekty kształcenia
- wiedza
1. Student wie na czym polega i czemu służy projektowanie systemów informatycznych, jego specyfika i czym różni się od projektowania w innych dziedzinach. Zna i rozumie trudności i bariery projektowania systemów informatycznych wspierających analizę danych i procesy decyzyjne oparte na algorytmach data science.
2. Student zna i rozumie podstawy metodyczne projektowania systemów informatycznych. Ma wiedzę dotyczącą projektowania systemów zgodnie z zasadami inżynierii oprogramowania, aby przeciwdziałać „chałupniczemu” wytwarzaniu systemów.
3. Wie, jakie istnieją rozwiązania modelowe (tzw. cykle życia oprogramowania), będące podstawą stosowanych w praktyce metodyk projektowania i jest świadomy możliwości ich modyfikacji stosownie do potrzeb danej sytuacji projektowania systemu. Ma wiedzę o wykorzystywaniu i łączeniu metod i narzędzi podejścia technicznego w projektowaniu z elementami „miękkimi”, aktywizującymi członków zespołów projektowych.
4. Student ma wiedzę o podstawach, zaletach i wadach najbardziej rozpowszechnionych podejść do projektowania.
5. Student zna na poziomie podstawowym zagadnienia związane z metodami projektowania systemów informatycznych.
6. Student ma wiedzę w zakresie wybranych narzędzi i umie wskazać języki programowania wpierające kodowanie na podstawie projektów opracowanych zgodnie z podejściem zasady budowy programów.
7. Student zna podstawowe zasady i techniki stosowania wybranych metodyk. Umie zorganizować zespół projektowy i zna zasady współpracy w zespołach projektowych.
8. Student zna i rozumie podstawowe pojęcia podejścia obiektowego do projektowania systemów.
9. Student ma wiedzę o podstawach Ujednoliconego Języka Modelowania (Unified Modeling Language, UML) systemów informatycznych oraz jego elementach.
10. Student ma wiedzę dotyczącą podstaw zarządzania projektami informatycznymi. Zna podstawowe standardy zarządzania projektami i metody prowadzenia projektów.
11. Rozumie i zna trudności dokonywania analizy i oceny ryzyka w projektowaniu systemów informatycznych.
12. Posiada wiedzę o nowoczesnych trendach w rozwoju technologii informatycznych, takich jak data science, text mining i uczenie maszynowe, na których mogą bazować systemy informatyczne i których włączenie w projekt pozwala uzyskać korzyści biznesowe.
- umiejętności
1. Student potrafi zastosować odpowiednie podejście do stworzenia projektu systemu informatycznego wspierającego analizę danych i procesy decyzyjne oparte na algorytmach data science.
2. Student ma umiejętność określenia wymagań w stosunku do systemu informatycznego, który ma zostać zaprojektowany oraz potrafi przeanalizować warunki, w jakich zostanie on wdrożony oraz przeanalizować ryzyka.
3. Student posiada umiejętność określenia potrzeb w zakresie informatyzacji przedsiębiorstwa oraz przekazania ich w sposób zrozumiały dla informatyka. Potrafi opisać konkretny problem związany z funkcjonowaniem danego systemu i znaleźć jego rozwiązanie.
4. Student potrafi czytać ze zrozumieniem diagramy, składające się na model systemu informatycznego.
5. Student umie zastosować narzędzia programistyczne do stworzenia modelu systemu informatycznego wspierającego analizę danych i procesy decyzyjne oparte na algorytmach data science.
6. Student potrafi przeanalizować i opracować zadany problem naukowy oraz zaprezentować go na forum grupy.
7. Student wyraża swoją ciekawość badawczą i otwartość na zjawiska ekonomiczne osadzone w informatyce gospodarczej.
- kompetencje społeczne
1. Student rozumie w jakim celu tworzy się projekty systemów informatycznych. Ma świadomość nowoczesnych systemów, wspierających analizę danych i procesy decyzyjne oparte na algorytmach data science.
2. Student wykazuje gotowość do poszerzania swojej wiedzy samodzielnie wyszukaną literaturą naukową na określony temat.
3. Student umie pracować w grupie, jest w stanie pełnić rolę aktywnego i „świadomego” współuczestnika (obok informatyków) budowy przepływów danych infrastruktury informatycznej przedsiębiorstwa.
4. Student zna i rozumie zagadnienia związane z korzystaniem z oprogramowania open-source, w tym języka R i środowiska IDE, oraz jego licencjonowaniem.
KW01, KW02, KW03, KU01, KU02, KU03, KK01, KK02, KK03
Kryteria oceniania
Ocena wystawiana jest na podstawie:
- aktywności podczas zajęć - 50% oceny końcowej. Obejmuje zaangażowanie w konwersację i aktywny udział w dyskusjach na zajęciach oraz realizację zadań, ćwiczeń i case studies, a także sporządzanie notatek z zajęć.
- wykonania projektu zaliczeniowego – 50% oceny końcowej.
Do zaliczenia niezbędne jest uzyskanie łącznie minimum 51% punktów.
Zaliczenie łączy następujące metody oceny zdobytej na zajęciach wiedzy: aktywne dyskusje na dany temat, aktywność podczas zajęć, sporządzanie notatek z zajęć, realizacja zadań, ćwiczeń i case studies oraz wykonanie projektu zaliczeniowego.
Literatura
Pozycje podstawowe:
- Farley D., Nowoczesna inżynieria oprogramowania. Stosowanie skutecznych technik szybszego rozwoju oprogramowania wyższej jakości, Helion 2023
- Śmiałek M., Rybiński K., Inżynieria oprogramowania w praktyce. Od wymagań do kodu z językiem UML, Helion 2024
- Hoover D. H., Oshineye A., Praktyka czyni mistrza. Wzorce, inspiracje i praktyki rzemieślników programowania, Helion, 2017
Pozycje uzupełniające:
- Hombergs T., Nie bój się ubrudzić rąk, tworząc czystą architekturę. Projektowania aplikacji wysokiej jakości na przykładach w Javie, Helion, 2025
- Caelen O., Blete M. A., Tworzenie aplikacji z wykorzystaniem GPT-4 i ChatGPT. Buduj inteligentne chatboty, generatory treści i fascynujące projekty, Helion 2024
- Gutman A. J., Goldmeier J., Analityk danych. Przewodnik po data science, statystyce i uczeniu maszynowym, Helion 2023
- Wróblewski P., Machine learning i natural language processing w programowaniu. Podręcznik z ćwiczeniami w Pythonie, Helion, 2024
- Krohn J., Beyleveld G., Bassens A., Uczenie głębokie i sztuczna inteligencja. Interaktywny przewodnik ilustrowany, Helion 2020
Więcej informacji
Dodatkowe informacje (np. o kalendarzu rejestracji, prowadzących zajęcia, lokalizacji i terminach zajęć) mogą być dostępne w serwisie USOSweb: