Aktualizacja materiałów na rok 2023/2024

This commit is contained in:
Krzysztof Jassem 2023-10-02 18:11:03 +02:00
parent 58877bee30
commit 826cd5a16a
42 changed files with 204 additions and 4274 deletions

View File

@ -4,7 +4,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# Organizacja zajęć na przedmiocie Systemy Informatyczne (2022 - 2023)"
"# Organizacja zajęć na przedmiocie Systemy Informatyczne Analizy Danych (2023 - 2024)"
]
},
{
@ -12,9 +12,12 @@
"metadata": {},
"source": [
"## 1. Informacje o przedmiocie\n",
"Systemy informatyczne to przedmiot prowadzony w formie wykładów i laboratoriów dla studentów III semestru studiów magisterskich na kierunku Analiza i Przetwarzanie Danych. \n",
"Celem przedmiotu jest zaznajomienie studentów z przebiegiem tworzenia systemu informatycznego - od powstania wizji projektu do realizacji działającego prototypu. Cel ten będzie realizowany poprzez kształcenie następujących umiejętności u studentów:\n",
"Systemy informatyczne analizy danych to przedmiot prowadzony w formie wykładów i laboratoriów dla studentów III semestru studiów magisterskich na kierunku Analiza i Przetwarzanie Danych. \n",
"Celem przedmiotu jest zaznajomienie studentów z przebiegiem tworzenia systemu informatycznego z zakresu analizy danych - od powstania wizji projektu do realizacji działającego prototypu. Cel ten będzie realizowany poprzez kształcenie następujących umiejętności u studentów:\n",
"\n",
"- metody prototypowania\n",
"- znajomość systemów kontroli wersji\n",
"- stosowanie ciągłej integracji i ciągłej ewalaucji \n",
"- rozwój kreatywności w projektowaniu systemu informatycznego\n",
"- poznanie charakterystyki innowacyjnego systemu informatycznego\n",
"- rozwój umiejętności współpracy w zespole\n",
@ -57,25 +60,24 @@
"source": [
"## 3. Zasady zaliczenia wykładów\n",
"\n",
"Wykład może być zaliczony albo na podstawie punktów uzyskanych za rozwiązywanie testów podawanych na wykładzie, albo poprzez egzamin końcowy. \n",
"\n",
"Za prawidłowe odpowiedzi na pytania testowe podawane podczas wykładu studenci otrzymują punkty (1 punkt za prawidłową odpowiedź). Testy rozwiązywane mogą być na dowolnych urządzeniach, które dysponują przeglądarką internetową. System do testów jest osiągalny pod adresem: \n",
"### Testy podczas prowadzenia wykładów \n",
"Podczas wykładów (standardowo w środku i na końcu wykładu) przeprowadzane są testy. Za prawidłowe odpowiedzi na pytania testowe podawane podczas wykładu studenci otrzymują punkty (1 punkt za prawidłową odpowiedź). Testy rozwiązywane mogą być na dowolnych urządzeniach, które dysponują przeglądarką internetową. System do testów jest osiągalny pod adresem: \n",
" **cybertest2.wmi.amu.edu.pl** \n",
"Logowanie do systemu odbywa się za pomocą standardowych danych dostępowych na WMI. \n",
"\n",
"**UWAGA: Rozwiązywanie testów dozwolone jest tylko podczas obecności na wykładzie.**\n",
"**UWAGA: Rozwiązywanie testów dozwolone jest tylko podczas obecności na wykładzie. Rozwiązywanie testów poza wykładem skutkuje koniecznością egzaminu pisemnego.**\n",
"\n",
"Wykładowca zobowiązuje się do przeprowadzenia testów z minimum 120 pytaniami podczas całego kursu (standardowo: 5 pytań powtórkowych na początku wykładu i 5 pytań na końcu wykładu). \n",
"Wykładowca zobowiązuje się do przeprowadzenia testów z minimum 120 pytaniami podczas całego kursu. \n",
"\n",
"### Zwolnienia z egzaminu na podstawie punktów z wykładu\n",
"Student zwolniony jest z egzaminu z oceną dostateczny plus lub wyższą, wynikającą z punktów zdobytych za rozwiązanie zadań testowych podawanych na wykładach. \n",
"### Egzamin: ustny i pisemny \n",
"Student jest dopuszczony do egzaminu **ustnego**, jeśli zdobędzie co najmniej 70 punktów w ciągu całego kursu. \n",
"\n",
"Studenci niespełniający powyższego kryterium zdają egzamin obejmujący materiał przedstawiany na wykładach. Studenci mogą zdawać egzamin również w sytuacji, gdy nie satysfakcjonuje ich ocena uzyskana na podstawie zdobytych punktów.\n",
"Studenci niespełniający powyższego kryterium zdają egzamin **pisemny** obejmujący materiał przedstawiany na wykładach. \n",
"\n",
"**Rozwiązywanie testu przez osobę nieobecną na wykładzie jest niezgodne z podanymi zasadami i uniemożliwia tej osobie zwolnienie z egzaminu na podstawie punktów z wykładu.**\n",
"Zdobycie odpowiedniej liczby punktów gwarantuje minimalną ocenę z egzaminu ustnego. \n",
"\n",
"\n",
"### Skala ocen z wykładu \n",
"### Ocena minimalna z egzaminu na podstawie zdobytych punktów \n",
"<table>\n",
" <tr>\n",
" <td>Liczba prawidłowych odpowiedzi</td> <td>Ocena</td>\n",
@ -93,9 +95,13 @@
" <td>70-79</td><td>3,5</td>\n",
" </tr>\n",
" <tr>\n",
" <td>poniżej</td><td>egzamin</td>\n",
" <td>poniżej</td><td>egzamin pisemny</td>\n",
" </tr>\n",
"</table>\n"
"</table>\n",
"\n",
"Wykładowca ma prawo podwyższyć ocenę minimalną na podstawie:\n",
" - notatek z wykładów\n",
" - oceny kompetencji studenta podczas egzaminu ustnego. "
]
},
{
@ -134,9 +140,6 @@
" </tr>\n",
" <tr>\n",
" <tr>\n",
" <td>Prezentacja koncepcji</td><td>30</td>\n",
" </tr>\n",
" <tr>\n",
" <td>Sprinty</td><td>6 x 10 = 60</td>\n",
" </tr>\n",
" <tr>\n",
@ -144,10 +147,10 @@
" </tr>\n",
" <tr>\n",
" <tr>\n",
" <td>Harmonogram wsteczny (zadanie bonusowe z wykładu nr 13) </td><td>20</td>\n",
" <td>Harmonogram wsteczny </td><td>30</td>\n",
" </tr>\n",
" <tr> \n",
" <td>Suma</td><td>600+20</td>\n",
" <td>Suma</td><td>600</td>\n",
" </tr>\n",
"</table>\n",
"\n",
@ -201,7 +204,7 @@
" <td>Liczba punktów</td> <td>Ocena</td>\n",
" </tr>\n",
" <tr>\n",
" <td>500-620</td><td>5</td>\n",
" <td>500-600</td><td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <td>450-499</td><td>4,5</td>\n",

View File

@ -4,7 +4,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# Organizacja demonstracji projektów\n",
"# Organizacja demonstracji projektów w roku akademickim 2022/2023\n",
"Informacje dotyczą dmemostracji projektów na zajęciach SYI. "
]
},
@ -114,7 +114,7 @@
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
@ -128,7 +128,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.12"
"version": "3.8.5"
}
},
"nbformat": 4,

View File

@ -1,139 +0,0 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Organizacja prezentacji koncepcji projektów w dniu 8 listopada\n",
"Informacje dotyczą prezentacji koncepcji projektów. \n",
"Podane poniżej informacje mogą ulec korektom do dnia 7 listopada."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Termin i forma prezentacji\n",
" * Wszystkie prezentacje powinny znaleźć się w odpowiednim folderze na Teamsach w nieprzekraczalnym terminie 6 listopada.\n",
" * Prezentacje będą prowadzone publicznie podczas zajęć przewidzianych na laboratorium w dniu 8 listopada o godz. 17.15. Prezentacje odbędą się w auli C, Szacowany czas na jedną prezentację to 10 minut.\n",
" * Podczas prezentacji wskazana jest obecność \"na scenie\" całej grupy. Nie jest jednak wymagane, aby wypowiadali się wszyscy studenci.\n",
" * Wszystkie prezentacje powinny zostaćprzekazane "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Ocena prezentacji\n",
" * Każda prezentacja, spełniająca podstawowe oczekiwania dot. prezentacji, otrzyma ocenę bazową: 20 punktów. \n",
" * Do oceny bazowej zostaną doliczone punkty bonusowe za prezentacje wyróżnione przez:\n",
" * studentów,\n",
" * prowadzących oraz zaproszonych gości.\n",
" * Punkty bonusowe przyznane przez obie grupy odbiorców są sumowane.\n",
"\n",
" * Wyróżnienia będą przyznawane na podstawie wyników ankiet. W ramach ankiety każdy student i każdy prowadzący (gość) będzie poproszony o wskazanie pięciu najlepszych prezentacji. Studenci nie mogą głosować na prezentacje swoich grup.\n",
"\n",
" * Ankieta dla studentów: https://forms.gle/W4hASsPH8MEvF4fe9\n",
"\n",
" * Ankieta dla gości oraz prowadzących poszczególne grupy: https://forms.gle/F5jqhtLpQoX95KcT8\n",
" \n",
"\n",
"### Prezentacje wyróżnione przez studentów\n",
"\n",
"<table>\n",
" <tr>\n",
" <td>Miejce</td> <td> Nazwa projektu </td> <td>Punkty bonusowe</td>\n",
" </tr>\n",
" <tr> \n",
" <td>1. </td><td> Grupa 7 (Brydż) </td> <td>10</td>\n",
" </tr>\n",
" <tr>\n",
" <td> 2. / 3. </td><td> Grupa 3 (BiedronApp) </td> <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2. / 3.</td><td> Grupa 2 (SmartHome WRSD) </td><td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4.</td><td> Grupa 1 (FinTech) </td><td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <td>5.</td><td> Grupa 5 (AUTOWycena)</td><td>2</td>\n",
" </tr>\n",
"</table> \n",
"\n",
"### Prezentacje wyróżnione przez prowadzących i gości\n",
"<table>\n",
" <tr>\n",
" <td>Miejce</td> <td> Nazwa projektu </td> <td>Punkty bonusowe</td>\n",
" </tr>\n",
" <tr> \n",
" <td>1. / 2. </td> <td> Grupa 3 (BiedronApp) </td> <td>9</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1. / 2.</td> <td> Grupa 7 (Brydż) </td> <td>9</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3.</td> <td> Grupa 5 (AUTOWycena) </td><td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4</td><td> Grupa 1 (FinTech) </td><td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <td>5</td><td> Grupa 2 (SmartHome WRSD) </td> <td>2</td>\n",
" </tr>\n",
"</table> \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Plan zajęć\n",
" * Wprowadzenie (17.15 - 17.20)\n",
" \n",
" * Prezentacje\n",
"\n",
" * Team A (17.20)\n",
" \n",
" * Team B (17.30)\n",
" \n",
" * Team C (17.40)\n",
" \n",
" * Team D (17.50)\n",
" \n",
" * Team E (18.00)\n",
" \n",
" * Team F (18.10)\n",
" \n",
" * Team G (18.20)\n",
" \n",
" * Wypełnienie ankiet i zakończenie (18.30 - 18.45)\n",
"\n",
"\n",
"\n",
"\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.6"
}
},
"nbformat": 4,
"nbformat_minor": 4
}

View File

