WDI_2024_OWKO/Temat 1/WDI_LAB_1_OWKO.ipynb

161 lines
15 KiB
Plaintext
Raw Permalink Normal View History

2024-08-09 17:31:53 +02:00
{
"cells": [
{
"cell_type": "markdown",
"id": "9cab972c",
"metadata": {},
"source": [
"# Wstęp do informatyki\n",
"\n",
"### Joanna Siwek\n",
"\n",
"## Laboratoria 1. informatyka wprowadzenie i podstawowe pojęcia"
]
},
{
"cell_type": "markdown",
"id": "e3ef2128",
"metadata": {},
"source": [
"### Wykład w pigułce\n",
"\n",
"1. Definicja informatyki \n",
"\n",
"Informatyka, szeroko pojęta jako nauka, obejmuje różnorodne aspekty pracy z informacją, jej strukturą, reprezentacją i wykorzystaniem. Definicje informatyki wskazują na jej złożony charakter, który łączy teorię, analizę, projektowanie, implementację oraz zastosowanie zarówno oprogramowania, jak i sprzętu komputerowego. Dział informatyki zajmuje się również problemami etycznymi związanymi z technologią, z czego wynikają szczególne wymagania moralne stawiane przed profesjonalistami w tej dziedzinie.\n",
"\n",
"Rozważając różne definicje, informatyka jest przedstawiana zarówno jako nauka o obliczeniach, gdzie badania mogą dotyczyć algorytmów czy modeli obliczeniowych, jak i obszar badań nad skutecznym zastosowaniem komputerów do rozwiązywania realnych problemów. Równocześnie, w ramach etyki komputerowej, kluczowe stają się zagadnienia związane z odpowiedzialnością, prywatnością i wpływem informatyki na społeczeństwo, co pokazuje jej fundamentalne znaczenie nie tylko w kontekście technologicznym, ale również społecznym i moralnym.\n",
"\n",
"Informatyka obejmuje wiele różnych obszarów zainteresowania, które można podzielić na kilka głównych kategorii. Informatyka teoretyczna zajmuje się badaniem algorytmów, teorii obliczeń, teorii informacji i kodowania oraz informatyki kwantowej. Inżynieria komputerowa skupia się na logice obliczeniowej, architekturze komputerów, przetwarzaniu równoległym i rozproszonym, programowaniu niskopoziomowym oraz sieciach komputerowych i systemach operacyjnych. Informatyka praktyczna obejmuje grafikę komputerową, inżynierię oprogramowania, cyberbezpieczeństwo i kryptologię, a także bazy danych i eksplorację danych.\n",
"\n",
"Dalsze obszary to systemy i technologie komputerowe, które obejmują sztuczną inteligencję, systemy wbudowane, widzenie komputerowe, przetwarzanie obrazów i mowy, gry komputerowe, interfejsy człowiek-komputer oraz technologie webowe i mobilne. Informatyka stosowana rozciąga się na takie dziedziny jak bioinformatyka, chemioinformatyka, neuroinformatyka, socjoinformatyka, geoinformatyka oraz informatyka śledcza, medyczna, materiałowa, przemysłowa, ekonomiczna i afektywna. Te różnorodne obszary podkreślają, jak wszechstronna i integralna dla różnych dziedzin nauki i przemysłu jest informatyka.\n",
"\n",
"2. Historia informatyki\n",
"\n",
"Informatyka ma swoje korzenie sięgające starożytności, kiedy to około 2600 r. p.n.e. stosowano liczydła zwane abakusami. W IV wieku p.n.e. Euklides podał algorytm znajdowania największego wspólnego dzielnika, co jest uważane za pierwszy algorytm w historii. W IX wieku n.e. perski matematyk Muhammed Alchwarizmi opracował reguły arytmetyki dziesiętnej, dając początek pojęciu algorytmu. W XVII wieku rozwój mechanicznych maszyn obliczeniowych przyspieszył dzięki wynalazkom Wilhelma Schickarda, Blaise'a Pascala i Gottfrieda Wilhelma Leibnitza, którzy zbudowali jedne z pierwszych kalkulatorów mechanicznych i odkryli system dwójkowy. W XIX wieku Charles Babbage zbudował maszynę różnicową i stworzył plany maszyny analitycznej, a Ada Lovelace napisała pierwszy program komputerowy. Herman Hollerith wynalazł maszynę liczącą na kartach perforowanych, używaną w spisie powszechnym USA w 1890 roku.\n",
"\n",
"XX wiek przyniósł rewolucję w informatyce dzięki wynalazkom Alana Turinga, który opisał maszynę Turinga, oraz Johna von Neumanna, który stworzył architekturę współczesnego komputera. Powstały też pierwsze elektroniczne komputery, takie jak Atanasoff-Berry Computer i ENIAC. Kluczowe były wynalazki tranzystora w 1947 roku, który zastąpił lampy elektronowe w 1955 roku, oraz układu scalonego w 1958 roku. W Polsce zbudowano komputer XYZ, a IBM wprowadził serię 360. Lata 70. i 80. przyniosły rozwój mikrokomputerów, takich jak Altair 8800, Apple II i IBM PC. W XXI wieku rozwój komputerów kwantowych, sztucznej inteligencji i chmury obliczeniowej znacząco zmienił sposób przetwarzania danych, oferując nowe możliwości w różnych dziedzinach nauki i przemysłu, a także rewolucjonizując wiele aspektów codziennego życia.\n",
"\n",
"W XXI wieku rozwój technologii komputerowych osiągnął niespotykane wcześniej tempo. Pojawienie się komputerów kwantowych, które wykorzystują zasady mechaniki kwantowej do przetwarzania informacji, stanowi rewolucję w obliczeniach i może przynieść ogromne zmiany w różnych dziedzinach nauki i przemysłu. Rozwój sztucznej inteligencji (AI) i uczenia maszynowego (ML) zmienia sposób, w jaki komputery są wykorzystywane do rozwiązywania problemów, rewolucjonizując różne sektory, od medycyny i finansów po transport i rolnictwo. Powszechne wykorzystanie chmury obliczeniowej umożliwia elastyczne i skalowalne przechowywanie oraz przetwarzanie danych, co sprzyja innowacjom i obniża koszty operacyjne, umożliwiając firmom i użytkownikom indywidualnym korzystanie z potężnych zasobów obliczeniowych bez konieczności posiadania własnej infrastruktury IT.\n",
"\n",
"3. Etyka w informatyce\n",
"\n",
"Etyka, zgodnie z definicją encyklopedii PWN, oznacza traktat o obyczajach, a w szerszym rozumieniu to zespół norm moralnych przyjętych przez społeczeństwo do oceny i regulacji zachowań jego członków. W kontekście technologii komputerowych, Walter Maner w latach 70. wprowadził termin \"etyka komputerowa\", definiując ją jako badanie problemów etycznych zaostrzonych, przekształconych lub stworzonych przez technologię komputerową. Deborah Johnson i James Moor rozszerzyli te definicje, podkreślając, że etyka komputerowa analizuje wpływ technologii informatycznej na wartości społeczne i ludzkie, takie jak zdrowie, prywatność, demokracja, czy bezpieczeństwo, i zajmuje się problemami wynikającymi z braku istniejących zasad etycznych w kontekście użytkowania technologii informatycznej.\n",
"\n",
"Zasady etyczne w pracy informatyków, jak sugeruje Polskie Towarzystwo Informatyczne, obejmują m.in. przyczynianie się do dobra społeczeństwa, unikanie szkodzenia innym, bycie uczciwym i godnym zaufania oraz szanowanie praw własności intelektualnej. Informatycy powinni zawsze przedstawiać swoje kompetencje zgodnie z prawdą, respektować prywatność i poufność informacji, oraz unikać konfliktów interesów. Zaleca się również, aby informatycy starali się przedstawiać szerokie spektrum rozwiązań w swojej działalności dydaktycznej, oddzielali wiedzę pewną od hipotez w pracy naukowej i rzetelnie informowali klientów o kosztach i czasie trwania projektów.\n",
"\n",
"4. Narzędzia wsparcia pracy informatyka\n",
"\n",
"- **Wolfram Alpha**: Wykorzystuje inteligencję obliczeniową do formułowania odpowiedzi na pytania zadane w języku naturalnym, wykonywania obliczeń, przedstawiania danych statystycznych oraz rozwiązywania równań, stanowiąc alternatywę do Matlaba w wykonywaniu jednorazowych, trudnych obliczeń.\n",
" \n",
"- **draw.io**: Darmowe, webowe narzędzie do tworzenia diagramów, które umożliwia rysowanie schematów blokowych, diagramów przepływu, diagramów UML i innych. Jest łatwe w obsłudze, oferuje integrację z Google Drive, Dropbox, OneDrive i lokalnym systemem plików, a także umożliwia współpracę w czasie rzeczywistym.\n",
"\n",
"- **Amazon Web Services (AWS)**: Największy dostawca usług chmurowych na świecie oferujący szeroką gamę usług wspierających optymalizację procesów biznesowych, przechowywanie informacji, moc obliczeniową, dostęp do aplikacji i wiele innych, w tym EC2 do tworzenia maszyn wirtualnych, S3 do przechowywania plików oraz RDS do szybkiego tworzenia baz danych.\n",
"\n",
"- **Dropbox**: Usługa udostępniająca przestrzeń dyskową na serwerach firmy Dropbox, Inc., umożliwiająca wysyłanie, przeglądanie i pobieranie danych przez przeglądarkę internetową lub dedykowaną aplikację, używana głównie do przechowywania kopii zapasowych i synchronizowania plików między komputerami.\n",
"\n",
"- **OneDrive**: Wirtualny dysk Microsoftu udostępniający 5 GB darmowego miejsca z możliwością rozszerzenia do 100 GB, a posiadacze subskrypcji Microsoft 365 otrzymują dodatkowo 1 TB miejsca na swoje pliki, umożliwiając przechowywanie i synchronizację plików.\n",
"\n",
"- **MS Visio**: Program do łatwego i estetycznego rysowania schematów blokowych, bramek logicznych, diagramów sieci neuronowych, drzew i grafów, dostępny w pakiecie Office 365.\n",
"\n",
"- **Office 365**: Pakiet aplikacji biurowych i narzędzi do współpracy, w tym Word, Excel, PowerPoint, Teams, oraz SharePoint, umożliwiający wspólne opracowywanie dokumentów i zarządzanie projektami.\n",
"\n",
"- **Creately**: Chmurowe narzędzie SaaS do rysowania schematów, diagramów, zestawień, map myśli i innych, wspierające diagramy UML i schematy blokowe, oferujące darmowy, łatwy w obsłudze interfejs.\n",
"\n",
"- **Matlab Online**: Potężne narzędzie do uczenia maszynowego, algorytmów genetycznych, sieci neuronowych, optymalizacji i statystyki, dostępne w wersji studenckiej jako 30-dniowa darmowa wersja.\n",
"\n",
"- **Jupyter Notebook**: Darmowe środowisko webowe wspierające języki Julia, Python i R, do tworzenia interaktywnych notebooków zawierających wykonywalne fragmenty kodu, idealne do przygotowywania zajęć laboratoryjnych.\n",
"\n",
"- **Overleaf**: Chmurowy edytor LaTeX umożliwiający wersjonowanie i współdzielenie dokumentów, kompilujący na bieżąco, powstały z myślą o wspólnym tworzeniu artykułów naukowych.\n",
"\n",
"- **Jira**: Oprogramowanie firmy Atlassian do zarządzania projektami, śledzenia błędów, podziału zadań i współpracy, umożliwiające pracę w metodyce Scrum.\n",
"\n",
"- **GitHub**: Hostingowy serwis internetowy do projektów programistycznych wykorzystujących system kontroli wersji Git, udostępniający darmowy hosting programów open source i prywatnych repozytoriów.\n",
"\n",
"- **Środowiska programistyczne**: MS Visual Studio, Visual Studio Code, Python IDLE, NetBeans, Eclipse, PyCharm, Notepad++ narzędzia do programowania wspierające różne języki i technologie.\n",
"\n",
"5. Główne trendy w informatyce w 2024 roku\n",
"\n",
"Współczesna informatyka rozwija się w wielu kierunkach, które znacząco wpływają na różne dziedziny życia. Big Data to jeden z kluczowych obszarów, gdzie przetwarzanie ogromnych i złożonych zbiorów danych pozwala na uzyskanie nowych wniosków w biznesie, zdrowiu, administracji i finansach. Generative AI, która potrafi tworzyć nowe treści takie jak teksty, obrazy czy wideo, również odgrywa znaczącą rolę, choć niesie ze sobą wyzwania związane z wiarygodnością i potencjalnymi zagrożeniami regulacyjnymi. Blockchain, jako zdecentralizowana baza danych, zapewnia bezpieczeństwo i niezmienność zapisów transakcji, co jest szczególnie ważne w systemach finansowych i logistyce. Quantum computing, choć jeszcze w początkowej fazie, obiecuje przełomowe zmiany w obliczeniach dzięki wykorzystaniu zjawisk kwantowych, co może zrewolucjonizować takie obszary jak kryptografia i modelowanie molekularne.\n",
"\n",
"Innym ważnym trendem jest bioinformatyka, łącząca biologię z informatyką, która umożliwia analizę i interpretację ogromnych zbiorów danych biologicznych, wspierając badania genetyczne i rozwój leków. Zdalna służba zdrowia, oparta na technologiach telekomunikacyjnych, pozwala na świadczenie usług medycznych na odległość, co jest szczególnie istotne w przypadku osób z ograniczoną mobilnością. Cyberbezpieczeństwo, jako ochrona przed zagrożeniami cyfrowymi, zyskuje na znaczeniu, a systemy autonomiczne i hybrydowe, które łączą autonomię z kontrolą ludzką, są coraz częściej stosowane w przemyśle i obronności. Digital Twins, czyli wirtualne kopie fizycznych obiektów, umożliwiają symulację i optymalizację procesów w czasie rzeczywistym, a zarządzanie dezinformacją staje się kluczowym wyzwaniem, w którym wykorzystuje się zaawansowane algorytmy do detekcji i kontroli treści, aby chronić społeczeństwo przed wpływem fake news."
]
},
{
"cell_type": "markdown",
"id": "d512df99",
"metadata": {},
"source": [
"### Zadania do wykonania\n",
"\n",
"1.\t[Wolfram Alpha](https://www.wolframalpha.com/). Policz $\\int_{-\\infty}^{\\infty} e^{-t^2} e^{-i\\omega t} \\, dt$. Wyświetl wykres funkcji pod całką.\n",
"\n",
"2.\tPoszukaj jakie są na UAM ustalenia dotyczące etyki wykorzystania AI w toku studiów. Użyj [chatGPT](https://chatgpt.com) żeby podsumować je w 8 punktach.\n",
"\n",
"3. Znajdź trzy artykuły naukowe dowolnego z prowadzących zajęcia na Twoim kierunku, np. na [Google Scholar](https://scholar.google.com/). Zapisz cytowanie w konwencji APA.\n",
"\n",
"4.\tNarysuj schemat blokowy pokazujący sposób działania algorytmu liczącego silnię w [Creately](https://creately.com) lub [draw.io](https://www.drawio.com/).\n",
"\n",
"5.\tUtwórz pusty notebook w [Jupyter Lab](https://jupyter.wmi.amu.edu.pl). Wrzuć do środka kod w pythonie liczący silnie. Wykonaj go.\n",
"\n",
"6. (*) Znajdź obrazek pokazujący jakiś skomplikowany wzór matematyczny. Poproś chatGPT o jego przepisanie na latex lub markdown.\n"
]
},
{
"cell_type": "markdown",
"id": "d1681bd0",
"metadata": {},
"source": [
"### Przykłady\n",
"\n",
"![image](Obraz1.png)\n",
"\n",
"![image](Obraz2.png)\n",
"\n",
"![image](Obraz3.png)\n",
"\n",
"![image](Obraz5.png)\n",
"\n",
"![image](Obraz6.png)\n"
]
},
{
"cell_type": "markdown",
"id": "89aafae7",
"metadata": {},
"source": [
"### Zadanie domowe\n",
"\n",
"Załóż konto AWS (1 dolar na indentyfikację, zwracają po tygodniu). Uruchom i połącz się z maszyną wirtualną za pomocą aplikacji przeglądarkowej."
]
},
{
"cell_type": "markdown",
"id": "4702d5e7",
"metadata": {},
"source": [
"#### Źródła\n",
"\n",
"1. https://github.com/\n",
"2. https://www.wolframalpha.com/\n",
"3. https://www.mathworks.com/products/matlab-online.html\n",
"4. https://www.programiz.com/python-programming/online-compiler/\n",
"5. https://www.dropbox.com/\n",
"6. https://aws.amazon.com/\n",
"7. https://jupyter.wmi.amu.edu.pl/hub/login\n",
"8. https://www.overleaf.com/\n",
"9. https://creately.com/\n",
"10. https://1lib.pl/\n",
"11. https://office.live.com/start/visio.aspx \n",
"12. https://jira.wmi.amu.edu.pl/ "
]
}
],
"metadata": {
"language_info": {
"name": "python"
}
},
"nbformat": 4,
"nbformat_minor": 5
}