WDI_2024_OWKO/Temat 1/WDI_LAB_1_OWKO.ipynb
2024-08-09 17:31:53 +02:00

15 KiB
Raw Blame History

Wstęp do informatyki

Joanna Siwek

Laboratoria 1. informatyka wprowadzenie i podstawowe pojęcia

Wykład w pigułce

  1. Definicja informatyki

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.

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.

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.

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.

  1. Historia informatyki

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.

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.

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.

  1. Etyka w informatyce

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.

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.

  1. Narzędzia wsparcia pracy informatyka
  • 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ń.

  • 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.

  • 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.

  • 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.

  • 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.

  • 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.

  • 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.

  • 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.

  • 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.

  • 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.

  • 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.

  • 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.

  • 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.

  • Ś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.

  1. Główne trendy w informatyce w 2024 roku

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.

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.

Zadania do wykonania

  1. Wolfram Alpha. Policz $\int_{-\infty}^{\infty} e^{-t^2} e^{-i\omega t} , dt$. Wyświetl wykres funkcji pod całką.

  2. Poszukaj jakie są na UAM ustalenia dotyczące etyki wykorzystania AI w toku studiów. Użyj chatGPT żeby podsumować je w 8 punktach.

  3. Znajdź trzy artykuły naukowe dowolnego z prowadzących zajęcia na Twoim kierunku, np. na Google Scholar. Zapisz cytowanie w konwencji APA.

  4. Narysuj schemat blokowy pokazujący sposób działania algorytmu liczącego silnię w Creately lub draw.io.

  5. Utwórz pusty notebook w Jupyter Lab. Wrzuć do środka kod w pythonie liczący silnie. Wykonaj go.

  6. (*) Znajdź obrazek pokazujący jakiś skomplikowany wzór matematyczny. Poproś chatGPT o jego przepisanie na latex lub markdown.

Przykłady

image

image

image

image

image

Zadanie domowe

Załóż konto AWS (1 dolar na indentyfikację, zwracają po tygodniu). Uruchom i połącz się z maszyną wirtualną za pomocą aplikacji przeglądarkowej.