@ -1,243 +0,0 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Organizacja zajęć na przedmiocie Systemy Informatyczne (2022 - 2023)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 1. Informacje o przedmiocie\n",
"Systemy informatyczne to przedmiot prowadzony w formie wykładów i laboratoriów dla studentów III semestru studiów magisterskich na kierunku Analiza i Przetwarzanie Danych. \n",
"Celem przedmiotu jest zaznajomienie studentów z przebiegiem tworzenia systemu informatycznego - od powstania wizji projektu do realizacji działającego prototypu. Cel ten będzie realizowany poprzez kształcenie następujących umiejętności u studentów:\n",
"\n",
"- rozwój kreatywności w projektowaniu systemu informatycznego\n",
"- poznanie charakterystyki innowacyjnego systemu informatycznego\n",
"- rozwój umiejętności współpracy w zespole\n",
"- nabycie umiejętności menedżerskich\n",
"- nabycie umiejętności pozyskiwania inwestorów dla projektów informatycznych\n",
"- rozwój umiejętności występowania publicznego\n",
"- doskonalenie umiejętności pracy zespołowej metodykami zwinnymi\n",
"- poznanie praktyk ciągłej integracji. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 2. Efekty kształcenia\n",
"Student:\n",
" - Rozumie społeczne aspekty pracy zespołowej w projekcie informatycznym.\n",
" - Potrafi określić cechy innowacyjnego projektu informatycznego.\n",
" - Potrafi wizualizować system informatyczny za pomocą makiety.\n",
" - Potrafi przygotować się do procesu pozyskiwania inwestorów dla systemu informatycznego.\n",
" - Umie przygotować się do publicznej prezentacji koncepcji systemu informatycznego.\n",
" - Potrafi uczestniczyć w projekcie prowadzonym metodykami zwinnymi.\n",
" - Potrafi uczestniczyć w procesie ciągłej integracji.\n",
" - Potrafi zintegrować system ciągłej integracji z systemem kontroli wersji.\n",
" - Potrafi opracować specyfikację zakresu systemu informatycznego.\n",
" - Potrafi organizować pracę w trakcie rozwoju systemu informatycznego.\n",
" - Potrafi zaprojektować użyteczny system informatyczny.\n",
" - Umie zorganizować proces przeprowadzenia testów systemu informatycznego.\n",
" - Potrafi uruchomić procesy prowadzące do pozyskania systemu informatycznego o wysokiej jakości.\n",
" - Potrafi planować zadania w projekcie informatycznym.\n",
" - Zna specyfikę zarządzania projektem informatycznym.\n",
" - Potrafi przedstawić cele i działanie systemu informatycznego jego interesariuszom.\n",
" - Potrafi przygotować demonstrację systemu informatycznego.\n",
" - Potrafi zaprezentować publicznie cele i działanie systemu informatycznego.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 3. Zasady zaliczenia wykładów\n",
"\n",
"Wykład może być zaliczony albo na podstawie punktów uzyskanych za rozwiązywanie testów podawanych na wykładzie, albo poprzez egzamin końcowy. \n",
"\n",
"Za prawidłowe odpowiedzi na pytania testowe podawane podczas wykładu studenci otrzymują punkty (1 punkt za prawidłową odpowiedź). Testy rozwiązywane mogą być na dowolnych urządzeniach, które dysponują przeglądarką internetową. System do testów jest osiągalny pod adresem: \n",
" **cybertest2.wmi.amu.edu.pl** \n",
"Logowanie do systemu odbywa się za pomocą standardowych danych dostępowych na WMI. \n",
"\n",
"**UWAGA: Rozwiązywanie testów dozwolone jest tylko podczas obecności na wykładzie.**\n",
"\n",
"Wykładowca zobowiązuje się do przeprowadzenia testów z minimum 120 pytaniami podczas całego kursu (standardowo: 5 pytań powtórkowych na początku wykładu i 5 pytań na końcu wykładu). \n",
"\n",
"### Zwolnienia z egzaminu na podstawie punktów z wykładu\n",
"Student zwolniony jest z egzaminu z oceną dostateczny plus lub wyższą, wynikającą z punktów zdobytych za rozwiązanie zadań testowych podawanych na wykładach. \n",
"\n",
"Studenci niespełniający powyższego kryterium zdają egzamin obejmujący materiał przedstawiany na wykładach. Studenci mogą zdawać egzamin również w sytuacji, gdy nie satysfakcjonuje ich ocena uzyskana na podstawie zdobytych punktów.\n",
"\n",
"**Rozwiązywanie testu przez osobę nieobecną na wykładzie jest niezgodne z podanymi zasadami i uniemożliwia tej osobie zwolnienie z egzaminu na podstawie punktów z wykładu.**\n",
"\n",
"\n",
"### Skala ocen z wykładu \n",
"<table>\n",
" <tr>\n",
" <td>Liczba prawidłowych odpowiedzi</td> <td>Ocena</td>\n",
" </tr>\n",
" <tr> \n",
" <td>100-120</td><td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <td>90-99</td><td>4,5</td>\n",
" </tr>\n",
" <tr>\n",
" <td>80-89</td><td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <td>70-79</td><td>3,5</td>\n",
" </tr>\n",
" <tr>\n",
" <td>poniżej</td><td>egzamin</td>\n",
" </tr>\n",
"</table>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 4. Zasady zaliczenia z laboratoriów\n",
"\n",
"Laboratoria zaliczane są na podstawie punktów zdobywanych na poszczególnych zajęciach.\n",
"\n",
"Zadania wykonywane są w zespołach (maksymalnie) 4-osobowych. Wszystkie osoby z danego zespołu obecne na zajęciach otrzymują tę samą ocenę punktową.\n",
"\n",
"Punkty można uzyskiwać za:\n",
"\n",
" * wykonywanie zadań zaplanowanych na dane laboratorium,\n",
" * prezentację koncepcji projektu,\n",
" * realizację sprintów (począwszy od laboratorium nr 6),\n",
" * wykonanie prototypu potwierdzone demonstracją końcową.\n",
"\n",
"Student nieobecny na zajęciach ma możliwość uzyskania oceny punktowej nie wyższej niż 75% punktów zdobytych przez zespół. Warunkiem uzyskania punktów jest wykonanie w przeciągu tygodnia zadań zaproponowanych przez lidera zaspołu i zaakceptowanych przez prowadzącego.\n",
" \n",
"### Prototyp systemu informatycznego\n",
" \n",
"Przez prototyp systemu informatycznego rozumiana jest działająca wersja systemu informatycznego spełniająca wszystkie lub wybrane jego funkcje.\n",
"\n",
"W pliku **Tematy projektów** zaproponowano tematy projektów informatycznych. Studenci mają prawo opracowania własnego tematu projektu za akceptacją prowadzącego.\n",
" \n",
"\n",
"### Punktacja zadań wykonywanych na laboratorium\n",
"<table>\n",
" <tr>\n",
" <td>Typ zadania</td> <td>Maksymalna liczba punktów</td>\n",
" </tr>\n",
" <tr>\n",
" <td>Zadania na laboratoriach</td><td>12 x 30 = 360</td>\n",
" </tr>\n",
" <tr>\n",
" <tr>\n",
" <td>Prezentacja koncepcji</td><td>30</td>\n",
" </tr>\n",
" <tr>\n",
" <td>Sprinty</td><td>6 x 10 = 60</td>\n",
" </tr>\n",
" <tr>\n",
" <td>Wykonanie prototypu potwierdzone demonstracją</td><td>150</td>\n",
" </tr>\n",
" <tr>\n",
" <tr>\n",
" <td>Harmonogram wsteczny (zadanie bonusowe z wykładu nr 13) </td><td>20</td>\n",
" </tr>\n",
" <tr> \n",
" <td>Suma</td><td>600+20</td>\n",
" </tr>\n",
"</table>\n",
"\n",
"### Ocena prototypu\n",
"\n",
"Na przedostatnich zajęciach z laboratorium opiekun projektu decyduje, czy prototyp projektu spełnił swoje założenia.\n",
" \n",
"Jeśli prototyp nie spełnia założeń, to ocena końcowa wynosi 0 punktów (na 150).\n",
"\n",
"Jeśli prototyp spełnia założenia, to opiekun projektu proponuje ocenę w skali do 150 punktów.\n",
"\n",
"Proponowane składowe oceny implementacji prototypu:\n",
"\n",
"<table>\n",
" <tr> \n",
" <td> Za co? </td> <td> Maksymalna liczba punktów do zdobycia </td>\n",
" </tr>\n",
" <tr> \n",
" <td> Functionality (funkcjonalność) </td> <td> 40 </td> \n",
" </tr>\n",
" <tr>\n",
" <td> Usability (Użyteczność) </td> <td> 30 </td>\n",
" </tr>\n",
" <tr> \n",
" <td> Reliability (niewystępowanie błędów) </td> <td> 20 </td>\n",
" </tr>\n",
" <tr>\n",
" <td>Performance (wydajność: zużycie zasobów, czas odpowiedzi) </td> <td>10 </td>\n",
" </tr>\n",
" <tr>\n",
" <td> Podręcznik użytkowania lub pomocy dla użytkownika) </td> <td> 10 </td>\n",
" </tr>\n",
" <tr> \n",
" <td>Raport z testowania wersji końcowej </td> <td> 20 </td>\n",
" </tr>\n",
" <tr>\n",
" <td> Raport użyteczności wersji końcowej </td> <td> 20 </td>\n",
" </tr>\n",
" <tr>\n",
" </tr>\n",
" <tr>\n",
" <td> SUMA </td> <td> 150 </td>\n",
" </tr>\n",
" </table>\n",
" \n",
"Ocena proponowana przez opiekuna jest weryfikowana przez komisję, w skład której wchodzą wszyscy opiekunowie po końcowej demonstracji publicznej prototypu.\n",
"\n",
"### Skala ocen z laboratorium\n",
"<table>\n",
" <tr>\n",
" <td>Liczba punktów</td> <td>Ocena</td>\n",
" </tr>\n",
" <tr>\n",
" <td>500-620</td><td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <td>450-499</td><td>4,5</td>\n",
" </tr>\n",
" <tr>\n",
" <td>400-449</td><td>4</td>\n",
" </tr>\n",
" <tr>\n",
" <td>350-399</td><td>3,5</td>\n",
" </tr>\n",
" <tr>\n",
" <td>300-349</td><td>3</td>\n",
" </tr>\n",
"</table>\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.5"
}
},
"nbformat": 4,
"nbformat_minor": 4
}

View File

@ -1,139 +0,0 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Organizacja prezentacji koncepcji projektów w dniu 8 listopada\n",
"Informacje dotyczą prezentacji koncepcji projektów. \n",
"Podane poniżej informacje mogą ulec korektom do dnia 7 listopada."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"##### Termin i forma prezentacji\n",
" * Wszystkie prezentacje powinny znaleźć się w odpowiednim folderze na Teamsach w nieprzekraczalnym terminie 6 listopada.\n",
" * Prezentacje będą prowadzone publicznie podczas zajęć przewidzianych na laboratorium w dniu 8 listopada o godz. 17.15. Prezentacje odbędą się w auli C, Szacowany czas na jedną prezentację to 10 minut.\n",
" * Podczas prezentacji wskazana jest obecność \"na scenie\" całej grupy. Nie jest jednak wymagane, aby wypowiadali się wszyscy studenci.\n",
" * Wszystkie prezentacje powinny zostaćprzekazane "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Ocena prezentacji\n",
" * Każda prezentacja, spełniająca podstawowe oczekiwania dot. prezentacji, otrzyma ocenę bazową: 20 punktów. \n",
" * Do oceny bazowej zostaną doliczone punkty bonusowe za prezentacje wyróżnione przez:\n",
" * studentów,\n",
" * prowadzących oraz zaproszonych gości.\n",
" * Punkty bonusowe przyznane przez obie grupy odbiorców są sumowane.\n",
"\n",
" * Wyróżnienia będą przyznawane na podstawie wyników ankiet. W ramach ankiety każdy student i każdy prowadzący (gość) będzie poproszony o wskazanie pięciu najlepszych prezentacji. Studenci nie mogą głosować na prezentacje swoich grup.\n",
"\n",
" * Ankieta dla studentów: https://forms.gle/W4hASsPH8MEvF4fe9\n",
"\n",
" * Ankieta dla gości oraz prowadzących poszczególne grupy: https://forms.gle/F5jqhtLpQoX95KcT8\n",
" \n",
"\n",
"### Prezentacje wyróżnione przez studentów\n",
"\n",
"<table>\n",
" <tr>\n",
" <td>Miejce</td> <td> Nazwa projektu </td> <td>Punkty bonusowe</td>\n",
" </tr>\n",
" <tr> \n",
" <td>1. </td><td> Grupa 7 (Brydż) </td> <td>10</td>\n",
" </tr>\n",
" <tr>\n",
" <td> 2. / 3. </td><td> Grupa 3 (BiedronApp) </td> <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <td>2. / 3.</td><td> Grupa 2 (SmartHome WRSD) </td><td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4.</td><td> Grupa 1 (FinTech) </td><td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <td>5.</td><td> Grupa 5 (AUTOWycena)</td><td>2</td>\n",
" </tr>\n",
"</table> \n",
"\n",
"### Prezentacje wyróżnione przez prowadzących i gości\n",
"<table>\n",
" <tr>\n",
" <td>Miejce</td> <td> Nazwa projektu </td> <td>Punkty bonusowe</td>\n",
" </tr>\n",
" <tr> \n",
" <td>1. / 2. </td> <td> Grupa 3 (BiedronApp) </td> <td>9</td>\n",
" </tr>\n",
" <tr>\n",
" <td>1. / 2.</td> <td> Grupa 7 (Brydż) </td> <td>9</td>\n",
" </tr>\n",
" <tr>\n",
" <td>3.</td> <td> Grupa 5 (AUTOWycena) </td><td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <td>4</td><td> Grupa 1 (FinTech) </td><td>3</td>\n",
" </tr>\n",
" <tr>\n",
" <td>5</td><td> Grupa 2 (SmartHome WRSD) </td> <td>2</td>\n",
" </tr>\n",
"</table> \n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Plan zajęć\n",
" * Wprowadzenie (17.15 - 17.20)\n",
" \n",
" * Prezentacje\n",
"\n",
" * Team A (17.20)\n",
" \n",
" * Team B (17.30)\n",
" \n",
" * Team C (17.40)\n",
" \n",
" * Team D (17.50)\n",
" \n",
" * Team E (18.00)\n",
" \n",
" * Team F (18.10)\n",
" \n",
" * Team G (18.20)\n",
" \n",
" * Wypełnienie ankiet i zakończenie (18.30 - 18.45)\n",
"\n",
"\n",
"\n",
"\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.5"
}
},
"nbformat": 4,
"nbformat_minor": 4
}

View File

@ -1,120 +0,0 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Tematy projektów proponowanych w roku akademickim 2022 /2023"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Anonimizacja zdjęć pojazdów\n",
"Celem projektu jest wytrenowanie algorytmu uczenia maszynowego, który znajduje i zasłania wrażliwe elementy na zdjęciu pojazdu. Są to m.in. tablice rejestracyjne i twarze osób znajdujących się w pojeździe.\n",
"Algorytm może bazować na kodzie otwarto-źródłowym. Do trenowania należy skorzystać z bazy danych zdjęć udostępnionej specjalnie dla tego projektu. Do oceny jakości algorytmu należy zastosować platformę Gonito (https://gonito.herokuapp.com/, https://gonito.net/).\n",
"W ramach projektu wskazane jest opracowanie również interfejsu użytkownika."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Wycena wartości szkody na podstawie zdjęć\n",
"Celem projektu jest wytrenowanie algorytmu uczenia maszynowego, który szacuje wartość szkody na podstawie zestawu zdjęć uszkodzonego pojazdu. Algorytm może bazować na kodzie otwarto-źródłowym. Do trenowania należy skorzystać z bazy danych zdjęć udostępnionej specjalnie dla tego projektu. Do oceny jakości algorytmu należy zastosować platformę Gonito (https://gonito.herokuapp.com/, https://gonito.net/).\n",
"W ramach projektu wskazane jest opracowanie również interfejsu użytkownika."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Portfel inwestycyjny\n",
"Celem projektu jest opracowanie algorytmu predykcji notowań spółek na bazie danych z www.gpw.pl/archiwum-notowan. Do oceny jakości algorytmu należy zastosować platformę Gonito (https://gonito.herokuapp.com/, https://gonito.net/).\n",
"Tak opracowany algorytm należy zastosować w atrakcyjnej aplikacji, np. w grze umożliwiającej analizę zysków i strat w oparciu o fikcyjne zakupy i sprzedaże papierów wartościowych wybranych spółek w zadanym okresie czasu."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Handel walutami\n",
"Celem projektu jest opracowanie algorytmu predykcji notowań walut na podstawie danych ze strony https://www.nbp.pl/home.aspx?f=/statystyka/kursy.html. Do oceny jakości algorytmu należy zastosować platformę Gonito (https://gonito.herokuapp.com/, https://gonito.net/).\n",
"Tak opracowany algorytm należy zastosować w atrakcyjnej aplikacji, np. w grze dla wielu osób handlujących walutami (w grze należy założyć, że gracze nie mają wglądu w przyszłe notowania i określić zasady zwycięstwa)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Generowanie obrazów z ich opisów \n",
"Celem projektu jest wykorzystanie otwartego kodu do generowania obrazów z tekstu (https://stability.ai/blog/stable-diffusion-public-release). (Przykład takiego wykorzystania można zobaczyć na stronie creator.nightcafe.studio.) W projekcie można wykorzystać dostępny kod w dowolny sposób. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Interaktywny system do uatrakcyjnienia wykładów\n",
"Kurs Systemy Informatyczne korzysta z systemu testowania wiedzy studentów podczas wykładów. Celem tego systemu jest zachęcenie studentów do systematycznego i aktywnego udziału w wykładach. W ramach projektu studenci mogą rozwinąć stosowany na wykładzie system **cybertest** (który oparty jest na otwartoźródłowym kodzie Tao Testing) lub zaproponować zupełnie inny system, który może pomóc wykładowcy w urozmaiceniu wykładu. "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## \tProjekt dydaktyczny \n",
"Celem projektu jest stworzenie aplikacji, która ułatwia zrozumienie i stosowanie wybranego pojęcia lub metody z matematyki lub informatyki. Przykładem aplikacji tego typu jest serwis regexper.com, który wyjaśnia, dlaczego tekst pasuje do wyrażenia regularnego i który fragment tekstu pasuje do którego fragmentu wzorca."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Aplikacja mobilna\n",
"Celem projektu jest wykorzystanie technologii pomocnych w tworzeniu aplikacji mobilnych. Przykładowym tematem projektu może być aplikacja mobilna optymalizująca zamówienie jedzenia/napojów składanego przez wiele osób (na wynos lub w restauracji) w taki sposób, by rachunek był jak najmniejszy."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-success\">\n",
" \n",
"<h2>Czym jest system Gonito?</h2>\n",
"\n",
"Gonito to platforma do oceny skuteczności algorytmów sztucznej inteligencji. W systemie Gonito tworzone są tzw. wyzwania, które służą do ewaluacji rozwiązań określonego zadania. Wyzwanie składa się z następujących elementów:\n",
"<ul>\n",
"<li>opis zadania, które ma być rozwiązane algorytmem uczenia maszynowego;\n",
"<li>otwarte repozytorium algorytmów służących do rozwiązania zadania; użytkownicy platformy przekazują swoje propozycje algorytmów do tego repozytorium;\n",
"<li> zestaw danych testowych, do których porównywane są wyniki działania wszystkich algorytmów znajdujących się w repozytorium;\n",
"<li> metryka oceny algorytmów z repozytorium;\n",
"<li> tabela ocen algorytmów z repozytorium wyliczonych według metryki oceny.\n",
" </ul>\n",
"<div>"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.5"
}
},
"nbformat": 4,
"nbformat_minor": 4
}

View File

@ -4,14 +4,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Systemy informatyczne</h1>\n",
"<h2> 1. <i>Organizacja pracy zespołowej</h2> \n",
"<h3>Krzysztof Jassem (2022)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
"<h3>Krzysztof Jassem (2023)</h3>\n",
"</div>\n"
]
},
{
@ -28,18 +25,17 @@
"metadata": {},
"source": [
"# Organizacja zespółów projektowych na laboratorium nr 1\n",
"Studenci organizaują się w zespoły maksymalnie 4-osobowe. Zespoły organizowane są przez osoby, które uzyskały najwyższe wyniki w teście na lidera przeprowadzonym na wykładzie.\n",
"Studenci organizaują się w zespoły maksymalnie 4-osobowe. \n",
"Liderem zespolu jest osoba, która uzyskała najwyższy wynik na wykładzie z testu na lidera.\n",
"\n",
"Wskazane jest, aby w grupie znaleźli się studenci o różnych osobowościach (względem motywacji i podejścia do pracy).\n",
"\n",
"Wskazane jest, aby w każdym zespole znalazły się osoby o zróznicowanych umiejętnościach:\n",
"* Wizjoner - osoba, która podejmuje decyzję o kierunku wspólnych prac: jaki projekt opracowujemy na Laboratorium 1. (Projekt może ulec zmianie do zajęć nr 3 włącznie).\n",
"* Specjalista grafik; jego zadaniem będzie stworzenie rysunku projektu interfejsu użytkownika - najlepiej za pomocą jakiegoś narzędzia.\n",
"* Bibliotekarz; jego zadaniem będzie opisanie wizji projektu słowami.\n",
"\n",
"W ten sposob tworzone są zespoły, które będą współpracować na laboratorium nr 1. \n",
"\n",
"Podczas Laboratorium 1. liderem zespołu jest osoba, która uzyskała najwyższy wynik w teście na lidera podczas wykładu. \n",
"* Lider - osoba, która kieruje pracami na zajęciach i wykonuje pisemny raport z prac. \n",
"* Artysta - grafik; jego zadaniem będzie stworzenie rysunku projektu interfejsu użytkownika - za pomocą jakiegoś narzędzia informatycznego lub ołówkiem na kartce\n",
"* Specjalista ML - jego zadaniem będzie wykonanie zadania z dziedziny uczenia maszynowego\n",
"* Specjalista Front-End - jego zadaniem będzie wykonanie front-endu zgodnego z projektem interfejsu użytkownika\n",
"\n",
"Zarówno składy zespołów, jak i liderzy mogą ulec zmianie do zajęć nr 3 włącznie."
]
@ -48,57 +44,61 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# Proponowany plan laboratorium"
"# Zadania"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Zadanie 1. Zorganizowanie zespołu projektowego.\n",
"Czas wykonania: 30 minut. \n",
"Rezultat: Dokument, zawierający informacje o liderze i pozostałych członkach zespołu oraz o opiekunie zespołu. \n",
"Dla lidera należy podać: \n",
" * Jego preferowany typ przywództwa wg charaketrystyki z wykładu,\n",
" * Typ motywacji i podejścia do zadań (np. A1) według klasyfikacji podanej na wykładzie.\n",
"## Zadanie 1. Projekt interfejsu użytkownika\n",
"\n",
"Dla pozostałych członków zespołu: \n",
" * Rola w zespole (deweloper, bibliotekarz, grafik itp.),\n",
" * Typ motywacji i podejścia do zadań (np. A1) według klasyfikacji podanej na wykładzie.\n",
"Treść zadania: Wykonać projekt interfejsu użytkownika do zadania programistycznego podanego w Zadaniu 2.\n",
" \n",
"Maksymalna ocena: 5 punktów"
"Rezultat: Dokument w postaci zeskanowanej kartki papieru lub plik graficzny.\n",
"\n",
"Ocena maksymalna: 5 punktów"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Zadanie 2. Burza mózgów i praca indywidualna\n",
"Czas: 30 minut.\n",
"## Zadanie 2. Zadanie z uczenia maszynowego\n",
"\n",
"Przebieg: Studenci dyskutują nad wizją projektu, którą chcą przedstawić jako efekt pracy na Laboratorium nr. 1. Może to być projekt, który zespół planuje implementować na przyszłych zajęciach. Lista proponowanych tematów projektów podana jest w pliku **Tematy projektów**. Jeśli takich planów nie ma, można opracować wizję systemu do prowadzenia testów na wykładach prowadzonych na WMI (lepszego od cybertest!). \n",
"Treść zadania: Wykonać zadanie informatyczne z zakresu uczenia maszynowego. Zadanie zostanie podane przez prof. Gralińskiego.\n",
" \n",
"Następnie każdy student indywidualnie szkicuje wizję projektu na kartce (w postaci interfejsu użytkownika lub schematu działania) i opisuje działanie systemu za pomocą 3-5 zdań. \n",
"Rezultat: Plik w języku programowania Python.\n",
"\n",
"Rezultat: Tyle dokumentów, ilu jest studentów w grupie. Kartki najlepiej sfotografować i umieścić w systemie Teams.\n",
" \n",
"Maksymalna ocena: 10 punktów"
"Ocena maksymalna: 10 punktów"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" ## Zadanie 3. Praca zespołowa\n",
"Czas: 30 minut. \n",
"## Zadanie 3. Interfejs użytkownika\n",
"\n",
"Cel: przedstawienie wspólnej wizji projektu. \n",
"Treść zadania: Wykonać interfejs użytkownika zgodny projektem interfejsu (nie implementujemy logiki systemu). (Dla osób niewprawionych pomocna może okazać się biblioteka Tkinter w języku Python.)\n",
" \n",
"Rezultat:\n",
" * jeden szkich interfejsu lub schematu działania wykonany w dowolnym programie graficznym (np. figma);\n",
" * jeden dokument (10-15 zdań) opisujący działanie projektowanego systemu.\n",
"Rezultat: Plik wykonywalny\n",
"\n",
"Maksymalna ocena: 15 punktów "
"Ocena maksymalna: 10 punktów"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Zadanie 4. Raport z zadań\n",
"\n",
"Treść zadania: Wykonać raport z zadań zawierający:\n",
" - nazwiska członków grupy oraz charakterystykę ich osobowości wg wykładu\n",
" - podręcznik użytkownika do zadań 2. i 3.\n",
" \n",
"Rezultat: Dokument tekstowy\n",
"\n",
"Ocena maksymalna: 5 punktów"
]
}
],

View File

@ -4,14 +4,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Systemy informatyczne</h1>\n",
"<h1> Systemy informatyczne analizy danych</h1>\n",
"<h2> 7. <i>Specyfikacja projektu informatycznego</i>[laboratorium]</h2> \n",
"<h3>Krzysztof Jassem (2022)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
"<h3>Krzysztof Jassem (2023)</h3>\n",
"</div>"
]
},
{
@ -19,7 +16,7 @@
"metadata": {},
"source": [
"# Cel laboratorium nr 7\n",
"Celem laboratorium jest opracowanie specyfikacji systemu informatycznego będącego wynikiem projektu B+R.\n"
"Celem laboratorium jest opracowanie specyfikacji systemu informatycznego analizy danych.\n"
]
},
{

View File

@ -4,14 +4,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Systemy informatyczne</h1>\n",
"<h1> Systemy informatyczne analizy danych</h1>\n",
"<h2> 8. <i>Testowanie w programowaniu zwinnym</i>[laboratorium]</h2> \n",
"<h3>Krzysztof Jassem (2022)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
"</div>"
]
},
{

View File

@ -4,13 +4,10 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div Projekt badawczo-rozwojowy</h1>\n",
"<h2> 9. <i>Testowanie integracyjne i systemowe</i>[laboratorium]</h2> \n",
"<h3>Krzysztof Jassem (2022)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
"<h3>Krzysztof Jassem (2023)</h3>\n",
"</div>"
]
},
{
@ -27,18 +24,31 @@
"source": [
"# Plan laboratorium\n",
"\n",
" ## Zadanie 1. Testy systemowe\n",
" ## Zadanie 1.\n",
"Dla Waszego systemu opracujcie po jednym przykładzie testu na każdym poziomie szczegółowości: \n",
" * \"smoke test\"\n",
" * \"sanity test\"\n",
" * \"regression test\"\n",
" \n",
"Maksymalna ocena: 10 punktów\n",
"\n",
" ## Zadanie 2. Plan testów\n",
"Opracujcie plan testów, zawierający przypadki testowe. \n",
"Należy założyć, że testy mają obejmować co najmniej 3 typy testowania. \n",
"\n",
"Maksymalna ocena: 20 punktów\n",
"\n",
"## Zadanie 2. Testy automatyczne\n",
"## Zadanie dodatkowe. Testy automatyczne\n",
"Korzystając z frameworku Selenium opracujcie test automatyczny, sprawdzający jakąś podstawową funkcjonalność Waszego systemu (np. logowanie.) \n",
"(W zastępstwie można opracować test automatyczny logowania do jednego z systemów: USOS, Jira lub Git.) \n",
"Jako wynik zadania umieśćcie nagranie testu. \n",
"\n",
"Maksymalna ocena: 10 punktów"
"Maksymalna ocena: 10 punktów\n",
"\n",
"## Zakończenie sprintu\n",
"10 punktów\n",
"\n",
"## Rozpoczęcie kolejnego sprintu"
]
}
],
@ -61,7 +71,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.6"
"version": "3.8.5"
},
"subtitle": "09. Testowanie integracyjne i systemowe[laboratorium]",
"title": "Projekt badawczo-rozwojowy",

View File

@ -4,14 +4,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Systemy informatyczne</h1>\n",
"<h2> 12. <i>Ocena jakości systemu informatycznego</i>[laboratorium]</h2> \n",
"<h3>Krzysztof Jassem (2022)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
"<h3>Krzysztof Jassem (2023)</h3>\n",
"</div>"
]
},
{

View File

@ -4,14 +4,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Systemy informatyczne</h1>\n",
"<h2> 1. <i>Organizacja pracy zespołowej</h2> \n",
"<h3>Krzysztof Jassem (2022)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
"<h3>Krzysztof Jassem (2023)</h3>\n",
"</div>\n"
]
},
{
@ -28,18 +25,17 @@
"metadata": {},
"source": [
"# Organizacja zespółów projektowych na laboratorium nr 1\n",
"Studenci organizaują się w zespoły maksymalnie 4-osobowe. Zespoły organizowane są przez osoby, które uzyskały najwyższe wyniki w teście na lidera przeprowadzonym na wykładzie.\n",
"Studenci organizaują się w zespoły maksymalnie 4-osobowe. \n",
"Liderem zespolu jest osoba, która uzyskała najwyższy wynik na wykładzie z testu na lidera.\n",
"\n",
"Wskazane jest, aby w grupie znaleźli się studenci o różnych osobowościach (względem motywacji i podejścia do pracy).\n",
"\n",
"Wskazane jest, aby w każdym zespole znalazły się osoby o zróznicowanych umiejętnościach:\n",
"* Wizjoner - osoba, która podejmuje decyzję o kierunku wspólnych prac: jaki projekt opracowujemy na Laboratorium 1. (Projekt może ulec zmianie do zajęć nr 3 włącznie).\n",
"* Specjalista grafik; jego zadaniem będzie stworzenie rysunku projektu interfejsu użytkownika - najlepiej za pomocą jakiegoś narzędzia.\n",
"* Bibliotekarz; jego zadaniem będzie opisanie wizji projektu słowami.\n",
"\n",
"W ten sposob tworzone są zespoły, które będą współpracować na laboratorium nr 1. \n",
"\n",
"Podczas Laboratorium 1. liderem zespołu jest osoba, która uzyskała najwyższy wynik w teście na lidera podczas wykładu. \n",
"* Lider - osoba, która kieruje pracami na zajęciach i wykonuje pisemny raport z prac. \n",
"* Artysta - grafik; jego zadaniem będzie stworzenie rysunku projektu interfejsu użytkownika - za pomocą jakiegoś narzędzia informatycznego lub ołówkiem na kartce\n",
"* Specjalista ML - jego zadaniem będzie wykonanie zadania z dziedziny uczenia maszynowego\n",
"* Specjalista Front-End - jego zadaniem będzie wykonanie front-endu zgodnego z projektem interfejsu użytkownika\n",
"\n",
"Zarówno składy zespołów, jak i liderzy mogą ulec zmianie do zajęć nr 3 włącznie."
]
@ -48,57 +44,61 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"# Proponowany plan laboratorium"
"# Zadania"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Zadanie 1. Zorganizowanie zespołu projektowego.\n",
"Czas wykonania: 30 minut. \n",
"Rezultat: Dokument, zawierający informacje o liderze i pozostałych członkach zespołu oraz o opiekunie zespołu. \n",
"Dla lidera należy podać: \n",
" * Jego preferowany typ przywództwa wg charaketrystyki z wykładu,\n",
" * Typ motywacji i podejścia do zadań (np. A1) według klasyfikacji podanej na wykładzie.\n",
"## Zadanie 1. Projekt interfejsu użytkownika\n",
"\n",
"Dla pozostałych członków zespołu: \n",
" * Rola w zespole (deweloper, bibliotekarz, grafik itp.),\n",
" * Typ motywacji i podejścia do zadań (np. A1) według klasyfikacji podanej na wykładzie.\n",
"Treść zadania: Wykonać projekt interfejsu użytkownika do zadania programistycznego podanego w Zadaniu 2.\n",
" \n",
"Maksymalna ocena: 5 punktów"
"Rezultat: Dokument w postaci zeskanowanej kartki papieru lub plik graficzny.\n",
"\n",
"Ocena maksymalna: 5 punktów"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Zadanie 2. Burza mózgów i praca indywidualna\n",
"Czas: 30 minut.\n",
"## Zadanie 2. Zadanie z uczenia maszynowego\n",
"\n",
"Przebieg: Studenci dyskutują nad wizją projektu, którą chcą przedstawić jako efekt pracy na Laboratorium nr. 1. Może to być projekt, który zespół planuje implementować na przyszłych zajęciach. Lista proponowanych tematów projektów podana jest w pliku **Tematy projektów**. Jeśli takich planów nie ma, można opracować wizję systemu do prowadzenia testów na wykładach prowadzonych na WMI (lepszego od cybertest!). \n",
"Treść zadania: Wykonać zadanie informatyczne z zakresu uczenia maszynowego. Zadanie zostanie podane przez prof. Gralińskiego.\n",
" \n",
"Następnie każdy student indywidualnie szkicuje wizję projektu na kartce (w postaci interfejsu użytkownika lub schematu działania) i opisuje działanie systemu za pomocą 3-5 zdań. \n",
"Rezultat: Plik w języku programowania Python.\n",
"\n",
"Rezultat: Tyle dokumentów, ilu jest studentów w grupie. Kartki najlepiej sfotografować i umieścić w systemie Teams.\n",
" \n",
"Maksymalna ocena: 10 punktów"
"Ocena maksymalna: 10 punktów"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" ## Zadanie 3. Praca zespołowa\n",
"Czas: 30 minut. \n",
"## Zadanie 3. Interfejs użytkownika\n",
"\n",
"Cel: przedstawienie wspólnej wizji projektu. \n",
"Treść zadania: Wykonać interfejs użytkownika zgodny projektem interfejsu (nie implementujemy logiki systemu). (Dla osób niewprawionych pomocna może okazać się biblioteka Tkinter w języku Python.)\n",
" \n",
"Rezultat:\n",
" * jeden szkich interfejsu lub schematu działania wykonany w dowolnym programie graficznym (np. figma);\n",
" * jeden dokument (10-15 zdań) opisujący działanie projektowanego systemu.\n",
"Rezultat: Plik wykonywalny\n",
"\n",
"Maksymalna ocena: 15 punktów "
"Ocena maksymalna: 10 punktów"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Zadanie 4. Raport z zadań\n",
"\n",
"Treść zadania: Wykonać raport z zadań zawierający:\n",
" - nazwiska członków grupy oraz charakterystykę ich osobowości wg wykładu\n",
" - podręcznik użytkownika do zadań 2. i 3.\n",
" \n",
"Rezultat: Dokument tekstowy\n",
"\n",
"Ocena maksymalna: 5 punktów"
]
}
],

View File

@ -1,95 +0,0 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Systemy informatyczne</h1>\n",
"<h2> 2. <i>Innowacyjny projekt informatyczny</i>[laboratorium]</h2> \n",
"<h3>Krzysztof Jassem (2021)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Organizacja zespółów projektowych na laboratorium nr 2\n",
"W stosunku do laboratorium nr. 1 studenci mogą zorganizować się w nowe grupy. \n",
"Można opracować koncepcję zupełnie nowego projektu badawczo-rozwojowego lub kontynuować projekt z poprzednich zajęć. Liderem zespołu powinna być osoba, która nie była liderem na poprzednich zajęciach (choćby na jeden raz).\n",
"\n",
"Składy zespołów mogą zmieniać się do zajęć nr 3 włącznie.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Plan laboratorium nr 2\n",
"\n",
"## Zadanie 1. Makieta dynamiczna \n",
"\n",
"Skonstruujcie Minimum Viable Product waszego pomysłu w postaci mockupu dynamicznego. (Mockup dynamiczny to mockup, który obrazuje mozliwość jakichś akcji użytkownika i reakcji systemu, np. przejście do innego widoku po kliknięciu). \n",
"\n",
"Przykładowa aplikacja do tworzenia makiet dynamicznych on-line to: https://www.figma.com. \n",
"\n",
"Omówienie bezpłatnych narzędzi do makiet dynamicznych: \n",
"https://invette.pl/blog/najlepsze-narzedzia-dla-ui-ux/. \n",
"Wybór narzędzia należy jednak do Was.\n",
"\n",
"Rezultatem zadania jest makieta zapisana jako strona HTML, czyli spakowany plik zawierający plik (np. prototyp.htm) oraz powiązany folder (np. prototyp_pliki). \n",
"\n",
"Maksymalna ocena: 10 punktów\n",
"\n",
"## Zadanie 2. Rozwiązania konkurencyjne \n",
"Znajdźcie dwa lub trzy rozwiązania z podobnej dziedziny do Waszego rozwiązania. Omówcie je i potencjalnie pokażcie (za pomocą zrzutów ekranu). \n",
"\n",
"Maksymalna ocena: 10 punktów\n",
"\n",
"## Zadanie 3. Cechy istotne dla inwestora \n",
"Opiszcie cechy Waszego rozwiązania, wskazując cechy istotne dla inwestora: Zespół, Produkt, Rynek (slajd z wykładu R. Gregorowicza).\n",
"(Cechy te zostaną wykorzystane również w prezentacji, którą będziecie wykonywać na następnych zajęciach.)\n",
"\n",
"Maksymalna ocena: 10 punktów"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"author": "Krzysztof Jassem",
"email": "jassem@amu.edu.pl",
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"lang": "pl",
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.12"
},
"subtitle": "02. Pojęcie projektu badawczo-rozwojowego[laboratorium]",
"title": "Projekt badawczo-rozwojowy",
"year": "2021"
},
"nbformat": 4,
"nbformat_minor": 4
}

View File

@ -1,75 +0,0 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Systemy informatyczne</h1>\n",
"<h2> 3. <i>Prezentacja koncepcji projektu badawczo-rozwojowego</i>[wykład]</h2> \n",
"<h3>Krzysztof Jassem (2022)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Cel laboratorium\n",
"Celem laboratorium jest opracowanie koncepcji projektu B+R: (produktu HT / usługi / przedsięwzięcia), który będzie realizowany w ramach projektu zespołowego.\n",
"\n",
"Wynikiem pracy będzie prezentacja w formie slajdów skierowana do potencjalnych inwestorów."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Plan laboratorium\n",
"\n",
"\n",
"## Zadanie 1. Prezentacje dla inwestora\n",
"Każdy członek grupy przygotowuje indywidualnie prezentację dla inwestora (np. wg wzorca podanego na wykładzie). \n",
"UWAGA: W prezentacji powinien znaleźć się slajd wyjaśniający, jaka część projektu zostanie prawdopodobnie zrealizowana w ramach protorypu na koniec semestru.\n",
"Odpowiedź zawiera **n** (liczba członków zespołu) rozwiązań. \n",
"\n",
"Maksymalna ocena: 15 punktów\n",
"\n",
"## Zadanie 2. Końcowa wersja prezentacji\n",
"W odpowiedzi na to zadanie opracujcie prezentację, która Waszym zdaniem jest syntezą najlepszych części prezentacji indywidualnych.\n",
"\n",
"Maksymalna ocena: 15 punktów"
]
}
],
"metadata": {
"author": "Krzysztof Jassem",
"email": "jassem@amu.edu.pl",
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"lang": "pl",
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.5"
},
"subtitle": "02. Prezentacja koncepcji projektu badawczo-rozwojowego[laboratorium]",
"title": "Projekt badawczo-rozwojowy",
"year": "2021"
},
"nbformat": 4,
"nbformat_minor": 4
}

View File

@ -1,67 +0,0 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Systemy informatyczne</h1>\n",
"<h2> 4. <i>Publiczne prezentacje projektów</i>[laboratorium]</h2> \n",
"<h3>Krzysztof Jassem (2021)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Cel laboratorium nr 4\n",
"\n",
"Celem laboratorium będzie publiczne przedstawienie koncepcji systemu informatycznego."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Plan laboratorium\n",
"\n",
"Podczas laboratorium poszczególne zespoły studentów przedstawiać będą: jednozdaniowy \"elevator pitch\" oraz prezentację dotyczącą swojego pomysłu. \n",
"\n",
"Widownią będą studenci wszystkich grup projektowych. Na ocenę prezentacji będą miały wpływ odczucia widowni - zebrane za pomocą ankiet.\n",
"\n",
"Maksymalna ocena: 30 punktów"
]
}
],
"metadata": {
"author": "Krzysztof Jassem",
"email": "jassem@amu.edu.pl",
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"lang": "pl",
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.6"
},
"subtitle": "01. Prezentacje publiczne[laboratorium]",
"title": "Projekt badawczo-rozwojowy",
"year": "2021"
},
"nbformat": 4,
"nbformat_minor": 4
}

View File

@ -1,95 +0,0 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Systemy informatyczne</h1>\n",
"<h2> 5. <i>Metodyki zwinne</i>[laboratorium]</h2> \n",
"<h3>Krzysztof Jassem (2022)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Cel laboratorium nr 5\n",
"Celem laboratorium jest rozpoczęcie prac w metodyce Scrum."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Plan laboratorium"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Zadanie 1. Role w projekcie według metodyki Scrum\n",
"* Podzielcie się rolami w projekcie według metodyki Scrum i opiszcie, jak widzicie swoje zadania w projekcie w świetle metodyki Scrum.\n",
"* Opracujcie 5-punktowy manifest pracy w Waszym zespole. \n",
"\n",
"Ocena maksymalna: 10 punktów"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" ## Zadanie 2. Zakładamy backlog \n",
"* Utwórzcie projekt w systemie JIRA na WMI. \n",
"* Opracujcie profile członków grupy (zdjęcia mile widziane). Do grupy dodajcie oboje prowadzących. \n",
"* Wpiszcie do backloga \"user stories\" związane z projektem - założcie w tym momencie, że wykonacie projekt \"na maksa\".\n",
"\n",
"Ocena maksymalna: 10 punktów "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Zadanie 3. Recycling gotowego oprogramowania\n",
"* Dokonajcie przeglądu dostępnych otwartych (open-source) projektów, które mogą być pomocne w Waszym projekcie. Dla każdego projektu określcie jego zalety i wady w kontekście zastosowania go w Waszym projekcie. Podsumowaniem zadania jest wstępne określenie projektów, których zastosowanie może być przydatne w Waszym projekcie. \n",
"\n",
"<b> Wykonany przez Was system będzie oceniony tym wyżej, im więcej kodu będzie pochodzić z \"recyclingu\"! </b>\n",
"\n",
"Ocena maksymalna: 10 punktów"
]
}
],
"metadata": {
"author": "Krzysztof Jassem",
"email": "jassem@amu.edu.pl",
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"lang": "pl",
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.5"
},
"subtitle": "05. Metodologia Prince2Agile[laboratorium]",
"title": "Projekt badawczo-rozwojowy",
"year": "2021"
},
"nbformat": 4,
"nbformat_minor": 4
}

View File

@ -1,99 +0,0 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Systemy informatyczne</h1>\n",
"<h2> 6. <i>Prototypowanie i ciagła integracja</i>[laboratorium]</h2> \n",
"<h3>Krzysztof Jassem (2022)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Cel laboratorium nr 6\n",
"Celem laboratorium jest rozpoczęcie prac implementacyjnych z zastosowaniem ciągłej integracji."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Plan laboratorium\n",
"## Zadanie 1. Zorganizowanie repozytorium\n",
"Załóżcie repozytorium Git na serwerze wydziałowym. Wstawcie do niego plik Readme. \n",
"Sklonujcie repozytorium na maszynach lokalnych deweloperów. \n",
"Zintegrujcie Wasz projekt w systemie Jira z wydziałowym serwerem Git (w tym celu zgłoście takie zadanie w wydziałowym systemie Helpdesk, podając nazwę repozytorium Git oraz nazwę projektu Jira). \n",
"Wykażcie, że integracja się powiodła, umieszczając w Teamsach zrzut ekranu obrazujący integrację Waszego projektu z Gitem. (Integracja przebiegła pomyślnie, jeśli informacja o commicie w systemie Git pojawia się automatycznie w systemie Jira.) \n",
"\n",
"Ocena maksymalna: 10 punktów\n",
"\n",
"## Zadanie 2. Typ prototypu\n",
"Określ typ prototypu opracowanego na zajęciach (na skali: pionowy - poziomy). Uzasadnij wybór takiego typu prototypu.\n",
"\n",
"Ocena maksymalna: 5 punktów\n",
"\n",
"## Zadanie 3. Prototyp papierowy.\n",
"\n",
"Zilustruj projektowany system za pomocą prototypu papierowego. Przykładowe linki do podpowiedzi:\n",
"\n",
"https://www.uxpin.com/studio/blog/paper-prototyping-the-practical-beginners-guide/\n",
"\n",
"https://www.youtube.com/watch?v=_g4GGtJ8NCY\n",
"\n",
"https://www.youtube.com/watch?v=dt1bQsZ68iw\n",
"\n",
"Wykonany prototyp zademonstruj prowadzącym na zajęciach lub nagraj filmik i umieść go w Teamsach.\n",
"Ocena maksymalna: 15 punktów\n",
"\n",
"\n",
"## Zadanie dodatkowe (dla chętnych). Serwer ciągłej integracji\n",
"Połączcie Wasze wydziałowe repozytorium Git z Jenkinsem (jenkins.wmi.amu.edu.pl). \n",
"W celu utworzenia pipelineu dla Waszego projektu utwórzcie zgłoszenie w systemie Helpdesk, podając login osoby odpowiedzialnej za projekt (sXXXXXX), nazwę projektu, a także ewentualne loginy innych członków zespołu, którzy mają mieć dostęp do projektu w Jenkinsie. \n",
"Stwórzcie *Jenkinsfile* budujący Waszą aplikację oraz uruchamiający prosty test. \n",
"\n",
"Rozwiązaniem zadania będzie poprawnie zakończony pipeline zdefiniowany na podstawie *Jenkinsfile* (który musi zostać umieszczony w Waszym repozytorium Git). \n",
"\n",
"Ocena maksymalna: 10 punktów\n",
"\n",
"## Pierwszy sprint!\n",
"Zalóżcie sprint. \n",
"Przenieście wybrane elementy (\"issues\") z backloga do sprintu, podzielcie je na zadania, przypiszcie zadania ludziom i skomentujcie je (w ich opisie). Skonsultujcie się z prowadzącymi. Wykonanie sprintu zostanie ocenione w kolejnym tygodniu. Pamiętajacie, że wynikiem sprintu ma być przyrost systemu widoczny dla użytkownika, którego reprezentują prowadzący laboratorium."
]
}
],
"metadata": {
"author": "Krzysztof Jassem",
"email": "jassem@amu.edu.pl",
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"lang": "pl",
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.5"
},
"subtitle": "06. Prototypowanie i ciagła integracja[laboratorium]",
"title": "Projekt badawczo-rozwojowy",
"year": "2021"
},
"nbformat": 4,
"nbformat_minor": 4
}

View File

@ -4,14 +4,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Systemy informatyczne</h1>\n",
"<h1> Systemy informatyczne analizy danych</h1>\n",
"<h2> 7. <i>Specyfikacja projektu informatycznego</i>[laboratorium]</h2> \n",
"<h3>Krzysztof Jassem (2022)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
"<h3>Krzysztof Jassem (2023)</h3>\n",
"</div>"
]
},
{
@ -19,7 +16,7 @@
"metadata": {},
"source": [
"# Cel laboratorium nr 7\n",
"Celem laboratorium jest opracowanie specyfikacji systemu informatycznego będącego wynikiem projektu B+R.\n"
"Celem laboratorium jest opracowanie specyfikacji systemu informatycznego analizy danych.\n"
]
},
{

View File

@ -4,14 +4,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Systemy informatyczne</h1>\n",
"<h1> Systemy informatyczne analizy danych</h1>\n",
"<h2> 8. <i>Testowanie w programowaniu zwinnym</i>[laboratorium]</h2> \n",
"<h3>Krzysztof Jassem (2022)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
"</div>"
]
},
{

View File

@ -4,13 +4,10 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div Projekt badawczo-rozwojowy</h1>\n",
"<h2> 9. <i>Testowanie integracyjne i systemowe</i>[laboratorium]</h2> \n",
"<h3>Krzysztof Jassem (2022)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
"<h3>Krzysztof Jassem (2023)</h3>\n",
"</div>"
]
},
{

View File

@ -4,14 +4,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Systemy informatyczne</h1>\n",
"<h2> 12. <i>Ocena jakości systemu informatycznego</i>[laboratorium]</h2> \n",
"<h3>Krzysztof Jassem (2022)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
"<h3>Krzysztof Jassem (2023)</h3>\n",
"</div>"
]
},
{

View File

@ -4,14 +4,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Systemy informatyczne</h1>\n",
"<h2> 13. <i>Planowanie prac w projekcie informatycznym</i>[laboratorium]</h2> \n",
"<h3>Krzysztof Jassem (2021)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
"<h3>Krzysztof Jassem (2023)</h3>\n",
"</div>"
]
},
{

View File

@ -4,14 +4,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Systemy informatyczne</h1>\n",
"<h2> 14. <i>Zarządzanie pracami w projeckie informatycznym</i>[laboratorium]</h2> \n",
"<h3>Krzysztof Jassem (2022)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
"</div>"
]
},
{
@ -19,7 +16,7 @@
"metadata": {},
"source": [
"## Plan laboratorium\n",
"Z tym wykładem nie są planowane zajęcia laboratoryjne."
"Z tym wykładem nie są planowane zajęcia laboratoryjne. Zajęcia zostaną poświęcone projektom systemów informatycznych. "
]
}
],

View File

@ -4,14 +4,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Systemy informatyczne</h1>\n",
"<h1> Systemy informatyczne analizy danych</h1>\n",
"<h2> 1. <i>Praca zespołowa</i>[wykład]</h2> \n",
"<h3>Krzysztof Jassem (2022)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
"<h3>Krzysztof Jassem (2023)</h3>\n",
"</div>"
]
},
{
@ -263,7 +260,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.6"
"version": "3.8.5"
},
"subtitle": "01. Praca zespołowa[wykład]",
"title": "Przygotowanie do projektu badawczo-rozwojowego",

View File

@ -4,21 +4,13 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Systemy informatyczne</h1>\n",
"<h1> Systemy informatyczne analizy danych</h1>\n",
"<h2> 7. <i>Specyfikacja projektu informatycznego</i>[wykład]</h2> \n",
"<h3>Krzysztof Jassem (2022)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
"<h3>Krzysztof Jassem (2023)</h3>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
},
{
"cell_type": "markdown",
"metadata": {},
@ -146,7 +138,7 @@
"Na podstawie listy Wykonawca-Cel, biorąc pod uwagę priorytety celów, tworzy się listę In-Out, która precyzyjnie określa zakres systemu. \n",
"\n",
"Przykład tabeli dla systemu Cybertest2:\n",
"<img src=\"obrazy/in-out.png\" alt=\"Lista In-Out\" width=600px>"
"<img src=\"obrazy/In-Out.png\" alt=\"Lista In-Out\" width=600px>"
]
},
{
@ -456,7 +448,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.6"
"version": "3.8.5"
},
"subtitle": "07. Specyfikacja projektu informatycznego[wykład]",
"title": "Przygotowanie do projektu badawczo-rozwojowego",

View File

@ -4,14 +4,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Systemy informatyczne</h1>\n",
"<h1> Systemy informatyczne analizy danych</h1>\n",
"<h2> 8. <i>Testowanie w programowaniu zwinnym</i>[wykład]</h2> \n",
"<h3>Krzysztof Jassem (2022)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
"<h3>Krzysztof Jassem (2023)</h3>\n",
"</div>"
]
},
{
@ -463,7 +460,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.6"
"version": "3.8.5"
},
"subtitle": "08. Testowanie w programowaniu zwinnym[wykład]",
"title": "Przygotowanie do projektu badawczo-rozwojowego",

View File

@ -4,14 +4,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Systemy informatyczne</h1>\n",
"<h1> Systemy informatyczne analizy dannych</h1>\n",
"<h2> 9. <i>Testowanie systemowe i akceptacyjne</i>[wykład]</h2> \n",
"<h3>Krzysztof Jassem (2022)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
"<h3>Krzysztof Jassem (2023)</h3>\n",
"</div>"
]
},
{
@ -443,7 +440,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.6"
"version": "3.8.5"
},
"subtitle": "09. Testowanie integracyjne i systemowe[wykład]",
"title": "Przygotowanie do projektu badawczo-rozwojowego",

View File

@ -4,14 +4,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Systemy informatyczne</h1>\n",
"<h1> Systemy informatyczne analizy danych</h1>\n",
"<h2> 1. <i>Praca zespołowa</i>[wykład]</h2> \n",
"<h3>Krzysztof Jassem (2022)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
"<h3>Krzysztof Jassem (2023)</h3>\n",
"</div>"
]
},
{

View File

@ -1,312 +0,0 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1>Systemy Informatyczne</h1>\n",
"<h2> 2. <i>Innowacyjny projekt informatyczny</i>[wykład]</h2> \n",
"<h3>Krzysztof Jassem (2022)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
" \n",
"Wykład składa się z: \n",
" <ul>\n",
" <li>części opracowanej przez doradcę inwestycyjnego z grupy fundacyjnej Speedup Group, Roberta Grygorowicza; materiały z tej części dostępne są na Teamsach\n",
" <li>części opracowanej przez Krzysztofa Jassema: skrót podany jest poniżej; slajdy podane są na Teamsach</li>\n",
" </ul>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Definicja projektu\n",
"Projekt to system działań składający się z: \n",
"- zakresu działań, \n",
"- terminu realizacji, \n",
"- zasobów potrzebnych do realizacji projektu (ludzie, kapitał, wiedza, technologia).\n",
"\n",
"Projekt innowacyjny charakteryzuje się następującymi cechami: \n",
" - niepowtarzalność,\n",
" - złożoność,\n",
" - identyfikowalność."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Przykład projektu badawczo-rozwojowego: AI Searcher\n",
"\n",
"### Definicja projektu:\n",
"System działań mających na celu stworzenie systemu informatycznego wspomagającego pracowników Polskiej Straży Granicznej. \n",
"\n",
"\n",
"### Zakres projektu: \n",
"System informatyczny wdrożony w siedzibie Straży Granicznej, który ma pomagać w znajdowaniu treści przestępczych w Internecie. \n",
"System realizuje następujący scenariusz działania:\n",
" 1. Pracownik Straży Granicznej wpisuje zapytanie.\n",
" 2. Moduł Rozszerzania Zapytań rozszerza zapytanie na zestaw kwerned do wyszukiwarek internetowych.\n",
" 3. Translator tłumaczy kwerendy na języki: rosyjski, ukraiński i białoruski.\n",
" 4. Crawler wyszukuje dokumentów w trzech językach przygranicznych i języku polskim.\n",
" 5. Translator tłumaczy znalezione teksty na język polski. \n",
" 6. Klasyfikator wybiera teksty potencjalnie przestępcze.\n",
" 7. Analizator Lingwistyczny oznacza informację dodatkową w dokumentach:\n",
" \n",
"### Termin realizacji: \n",
"grudzień 2018 - grudzień 2021\n",
"\n",
"### Zasoby:\n",
" * Ludzie: Wojskowa Akademia Techniczna, UAM, Ken-Bit https://www.kenbit.pl/\n",
" * Kapitał: dotacja z NCBR\n",
" * Wiedza: Najnowsze badania z klasyfikacji tekstu, uczenia automatycznego itp.\n",
" * Technologia: Framework do tworzenia interfejsu użytkownika, algorytmy do klasyfikacji tekstu, modele języka"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Poglądowy widok systemu AI Searcher\n",
"<img src=\"obrazy/AISearcher.png\" alt=\"Zrzut ekranu systemu AISearcher\" width=600px>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Poziomy gotowości technologicznej\n",
"\n",
"### Poziom 1.\n",
"Rozpoczęto badania naukowe (np. zdefiniowano tematu pracy mgr).\n",
"### Poziom 2.\n",
"Znaleziono zastosowania badań naukowych (np. określono, na czym będzie polegał projekt mgr).\n",
"### Poziom 3.\n",
"Przeprowadzono pierwsze eksperymenty na krytycznych technologiach (np. wykonano proof-of-concept).\n",
"\n",
"### Poziom 4.\n",
"Zintegrowano podstawowe komponenty prototypu w warunkach laboratoryjnych (np. zrealizowano \"user-stories\" na komputerze dewelopera).\n",
"### Poziom 5.\n",
"Zweryfikowano działanie w warunkach zbliżónych do rzeczywistego (np. przeprowadzono testowanie prototypu wdrożónego na serwerze WMI).\n",
"### Poziom 6.\n",
"Dokonano demonstracji działania w warunkach zbliżónych do rzeczywistych (np. zademonstrowano wdrożony prototyp z interakcją użytkowników).\n",
"\n",
"### Poziom 7.\n",
"Dokonano demonstracji systemu w warunkach operacyjnych (np. zademonstrowano prototyp wdrożony u użytkownika / klienta).\n",
"\n",
"### Poziom 8.\n",
"Potwierdzono zamierzony poziom technologii w warunkach operacyjnych (np. pomyślnie zakończono testowanie akceptacyjne).\n",
"\n",
"### Poziom 9.\n",
"Stwierdzono, że wypracowana technologia odniosła zamierzony efekt (np. stwierdzono, że stosowanie rozwiązania przynosi wymierne korzyści). \n",
"\n",
"[Formalny opis poziomów gotowości technologicznej](https://archiwum.ncbr.gov.pl/fileadmin/zalewska/5_1_1_1_2018/13_poziomy_gotowosci_technologicznej.pdf)\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Produkt High-Tech\n",
"Oczekuje się, że wynikiem innowacyjnego projektu badawczo-rozwojowego w informatyce jest produkt High-Tech.\n",
"\n",
"## Czym jest produkt High-Tech?\n",
"\n",
"### Definicja produktu\n",
"Produkt = \n",
"Zawartość + \n",
"Funkcjonalność + \n",
"Konstrukcja + \n",
"Monetyzacja \n",
"Oczekuje się zatem, że z produkt posiada jakąś zawartość (Zawartość), z której kożna korzystać (Funkcjonalność), gdyż został odpowiednio skonstruowany (Konstrukcja), ale trzeba za to płacić (Monetyzacja)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
" \n",
"Wyraz \"technologia\" pochodzi z języka greckiego:\n",
" <ul>\n",
" <li>techne: sztuka, umiejętność</li>\n",
" <li>logia: nauka (czegoś)</li>\n",
" </ul>\n",
"\n",
"Technologia w dzisiejszym rozumieniu to zastosowanie wiedzy naukowej do stworzenia czegoś pożytecznego dla człowieka."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Czym jest produkt \"high-tech\"?\n",
"Produkt \"high tech\" to taki produkt, który wykorzystuje najnowszą wiedzę naukową i techniczną. \n",
"Produkt \"high tech\" wymaga nakładów na badania (*R&D investments*). \n",
"\n",
"R&D Investments a wartość produktu:\n",
"* Low-tech (< 1.0%);\n",
"* Medium-low-tech (1.0%-2.5%);\n",
"* Medium-high-tech (2.5%-8%); \n",
"* High-tech (>8.0%)\n",
"\n",
"### Cechy produktu \"high-tech\" z punktu widzenia inwestora\n",
"Dcydując się na wytworzenie produktu high-tech\", inwestor powinien brać pod uwagę ryzyko wynikające z następujących cech produktów tej kategorii:\n",
"* złożoność technologiczna,\n",
"* krótki cykl życia (spowodowany wyścigiem technologicznym),\n",
"* szybkie starzenie się,\n",
"* niewielka liczba klientów w początkowym stadium sprzedaży,\n",
"* duże nakłady na R&D,\n",
"* niepewności technologiczne.\n",
"\n",
"### Cechy produktu \"high-tech\" z punktu widzenia klienta\n",
"Dcydując się na zakup produktu high-tech\", klient powinien brać pod uwagę ryzyko wynikające z następujących cech produktów tej kategorii:\n",
"* dezorientacja klienta (np. jak działa produkt),\n",
"* niespełnianie oczekiwań (przez pierwsze wersje),\n",
"* duża konkurencja,\n",
"* możliwość błyskawicznego upadku rynku,\n",
"* spadająca cena produktu,\n",
"* szybki wzrost stosunku jakości do ceny.\n",
"\n",
"### Ocena ryzyka\n",
"Na 7 zaawansowanych pomysłów produktu high-tech: \n",
"* 4 wchodzą w fazę realizacji,\n",
"* 1.5 są uruchamiane,\n",
"* 1 odnosi sukces."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# \"Golden Rules\" na odniesienie sukcesu\n",
"Aby produkt high-tech miał szanse odnieść sukces na rynku, powinien spełniać przynajmniej kilka z wymienionych poniżej postulatów:\n",
"\n",
"## 1. \"Zapewnij nowatorską / wyjątkową (\"unique\") funkcję lub cechę\"\n",
"* Pomysł musi być nowatorski - a nie skopiowany.\n",
"* Taki produkt wymaga R&D...\n",
" * A to jest kosztowne i...\n",
" * Trudne w konstrukcji.\n",
"* Często pomysły chronione są przez patenty.\n",
"\n",
"\"Nowatorski\" może oznaczać \"nowy model sprzedaży\"\n",
"\n",
"## 2. \"Popraw wydajność użytkownika\"\n",
"Czego oczekujemy od systemu informatycznego:\n",
"* Wykonuj wszystko szybciej i taniej:\n",
" * Skróć czas nauki\n",
" * Automatycznie poprawiaj błędy\n",
" * Automatyzuj niektóre kroki\n",
"* Dbaj o wygodę użytkowania\n",
"* Unikaj:\n",
" * Reklam\n",
" * Przestojów na płacenie (np. bramek)\n",
" * Ogólnie: czynności, ktore pochłaniają czas użytkownika\n",
"\n",
"## 3. \"Chroń inwestycje użytkownika\"\n",
"Zasada ta mówi o tym, aby szanować pieniądze wydane przez użytkownika przed wprowadzeniem naszego rozwiązania. Dotyczy to:\n",
"* hardware'u\n",
"* software'u\n",
"* danych\n",
"\n",
"Czego oczekujemy od systemu informatycznego:\n",
"* Minimalizuj koszty zmian\n",
"* Wydłużaj czas życia produktów\n",
"* Twórz rozwiązania przenośne\n",
"\n",
"## 4. \"Minimalizuj koszty awarii lub utraty danych\"\n",
"Czego oczekujemy od systemu informatycznego:\n",
"* Unikaj przerw w działaniu\n",
"* Skracaj czas i zmniejszaj koszty przywrócenia:\n",
" * działania\n",
" * danych\n",
"\n",
"## 5. \"Poprawiaj wspólczynnik jakości do ceny\"\n",
"Czego oczekujemy od systemu informatycznego:\n",
"* Dostarczaj więcej za mniej\n",
" * Podwyższaj jakość\n",
" * Zmniejszaj cenę\n",
" * A najlepiej - obie czynności naraz\n",
" \n",
"* Jakość (wydajność) przedstawiaj w liczbach\n",
" * Gb, 100-punktowa miara jakości\n",
" * sekundy...\n",
"\n",
"## 6. \"Zapewnij elastyczność i skalowalność\"\n",
"Rozwiązanie jest **elastyczne**, jeśłi może być stosowane w różnych scenariuszach. \n",
"Rozwiązanie jest **skalowalne**, jeśli można je stsosować zarówno dla małych, jak i dużych wielkości danych.\n",
"\n",
"Czego oczekujemy od systemu informatycznego:\n",
"* Umożliwiaj dodawanie / usuwanie funkcji\n",
"* Zapewnij użycie w różnych środowiskach\n",
"* Zapewnij możliwość stosowania dla większych zbiorów danych\n",
"\n",
"## 7. \"Zadbaj o atrakcyjny wygląd\"\n",
"Rozwiązanie powinno być ładne i ...modne.\n",
"\n",
"Czego oczekujemy od systemu informatycznego:\n",
"* Weź pod uwagę:\n",
" * kolorystykę\n",
" * kształt\n",
" * wykończenie\n",
" * prostotę\n",
" \n",
"## 8. \"Dostarczaj rozrywkę\"\n",
"Czego oczekujemy od systemu informatycznego:\n",
"* \"Dzieci\" lubią się bawić - dostarczaj zabawę\n",
"* Ludzie lubią wyzwania - dostarczaj wyzwania\n",
"* Ludzie lubią rywalizację...\n",
"* Ludzie mają swoje hobby i upodobania...\n",
"* Wszyscy wolą wakacje od pracy... \n",
" \n",
"## 9. \"Stwórz nową modę\"\n",
"Stworzenie nowej mody jest niezwykle trudne i kosztowne. Ale kilku producentom się udało.\n",
"Wskazówki:\n",
"* Produkt musi być \"osobisty\".\n",
"* Musi mieć wygląd określany jako \"cool\".\n",
"* Trzeba sprzedawać go drogo...\n",
"* ... w niewielkich ilościach...\n",
"* ... ale za to robić wokół niego sporo szumu."
]
}
],
"metadata": {
"author": "Krzysztof Jassem",
"email": "jassem@amu.edu.pl",
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"lang": "pl",
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.5"
},
"subtitle": "02. Projekt badawczo-rozwojowy[wykład]",
"title": "Przygotowanie do projektu badawczo-rozwojowego",
"year": "2021"
},
"nbformat": 4,
"nbformat_minor": 4
}

View File

@ -1,418 +0,0 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Systemy informatyczne</h1>\n",
"<h2> 3. <i>Prezentacja koncepcji projektu</i>[wykład]</h2> \n",
"<h3> 3. <i>Krzysztof Jassem</i>[wykład]</h3> \n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Inwestorzy\n",
"\n",
"Opracowanie i rozwój projektu B+R wymaga środków finansowych. Środki finansowe zapewnia *inwestor*, któremu trzeba odpowiednio zaprezentować koncepcję projektu B+R, czyli przekonać go, że poświęcone środki finansowe się zwrócą. \n",
"\n",
"**Inwestor** to osoba lub instytucja, która przekazuje środki finansowe na przedsięwzięcie, oczekując zwrotu i zysku. \n",
"\n",
"**Anioł biznesu** to inwestor, który dostarcza początkowe środki finansowe (seed money) na rozpoczęcie biznesu w zamian za część udziałów lub *dług zamienny*. \n",
"\n",
"**Dług zamienny** to papier wartościowy, który może zostać wymienony na akcje lub udziały firmy. \n",
"\n",
"**Kapitał wysokiego ryzyka (ang. venture capital)** to kapitał dostarczony dla istniejącej firmy typu start-up, zwykle w przemyśle HT. Kapitał wysokiego ryzyka liczy na zwrot w przypadku wyjścia firmy na giełdę lub jej sprzedaży."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Główne atrybuty produktu HT\n",
"Produkt ma wnosić **wartość dodaną**, która spełni **potrzeby klienta** dzięki dobrze przemyślanej **konstrukcji**.\n",
"\n",
"1. Wartość dodana to zestaw korzyści z punktu widzenia klienta. \n",
"\n",
"Korzyść może być: \n",
" * Funkcjonalna (produkt wykonuje pracę dla klienta) \n",
" * Emocjonalna (produkt wpływa pozytywnie na samopoczucie klienta \n",
" * Rozwijająca osobowość klienta \n",
" * Społeczna (produkt wpływa na poprawę pozycji społecznej klienta) \n",
"\n",
"2. Spełnienie potrzeby użytkowników\n",
">“You cant just ask customers what they want and then try to give that to them. By the time you get it built, theyll want something new.” (Steve Jobs)\n",
"\n",
"Potrzeby użytkowników: \n",
" * Wypowiedziane (odczuwane dziś i świadome) - spełniają je przeciętne produkty;\n",
" * Ukryte (odczuwane dziś, ale nieświadome) - spełniają je produkty HT;\n",
" * Oczekiwane (odczuwane w przyszłości w sposób świadomy) - spełniają je wybitne produkty HT;\n",
" * Mające się pojawić (odczuwane w przyszłości w sposób nieświadomy) - spełniają je wizjonerskie produkty HT.\n",
"\n",
"3. Odpowiednia konstrukcja (design)\n",
"Produkt jest odpowiednio skonstruowany, jeśli ma następujące cechy:\n",
"* Pożyteczny (rozwiązuje problem lub wykonuje zadania), \n",
"* Użyteczny (łatwy w użytku, intuicyjny),\n",
"* Pożądany (wywołuje pozytywne emocje, sprawia przyjemność)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Elevator pitch\n",
"**Elevator pitch** to krótka prezentacja, ktorej celem jest zwięzłe i proste omówienie produktu lub przedsięwzięcia. Oczekuje się, że trwa niedłużej niż 2 minuty. \n",
"**Jednozdaniowy elevator pitch** to najkrótsza charakterystyka planowanego przedsięwzięcia. Ma postać: "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-success\">\n",
" \n",
"<p>DLA (określenie klienta docelowego)</p> \n",
"<p>KTÓRY (ma potrzebę)</p>\n",
"<p>NAZWA NASZEGO PRODUKTU (PRZEDSIĘWZIĘCIA)</p>\n",
"<p>TO (typ produktu / przedsięwzięcia)</p> \n",
"<p>KTÓRY (ma unikalną cechę)</p> \n",
"<p>W PRZECIWIEŃSTWIE (nazwa znanej konkurencji)</p>\n",
"<p>MA PRZEWAGĘ (typ przewagi)</p>\n",
" \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
" \n",
"<h3>Przykład jednozdaniowego \"elevator pitch\"</h3>\n",
" \n",
"<p>(DLA) Dla każdej osoby biorącej leki lub suplementy,</p>\n",
"<p>(KTÓRA) zwłaszcza dla tych którzy mają tendencje zapominać.</p> \n",
"<p>(NAZWA PRODUKTU) Take Your Meds</p>\n",
"<p>(TO) to aplikacja mobilna,</p>\n",
"<p>(KTÓRA) która zapewni, że bez pomyłek weźmiemy wszystkie leki.</p>\n",
"<p>(W PRZECIWIEŃSTWIE) w przeciwieństwie do standardowych powiadomień na telefonie i notatek na kartce,</p>\n",
"<p>(MA PRZEWAGĘ) Take Your Meds zapewnia szczegółowe informacje i nie pozwala się pomylić.</p>\n",
" \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Prezentacja dla inwestora\n",
"### Reguła 30 / 20 / 10 (Czcionka / Minuty / Slajdy)\n",
"Reguła mówi o standardowych oczekiwaniach w stosunku do prezentacji (czyli: stosuj dużą czcionkę, nie gadaj dłużej ani krócej niż 2 minuty na slajd).\n",
"### Wzorzec 10 slajdów prezentacji dla inwestora\n",
"#### 1. Chwyć za gardło (ang. \\\"Grab\\\")\n",
" * Jaki masz pomysł?\n",
" * Czym się wyróżniasz pod względem korzyści: \n",
" * funkcjonalność, \n",
" * spełnienie potrzeby, \n",
" * konstrukcja?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
" \n",
"<h4>Wskazówki</h4>\n",
"\n",
"<ul>\n",
" \n",
"<li>Nie bądź gadatliwy!</li>\n",
"<li>Uchwyć uwagę widza!</li>\n",
"<li>Jeśli tutaj nie chwycisz widza za gardło, to przepadłeś.</li>\n",
" \n",
"</ul>\n",
" \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 2. Przedstaw problem\n",
" * Dlaczego\n",
" * Wasz produkt jest niezbędny?\n",
" * ludzie go potrzebują?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
" \n",
"<h4>Wskazówka:</h4>\n",
" \n",
"<ul>\n",
" <li> Pamiętaj: nie chodzi o Twój problem, tylko o problem potencjalnego użytkownika! </li>\n",
"</ul>\n",
" \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 3. Przedstaw rozwiązanie problemu\n",
" * Jak rozwiążecie problem ?\n",
" * Kto będzie korzystać z Waszego rozwiązania?\n",
" * I jakie będzie miał z tego korzyści?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
" \n",
"<h4>Wskazówki:</h4>\n",
" \n",
"<ul>\n",
" <li> Bądź konkretny!</li> \n",
" <li> Nie zalewaj! </li> \n",
" <li> Nie czaruj!</li> \n",
" </ul>\n",
" \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 4. Przedstaw sposób działania\n",
"* Jak działa nasze rozwiązanie?\n",
"* Co w działaniu jest takiego wyjątkowego? (\\\"magic souce\\\")?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
" \n",
"<h4> Wskazówki: </h4>\n",
"\n",
"<ul>\n",
"<li> Przekonaj, że Wasze rozwiązanie jest\n",
" <ul>\n",
"<li> użyteczne,\n",
"<li> funkcjonalne\n",
" </ul>\n",
"<li> Najlepiej przedstaw działanie wizulanie - np. na schemacie, rysunku, filmie.\n",
" </ul>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 5. Omów technologię\n",
" * Jaka jest konstrukcja (architektura) rozwiązania?\n",
" * Co w niej jest takiego wyjątkowego?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
" \n",
"<h4>Wskazówki:</h4>\n",
" \n",
"<ul>\n",
"<li> Ponownie możesz przedstawić schemat... </li> \n",
"<li> Ale uważaj, żeby nie przesadzić ze szczegółami technicznymi!</li> \n",
"</ul>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 6. Przedstaw konkurencję\n",
" * Jakie produkty / firmy są Waszą konkurencją?\n",
" * Co robią inaczej?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
" \n",
"<h4> Wskazówka: </h4>\n",
" \n",
"Wykaż, że jesteście lepsi:\n",
"<ul>\n",
"<li>jakość,</li>\n",
"<li>cena,</li>\n",
"<li>funkcjonalność,</li>\n",
"<li>użyteczność,</li>\n",
"<li>elastyczność.</li>\n",
"</ul>\n",
"\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 7. Określ Wasz rynek\n",
"**Rynek** to ogół transakcji kupnasprzedaży danego dobra lub czynnika produkcji. \n",
" * Na jaki rynek kierujecie Wasz produkt?\n",
" * Jaka jest wartość finansowa rynku dla Waszego produktu?\n",
" * Total Available Market - wartość ogólnoświatowego popytu na dany produkt usługę\\,\n",
" * Served Available Market - wartość rynku, na którym chcecie działać,\n",
" * Target Market - przewidywana wartość rynku Waszych prawdopodobnych nabywców."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
" \n",
"<h4> Wskazówki:</h4>\n",
"\n",
"<ul>\n",
" <li>Możecie interpretować powyższe pojęcia w sposób potoczny: </li>\n",
"<ul>\n",
" <li>TAM - Jak duży jest cały tort?</li>\n",
" <li>SAM - Jak duży kawałek tortu jestem w stanie uciąć dla siebie?</li>\n",
" <li>TM - Ile jestem w stanie zjeść?</li>\n",
"</ul>\n",
"<li>Inwestor oczekuje, że potraficie oszacować wartość każdego zasięgu rynku na podstawie wiarygodnych źródeł.</li>\n",
" </ul>\n",
" \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 8. Zdefiniuj model biznesowy\n",
"**Model biznesowy** to unikatowy przepis na sprzedawanie produktu lub usługi.\n",
" * W jaki sposób Wasz pomysł zarobi pieniądze?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
"\n",
"<h4> Wskazówka: </h4>\n",
"\n",
"Wyjaśnij swój pomysł na sprzedaż, np.\n",
"<ul>\n",
"<li>licencje / sprzedaż jednorazowa,</li>\n",
"<li>sprzedaż bezpośrednia / dystrybutorzy,</li>\n",
"<li>dochody z reklam,</li>\n",
"<li>mechanizmy przyciągnięcia klienta, np. programy lojalnościowe, grywalizacja.</li>\n",
" </ul>\n",
" \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 9. Przedstaw prognozę finansową przedsięwzięcia\n",
"**Prognoza finansowa** to przewidywana wartość przyszłych wyników finansowych przesięwzięcia uwzględniająca przychody i koszty.\n",
" * Jaka jest prognoza finansowa na okres 18 miesięcy - 5 lat?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
"\n",
"<h4> Wskazówki: </h4>\n",
"<ul>\n",
"<li>Udowodnij, że znasz realia lub...dostosuj się do oczekiwań inwestora. </li>\n",
"<li>Kiedyś prognozę układało się na 5 lat, a dzisiaj... 5 lat to dłużej niż wieczność. </li>\n",
"</ul>\n",
" \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### 10. Pochwal się zespołem\n",
" * Jakie są kluczowe osoby w Twoim zespole?,\n",
" * Skąd pochodzą?\n",
" * Jaką wartość wnoszą?"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
"\n",
"<h4>Wskazówki:</h4>\n",
" \n",
"<ul>\n",
"<li> Można pokazać zdjęcia, jeśli ludzie się na to zgadzają. </li>\n",
" <li> Jeśli w zespole jest gwiazda, pozwól jej lśnić. </li>\n",
"</ul>\n",
" \n",
"</div>"
]
}
],
"metadata": {
"author": "Krzysztof Jassem",
"email": "jassem@amu.edu.pl",
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"lang": "pl",
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.6"
},
"subtitle": "03. Prezentacja koncepcji projektu B+R[wykład]",
"title": "Przygotowanie do projektu badawczo-rozwojowego",
"year": "2021"
},
"nbformat": 4,
"nbformat_minor": 4
}

View File

@ -1,67 +0,0 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Projekt badawczo-rozwojowy</h1>\n",
"<h2> 4. <i>Publiczne prezentacje projektów</i>[laboratorium]</h2> \n",
"<h3>Krzysztof Jassem (2021)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Cel laboratorium nr 4\n",
"\n",
"Celem laboratorium będzie publiczne przedstawienie koncepcji projektu badawczo-rozwojowego."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Plan laboratorium\n",
"\n",
"Podczas laboratorium poszczególne zespoły studentów przedstawiać będą: jednozdaniowy \"elevator pitch\" oraz prezentację dotyczącą swojego pomysłu. \n",
"\n",
"Widownią będą studenci wszystkich grup projektowych. Na ocenę prezentacji będą miały wpływ odczucia widowni - zebrane za pomocą ankiet.\n",
"\n",
"Maksymalna ocena: 30 punktów"
]
}
],
"metadata": {
"author": "Krzysztof Jassem",
"email": "jassem@amu.edu.pl",
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"lang": "pl",
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.5"
},
"subtitle": "01. Prezentacje publiczne[laboratorium]",
"title": "Projekt badawczo-rozwojowy",
"year": "2021"
},
"nbformat": 4,
"nbformat_minor": 4
}

View File

@ -1,622 +0,0 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Systemy informatyczne</h1>\n",
"<h2> 5. <i>Metodyki adaptacyjne w programowaniu</i>[wykład]</h2> \n",
"<h3>Krzysztof Jassem (2022)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Metodyki adaptacyjne w programowaniu (Agile Software Development)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-success\">\n",
"\n",
"<b> Agile </b> (zwinny) to pojęcie odnoszące się do szybkości i sprawności w działaniu i myśleniu.\n",
" \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Manifest Agile\n",
" * opublikowany w roku 2001\n",
" * autorzy: 17 teoretyków i praktyków programowania\n",
" * 4 wartości\n",
" * 12 zasad (pryncypiów)\n",
" \n",
" ### 4 wartości manifestu Agile\n",
" 1. Ludzie i interakcje ponad procesy i narzędzia.\n",
" 2. Działające oprogramowanie ponad szczegółową dokumentację.\n",
" 3. Współpraca z klientem ponad negocjację umów.\n",
" 4. Reagowanie na zmiany ponad podążaniem za planem.\n",
" \n",
" ### 12 pryncypiów manifestu Agile \n",
" [12 pryncypiów](https://www.agilealliance.org/agile101/12-principles-behind-the-agile-manifesto/)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 10 pryncypiów wg Kelly Watersa (All About Agile: Agile Management Made Easy!, 2012)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"1. Active User Involvement Is Imperative."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
"\n",
"Nic dobrego nie wynika <BR>\n",
"Bez udziału użytkownika.\n",
" \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"2. Agile Development Teams Must Be Empowered."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
"\n",
"Nie warta praca mozołu, <BR>\n",
"Gdy władza nie w rękach zespołu.\n",
" \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"3. Time waits for no man."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
"\n",
"Czas płynie wartko jak rzeka, <BR>\n",
"I na nikogo nie czeka.\n",
" \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"4. Agile Requirements Are Barely Sufficient."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
"\n",
"Dosłownie w kilku dziś zdaniach <BR>\n",
"Streścimy swe wymagania.\n",
" \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"5. How do you eat an elephant? One bite at a time."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
"\n",
"Sekretów uchylam wieczko: <BR>\n",
"Jedz słonia małą łyżeczką.\n",
" \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"6. Fast but not so furious."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
"\n",
"Byli szybcy, lecz nie wściekli, <BR>\n",
"I na czas produkt dowlekli.\n",
" \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"7. Done Means DONE!"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
"\n",
"Praca była \"wykonana\", <BR>\n",
"I działało... aż do rana.\n",
" \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"8. Enough is enough."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
" \n",
"Projekt ciągle się rozrasta, <BR>\n",
"Trzeba krzyknąć: \"Stop i Basta!\"\n",
" \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"9. Agile Testing Is Not For Dummies."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
" \n",
"Wiedz, by dobrze móc testować, <BR>\n",
"Twa głowa ma być pomysłowa.\n",
" \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"10. No place for snipers."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
" \n",
"Choć mocno znów cierpi Twe ego, <BR>\n",
"Nie strzelaj - do siebie samego.\n",
" \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Przykład manifestu zespołu ludzi (PWN AI)\n",
"> 1. Biznes stawia **cele**, IT daje **rozwiązania**.\n",
"> 2. Wszystko da się zrobić.\n",
"> 3. Biznes wyjaśnia **potrzeby**, IT wyjaśnia **możliwości**.\n",
"> 4. **Komunikacja i zaangażowanie** albo wyrzucanie pieniędzy w błoto.\n",
"> 5. Wszyscy jesteśmy **elastyczni**."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Metodyka SCRUM"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
" \n",
"<b>Scrum</b> jest metodyką, w której kluczowym elementem jest <b>Sprint</b> - faza, która kończy się działającym prototypem. Po każdym Sprincie następuje planowanie działań w kolejnym Sprincie - biorące pod uwagę dotychczasowe doświadczenia.\n",
" \n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Struktura metodyki Scrum opiera się na trzech filarach:\n",
"* Artefakty\n",
"* Role\n",
"* Cykl Pracy"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Artefakty w metodyce Scrum"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
" \n",
"<h5>Rejestr Produktu (Product Backlog)</h5>\n",
"\n",
"<b> Rejestr Produktu </b> to lista zadań do wykonania w projekcie ułożona według priorytetu wykonania.\n",
"\n",
"<ol>\n",
" <li> Rejestr produktu utrzymywany jest przez Właściciela Produktu.</li>\n",
" <li> Zadania, których efekt widoczny jest dla użytkownika mają często postać <b> User Story </b>.</li>\n",
" <li> Zadania o najniższym priorytecie mogą być usuwane z Rejestru Produktu.</li>\n",
" </ol>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
" \n",
"<h5>User Story </h5>\n",
"\n",
"> <b> User story </b> to krótki opis wybranej funkcjonalności, napisany z punktu widzenia docelowego użytkownika danego produktu (Encyklopedia Zarządzania).\n",
"\n",
"User Story ma zwykle postać: \n",
"> Jako <Kto?> chcę wykonać<Co?> aby<Dlaczego?>\n",
"\n",
"<h6> Przykład User Story </h6>\n",
" \n",
"> Jako <b> klient sklepu </b> chcę <b> dodać produkt do koszyka </b> aby go później <b> kupić </b>.\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
" \n",
"<h5>Rejestr Sprintu (Sprint Backlog)</h5>\n",
"\n",
"<b> Rejestr Sprintu </b> to lista <b>Zadań</b> do wykonania podczas Sprintu:\n",
"\n",
"<ol>\n",
" <li> utrzymywana przez Zespół Deweloperski,</li>\n",
" <li> tworzona na początku każdego Sprintu przez Zespół Deweloperski na podstawie priorytetowego zadania z Rejestru Produktu. </li>\n",
" </ol>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
" \n",
"<h5>Zadanie (Task)</h5>\n",
"\n",
"<b> Zadanie </b> w Rejestrze Sprintu zawiera następujące informacje:\n",
"\n",
"<ol>\n",
" <li> opis zadania,</li>\n",
" <li> szacowany czas wykonania zadania, </li>\n",
" <li> członek zespołu odpowiedzialnego za wykonanie zadania, </li>\n",
" <li> status danego zadania (np. jeden z trzech: oczekuje na realizację/w trakcie realizacji/wykonane). </li>\n",
" </ol>\n",
"</div>\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Role w metodyce Scrum"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-success\">\n",
" \n",
"<h5>Udziałowcy (stakeholders)</h5>\n",
"Udziałowcy to ludzie, którzy finansują projekt:\n",
"<ol>\n",
" <li> właściciele firmy realizującej projekt,</li>\n",
" <li> klienci, </li>\n",
" <li> przyszli użytkownicy.</li>\n",
" </ol>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-success\">\n",
" \n",
"<h5>Właściciel Produktu (Product Owner)</h5>\n",
"\n",
"<b> Właściciel Produktu </b> to rola, która reprezentuje interesy biznesu.\n",
"\n",
"<h6> Zadania Właściciela Produktu: </h6>\n",
"\n",
"<ol>\n",
" <li> nadzoruje pisanie <b> User Stories</b>,</li>\n",
" <li> analizuje na bieżąco potrzeby biznesu i na tej podstawie...</li>\n",
" <li> ustala priorytet User Stories w <b>Rejestrze Produktu</b>,</li>\n",
" <li> decyduje, co jest WYKONANE. </li>\n",
" </ol>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-success\">\n",
"<h5>Zespół Deweloperski (Development Team)</h5>\n",
" \n",
"<b>Zespół Deweloperski </b> to zespół wykonawców oprogramowania, zazwyczaj składający się z kilku osób (3-9), o równych prawach.\n",
" \n",
"<h6> Zadania Zespołu Deweloperskiego: </h6>\n",
"\n",
"<ol>\n",
" <li> jest odpowiedzialny za implementację, </li>\n",
" <li> na podstawie priorytetów Właściciela produktu określa zadania na kolejny sprint, </li>\n",
" <li> wykonuje cały proces: analiza, programowanie, testowanie (dzienniku produktu),</li>\n",
" <li> sam decyduje o sposobie realizacji zadań. </li>\n",
" </ol>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-success\">\n",
"<h5> Scrum Master </h5>\n",
"\n",
"Scrum Master to członek zespołu deweloperskiego, mający dobre zrozumienie ideologii SCRUM.\n",
"\n",
"<h6> Zadania Scrum Mastera: </h6>\n",
"<ol>\n",
" <li> prowadzi <b>Daily </b> (spotkanie zespołu), </li>\n",
" <li> prowadzi <b> Retrospektywę</b>, </li>\n",
" <li> buduje relacje w zespole, </li>\n",
" <li> pomaga rozwiązywać konflikty, </li>\n",
" <li> pośredniczy w rozmowach z Właścicielem produktu. </li>\n",
" </ol>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Cykl pracy w metodyce Scrum"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
"<h5> Sprint </h5> \n",
"\n",
"<b> Sprint </b> to okres, podczas którego tworzy się przyrost projektu, skutkujący prototypem gotowym do użycia. Sprint zazwyczaj trwa nie krócej niż tydzień i nie dłuzej niż miesiąc.\n",
"W skład Sprintu wchodzą:\n",
"<ol>\n",
" <li> Planowanie Sprintu, </li>\n",
" <li> Implementacja, </li>\n",
" <li> Codzienne spotkania, </li>\n",
" <li> Przegląd Sprintu, </li>\n",
" <li> Retrospektywa. </li>\n",
" </ol>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
"<h5> Planowanie Sprintu (Sprint Planning) </h5> \n",
"\n",
"<b> Planowanie sprintu </b> jest pierwszym spotkaniem podczas każdego sprintu. \n",
"\n",
"<ul>\n",
"<li> Planowanie Sprintu bierze udział Zespół Deweloperski oraz opcjonalnie Właściciel Produktu. </li> \n",
"<li> Planowanie Sprintu prowadzone jest przez Scrum Mastera. </li>\n",
"</ul>\n",
"\n",
"<h6> Standardowy przebieg Planowania Sprintu: </h6> \n",
"<ol>\n",
" <li> Analizy Rejestru Produktu - wybór wymagań do realizacji, </li>\n",
" <li> Określenie celu sprintu - na podstawie wybranych wymagań, </li>\n",
" <li> Określenie pełnego zakresu prac: jak będzie działał system po Sprincie, </li>\n",
" <li> Stworzenie Rejestru Sprintu: podział zakresu prac na zadania i przydzielenie członków zespołu do zadań, </li>\n",
" <li> Estymacja pracochłonności zadań. </li>\n",
" </ol>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
"<h5> Codzienne Spotkania (Daily Scrum) </h5> \n",
"\n",
"<b> Codzienne Spotkanie </b> (stosowana nazwa w j. polskim - <b> Daily </b>) to codzienne zdarzenie, które trwa do piętnastu minut w stałym miejscu i o stałej porze. \n",
"\n",
"<ul>\n",
"<li> W Daily bierze udział Zespół Deweloperski. </li> \n",
"<li> Daily prowadzone jest przez Scrum Mastera. </li>\n",
"</ul>\n",
" \n",
"<h6> Standardowy plan Daily: </h6>\n",
"\n",
"<ol>\n",
" <li> Przegląd prac w ciągu ostatniego dnia, </li>\n",
" <li> Omówienie pojawiających się problemów, </li>\n",
" <li> Omówienie planu na kolejny dzień. </li>\n",
"</ol>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
"<h5> Przegląd Sprintu </h5> \n",
"\n",
"<b> Przegląd Sprintu </b> jest spotkaniem organizowanym na zakończenie Sprintu w celu zweryfikowania wykonania zadań w Sprincie i dostosowania Rejestru Produktu. \n",
"\n",
"<ul>\n",
"<li> W Przeglądzie Sprintu bierze udział Zespół Deweloperski, Właściciel Produktu oraz Udziałowcy zaproszenieni przez Właściciela Produktu. </li> \n",
"<li> Przegląd Sprintu prowadzony jest przez Właściciela Produktu. </li>\n",
"</ul>\n",
" \n",
"<h6> Standardowy plan Przeglądu Sprintu: </h6>\n",
"\n",
"<ol>\n",
" <li> Właściciel Produktu wyjaśnia Udziałowcom, które funkcjonalności zostały \"Wykonane”, a które nie. </li>\n",
" <li> Zespół Deweloperski omawia zadania w Sprincie, jakie były problemy oraz jak je rozwiązano. </li>\n",
" <li> Zespół Deweloperski prezentuje \"Wykonaną” pracę; dyskusja. </li>\n",
" <li> Właściciel Produktu omawia obecny Rejestr Produktu. </li>\n",
" <li> Uczestnicy omawiają kolejne kroki pracy pod kątem potrzeb biznesu.\n",
" <li> Właściciel produktu aktualizuje Rejestr Produktu.\n",
"</ol>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
"<h5> Retrospektywa Sprintu</h5> \n",
"\n",
"<b> Retrospektywa Sprintu </b> to spotkanie po Przeglądzie Sprintu w celu opracowania usprawnień na następny Sprint. \n",
"\n",
"<ul>\n",
"<li> W Retrospektywie udział bierze Zespół Deweloperski. </li> \n",
"<li> Retrospektywę prowadzi Scrum Master. </li>\n",
"</ul>\n",
" \n",
"<h6> Standardowy plan Retrospektywy: </h6>\n",
"\n",
"<ol>\n",
" <li> Sprawdzenie, co działo się w ostatnim Sprincie, </li>\n",
" <li> Zidentyfikowanie elementów, które sprawdziły się w działaniu, </li>\n",
" <li> Zidentyfikowanie elementów, które kwalifikują się do usprawnienia,</li>\n",
" <li> Stworzenie planu wprowadzania w życie usprawnień. </li>\n",
"</ol>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Wniosek\n",
"Nie zrobi informatyk \n",
"Złotego interesu, \n",
"Gdy nie będzie co tydzień \n",
"Słuchał potrzeb biznesu."
]
}
],
"metadata": {
"author": "Krzysztof Jassem",
"email": "jassem@amu.edu.pl",
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"lang": "pl",
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.5"
},
"subtitle": "05. Metodologia Prince2Agile[wykład]",
"title": "Przygotowanie do projektu badawczo-rozwojowego",
"year": "2021"
},
"nbformat": 4,
"nbformat_minor": 4
}

View File

@ -1,479 +0,0 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Systemy informatyczne</h1>\n",
"<h2> 6. <i>Prototypowanie i ciągła integracja</i>[wykład]</h2> \n",
"<h3>Krzysztof Jassem (2022)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-success\">\n",
" \n",
"<h2>Prototyp </h2> \n",
"Prototyp to wynik częściowej implementacji, posiadający wybrane cechy produktu końcowego.\n",
"\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Cele prototypowania\n",
" * Zademonstrowanie umiejętności wykonania produktu końcowego\n",
" * Określenie realistycznych wymagań końcowych\n",
" * Przekonanie się o wpływie innych systemów, środowisk na produkt. \n",
" * Sprawdzenie implementacji kluczowych funkcji\n",
"\n",
"## Potencjalne efekty prototypowania\n",
"* Wykrycie nieporozumień między klientem i wykonawcą \n",
"* Określenie brakujących funkcji \n",
"* Wykrycie błędów w specyfikacji\n",
"* Przewidywanie przyszłych trudności "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Prototyp poziomy a pionowy\n",
"### Prototyp poziomy (Horizontal Prototype)\n",
"\n",
"**Prototyp poziomy** obrazuje całość systemu, podkreślając interakcję z użytkownikiem, a nie wnikając w funkcjonalności.\n",
"\n",
"Przykłady prototypów poziomych w informatyce:\n",
" * Prototyp papierowy\n",
" * Makieta statyczna\n",
" * Makieta dynamiczna\n",
" * Graficzny interfejs użytkownika"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-success\">\n",
" \n",
"<h2>Prototyp papierowy </h2> \n",
" \n",
"<b>Prototyp papierowy</b> to sposób reprezentacji produktu cyfrowego za pomocą wycinanek z papieru. \n",
" \n",
"* Służy do zrozumienia koncepcji produktu cyfrowego przez użytkownika. \n",
"* Dla autora koncepcji prototyp taki służy do prześledzenia reakcji użytkowników na przyszłe działanie systemu przed jego realizacją.\n",
"\n",
"<b>Prototypowanie papierowe - etapy </b>:\n",
"\n",
"<ul>\n",
"<li> Naszkicowanie wstępnej koncepcji ekranów z wyróżnieniem głównych funkcjonalności. </li>\n",
"<li> Symulowanie interakcji poprzez podmienianie papierowych ekranów i wyciętych elementów. </li>\n",
"</ul>\n",
" \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-success\">\n",
" \n",
"<h2>Makieta statyczna </h2> \n",
" \n",
" \n",
"<b>Makieta statyczna</b> to cyfrowy projekt aplikacji, który zawiera pewne elementy docelowej konstrukcji, ale nie jest funkcjonalny. \n",
"\n",
"<ul>\n",
" <li> Obrazuje wybrane widoki bez połączeń między nimi. </li>\n",
"</ul> \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-success\">\n",
" \n",
"<h2>Makieta dynamiczna </h2> \n",
" \n",
" \n",
"<b>Makieta dynamiczna</b> to cyfrowy projekt aplikacji, który zawiera pewne elementy docelowej konstrukcji i wskazuje interakcje z użytkownikiem. \n",
"\n",
"<ul>\n",
"<li> Widoki są \"klikalne\" - po kliknięciu użytkowniki kierowany jest do nowego widoku. </li>\n",
"</ul> \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-success\">\n",
" \n",
"<h2>Graficzny interfejs użytkownika (GUI) </h2> \n",
"\n",
"<b> Graficzny interfejs użytkownika </b> to sposób komunikacji użytkownika z komputerem za pomocą elementów graficznych.\n",
" \n",
"Prototypem poziomym nazwiemy GUI, który: \n",
"<ul>\n",
"<li> Pokazuje menu. </li>\n",
"<li> Pozwala na nawigację. </li>\n",
"<li> Akceptuje input. </li>\n",
"<li> Wyświetla losowy output. </li>\n",
"<li> NIE wspiera logiki aplikacji. </li>\n",
"</ul>\n",
" \n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Prototyp pionowy (Vertical Prototype)\n",
"**Prototyp pionowy** to pełna realizacja kluczowej (kluczowych) funkcji systemu.\n",
"\n",
"Cele prototypowania pionowego:\n",
"* sprawdzenie wyboru technologii\n",
"* pomiary wydajności\n",
"* sprawdzenie poprawności algorytmów i struktur danych\n",
"\n",
"Realizacja prototypów pionowych jest polecana w sytuacji, gdy wykonanie kluczowych funkcji systemu obarczone jest wysokim ryzykiem."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Prototypowanie z porzuceniem a prototypowanie ewolucyjne"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Prototypowanie z porzuceniem (Thow-away Prototyping)\n",
"\n",
"W **prototypowaniu z porzuceniem** budowane są kolejne wersje prototypów, a niektóre z nich są porzucane.\n",
"\n",
"Cele prototypowania z porzuceniem:\n",
"* minimalizacja ryzyka,\n",
"* głębokie zrozumienie problemów technicznych\n",
"\n",
"Koszty:\n",
" * Koszty prototypowania z porzuceniem są wysokie."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Prototypowanie ewolucyjne (Ewolutionary Prototyping)\n",
"\n",
"**Prototypowanie ewolucyjne** polega na stopniowym rozszerzaniu prototypu, aż spełnia on wszystkie wymagania... \n",
"\n",
"...Wtedy prototyp staje się produktem.\n",
"\n",
"Prototyp ewolucyjny powinien być budowany:\n",
" * w środowisku zbliżonym do produkcyjnego, \n",
" * z dużą dbałością o jakość."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Prototypowanie - podsumowanie\n",
"\n",
"* Prototypy tworzy się w celu zminimalizowania ryzyka niepowodzenia produktu. \n",
"* W prototypach poziomych chodzi o zobrazowanie wszystkich funkcji. \n",
"* W prototypach pionowych chodzi o szczegóły techniczne.\n",
"* Prototypowanie z porzuceniem oywa się z reguły wszerz (prototypy poziome); \n",
" * jest bardziej kosztowne, ale minimalizuje ryzyko.\n",
"* Prototypowanie ewolucyjne odbywa się z reguły w głąb (prototypy pionowe); \n",
" * jest mniej kosztowne, ale bardziej ryzykowne."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-block alert-success\">\n",
" \n",
"<h2>Ciągła integracja </h2> \n",
" \n",
"Ciągła integracja (CI) to praktyka rozwoju oprogramowania, w której:\n",
"<ul>\n",
" <li> zmiany w kodzie są regularnie przesyłane do centralnego repozytorium, </li>\n",
" <li> po każdym dołączeniu nowego kodu wykonywane są (automatycznie): kompilacja kodu i testy. </li>\n",
"</ul>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<div class=\"alert alert-info alert-success\">\n",
" \n",
"<h2>Główne przesłanki CI </h2> \n",
" \n",
"Ciągła integracja (CI) to praktyka rozwoju oprogramowania, w której:\n",
"<ul>\n",
" <li> szybsze lokalizowanie błędów w kodzie, </li>\n",
" <li> ciągły wzrost jakości oporgramowania, </li>\n",
" <li> szybkie wydawanie nowych wersji. </li>\n",
"</ul>\n",
"</div>\n",
"\n",
" \n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"![Schemat CI/CD](obrazy/cicd.drawio.png \"Schemat CI/CD\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Przebieg pracy w Ciągłej Integracji\n",
"1. **Take Integrated Code**\n",
" * Pobieram kod z repozytorium.\n",
" * Instaluję kopię na swojej stacji roboczej. \n",
" \n",
"2. **Do Your Part**\n",
" * Opracowuję nowy kod.\n",
" * Opracowuję nowe testy jednostkowe.\n",
" \n",
"3. **Build on your machine**\n",
"\n",
" * **Repeat** \n",
" * Kompiluję swój kod i buduję wersję wykonywalną,\n",
" * Przeprowadzam testy jednostkowe,\n",
" * **Until**\n",
" * Kod się skompilował poprawnie oraz\n",
" * Testy zakończyły się powodzeniem.\n",
" \n",
"4. **Integrate with Repository**\n",
"\n",
" * Przesyłam kod do repozytorium centralnego, skąd przesyłany jest do kompilacji i testów.\n",
" * Przypadek 1. W międzyczasie ktoś dodał swój kod do repozytorium. Kompilacja lub testy się nie powodzą.\n",
" * **Go back to: Take Integrated Code**\n",
" * Przypadek 2. Tetsy się powodzą\n",
" * **Continue**\n",
" \n",
"5. **End Session**\n",
" * Gdy powiodły się wszystkie testy, mogę zakończyć sesję."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Dobre praktyki Ciągłej Integracji\n",
"(wg https://www.martinfowler.com/articles/continuousIntegration.html)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Maintain a Single Source Repository\n",
" * Załóż mainline (linię główną): \n",
" * Deweloperzy powinni większość pracy składać na mainline.\n",
" * Nie nadużywaj odgalęzień (branchów). Jeśli już, to tylko w celu:\n",
" * naprawy błędów,\n",
" * tymczasowych eksperymentów,\n",
" * oznaczania wersji publikowalnych.\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Automate the Build\n",
" * Wersja wykonywalna powinna być tworzona jednym poleceniem.\n",
" * Dotyczy to zarówno repozytorium centralnego, jak i maszyn lokalnych."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Test Yourself\n",
" * Pisz testy jednostkowe.\n",
" * Uruchamiaj testy po każdej kompilacji."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Everyone Commits Everyday\n",
" * Każdy powinien \"codziennie\" wypychać swój kod do linii głównej.\n",
" * Umożliwia to wczesne wykrywanie konfliktów, gdyż...\n",
" * Im wcześniej wykryje się konflikt, tym łatwiej go naprawić.\n",
" * Postulat wymaga rozbicia projektu na małe kawałki."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Every Commit Should Build the Mainline\n",
" * Nie odchodzisz od pracy z repozytorium, aż Twój kod nie przeszedł pełnych testów.\n",
" * Korzystaj z systemów ciągłej integracji (Cruise Control, Jenkins)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Fix the Broken Builds Immediately\n",
"Co zrobić, jeśli jednak kod na \"mainline\" się nie buduje? \n",
"Znalezienie i poprawienie blędu jest priorytetem, ale:\n",
" * Nie debugguj kodu na centralnym repozytorium. \n",
" * Przywróć wersję wykonywalną na \"mainline\".\n",
" * Debugguj kod na maszynie lokalnej."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Make it Easy to Run the Latest Executable\n",
"* Każdy członek zespołu (nie tylko deweloper) powinien mieć możliwość łatwego uruchomienia ostatniej wersji stabilnej.\n",
"* Jest to niezbędne do:\n",
" * testowania integracyjnego (tester),\n",
" * rozmów z klientem (zarząd lub sprzedawca),\n",
" * prowadzenia projektu (kierownik zespołu).\n",
"* W specjalnej lokalizacji przetrzymuj wersje stabilne - \"do pokazania\"."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Keep the Build Fast\n",
"\n",
" * Maximum 10 minut na build + testy.\n",
" * A jeśli testy trwają dłużej?\n",
" * Testy dwuetapowe:\n",
" * kompilacja + testy jednostkowe przy każdym commicie,\n",
" * testy integracyjne co pewien czas (np. po commicie wszystkich deweloperów)."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Clone the Environment\n",
" * Przygotuj klon środowiska produkcyjnego:\n",
" * ta sama wersja systemu operacyjnego\n",
" * ta sama baza danych\n",
" * te same biblioteki (nawet jak ich nie potrzebujesz) \n",
" * Wszystkie testy przeprowadzaj na przygotowanym środowisku."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Everyone Can See What's Happening\n",
"System powinien informować użytkowników o swoim statusie."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Automate Deployment\n",
" * Zautomatyzowanie wdrożenia polega na napisaniu skryptów, które instalują system w docelowym środowisku.\n",
" * Pozwala to na szybką reakcję, gdy \"coś się dzieje\". "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Narzędzia Ciągłej Integracji\n",
"\n",
"https://www.katalon.com/resources-center/blog/ci-cd-tools/\n",
"\n",
"1. Jenkins\n",
"2. Circle CI\n",
"3. Team City\n",
"4. Bamboo\n",
"5. GitLab"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Korzyści z Ciągłej Integracji\n",
" * Minimalizacja ryzyka\n",
" * Łatwiejsze szacowanie terminu zakończenia prac\n",
" * Szybsza lokalizacja i naprawa błędów\n",
" * Świadomość stanu prac u całego zespołu\n",
" * Możliwość kontynuowania prac w przypadku odejścia dewelopera\n",
" * Możliwość pracy w środowisku rozproszonym\n",
" * Możliwość usunięcia bariery między wykonawcą i klientem"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Przykład - Jenkins\n",
"\n",
"https://git.wmi.amu.edu.pl/filipg/paper-cutter/src/branch/master/Jenkinsfile\n",
"\n"
]
}
],
"metadata": {
"author": "Krzysztof Jassem",
"email": "jassem@amu.edu.pl",
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"lang": "pl",
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.6"
},
"subtitle": "06. Prototypowanie i ciągła integracja[wykład]",
"title": "Przygotowanie do projektu badawczo-rozwojowego",
"year": "2021"
},
"nbformat": 4,
"nbformat_minor": 4
}

View File

@ -4,21 +4,13 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Systemy informatyczne</h1>\n",
"<h1> Systemy informatyczne analizy danych</h1>\n",
"<h2> 7. <i>Specyfikacja projektu informatycznego</i>[wykład]</h2> \n",
"<h3>Krzysztof Jassem (2022)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
"<h3>Krzysztof Jassem (2023)</h3>\n",
"</div>"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
},
{
"cell_type": "markdown",
"metadata": {},

View File

@ -4,14 +4,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Systemy informatyczne</h1>\n",
"<h1> Systemy informatyczne analizy danych</h1>\n",
"<h2> 8. <i>Testowanie w programowaniu zwinnym</i>[wykład]</h2> \n",
"<h3>Krzysztof Jassem (2022)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
"<h3>Krzysztof Jassem (2023)</h3>\n",
"</div>"
]
},
{
@ -463,7 +460,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.6"
"version": "3.8.5"
},
"subtitle": "08. Testowanie w programowaniu zwinnym[wykład]",
"title": "Przygotowanie do projektu badawczo-rozwojowego",

View File

@ -4,14 +4,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Systemy informatyczne</h1>\n",
"<h1> Systemy informatyczne analizy dannych</h1>\n",
"<h2> 9. <i>Testowanie systemowe i akceptacyjne</i>[wykład]</h2> \n",
"<h3>Krzysztof Jassem (2022)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
"<h3>Krzysztof Jassem (2023)</h3>\n",
"</div>"
]
},
{
@ -443,7 +440,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.6"
"version": "3.8.5"
},
"subtitle": "09. Testowanie integracyjne i systemowe[wykład]",
"title": "Przygotowanie do projektu badawczo-rozwojowego",

View File

@ -4,14 +4,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Przygotowanie do projektu badawczo-rozwojowego</h1>\n",
"<h1> Systemy informatyczne analizy danych</h1>\n",
"<h2> 10. <i>Wybrane zagadnienia użyteczności</i>[wykład]</h2> \n",
"<h3>Krzysztof Jassem (2021)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
"<h3>Krzysztof Jassem (2023)</h3>\n",
"</div>"
]
},
{
@ -58,7 +55,6 @@
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
@ -143,7 +139,6 @@
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
@ -189,7 +184,6 @@
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
@ -198,7 +192,6 @@
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
@ -209,7 +202,6 @@
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
@ -221,7 +213,6 @@
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
@ -231,7 +222,6 @@
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
@ -250,7 +240,6 @@
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
@ -277,7 +266,6 @@
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
@ -303,7 +291,6 @@
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
@ -318,7 +305,6 @@
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
@ -339,7 +325,6 @@
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
@ -353,7 +338,6 @@
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
@ -435,7 +419,6 @@
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
@ -493,7 +476,6 @@
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
@ -511,7 +493,6 @@
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [
@ -535,7 +516,6 @@
]
},
{
"attachments": {},
"cell_type": "markdown",
"metadata": {},
"source": [

View File

@ -4,14 +4,10 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Systemy informatyczne</h1>\n",
"<h2> 11. <i>Aspekty użyteczności</i>[wykład]</h2> \n",
"<h3>Krzysztof Jassem (2022)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
"<h3>Krzysztof Jassem (2023)</h3>\n",
"</div>"
]
},
{
@ -681,7 +677,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.6"
"version": "3.8.5"
},
"subtitle": "11. Aspekty użyteczności[wykład]",
"title": "Przygotowanie do projektu badawczo-rozwojowego",

View File

@ -4,14 +4,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Systemy informatyczne</h1>\n",
"<h1> Systemy informatyczne analizy danych</h1>\n",
"<h2> 12. Ocena jakości systemu informatycznego</i>[wykład]</h2> \n",
"<h3>Krzysztof Jassem (2022)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
"<h3>Krzysztof Jassem (2023)</h3>\n",
"</div>"
]
},
{

View File

@ -4,14 +4,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Systemy informatyczne</h1>\n",
"<h2> 13. <i>Planowanie prac w projekcie informatycznym</i>[wykład]</h2> \n",
"<h3>Krzysztof Jassem (2022)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
"<h3>Krzysztof Jassem (2023)</h3>\n",
"</div>"
]
},
{

View File

@ -4,14 +4,11 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"![Logo 1](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech1.jpg)\n",
"<div class=\"alert alert-block alert-info\">\n",
"<h1> Systemy informatyczne</h1>\n",
"<h2> 14. Zarządzanie projektem informatycznym</i>[wykład]</h2> \n",
"<h3>Krzysztof Jassem (2021)</h3>\n",
"</div>\n",
"\n",
"![Logo 2](https://git.wmi.amu.edu.pl/AITech/Szablon/raw/branch/master/Logotyp_AITech2.jpg)"
"<h3>Krzysztof Jassem (2023)</h3>\n",
"</div>"
]
},
{