15 KiB
Wstęp do informatyki
Joanna Siwek
Laboratoria 1. informatyka – wprowadzenie i podstawowe pojęcia
Wykład w pigułce
- 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.
- 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.
- 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.
- 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.
- 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
Wolfram Alpha. Policz $\int_{-\infty}^{\infty} e^{-t^2} e^{-i\omega t} , dt$. Wyświetl wykres funkcji pod całką.
Poszukaj jakie są na UAM ustalenia dotyczące etyki wykorzystania AI w toku studiów. Użyj chatGPT żeby podsumować je w 8 punktach.
Znajdź trzy artykuły naukowe dowolnego z prowadzących zajęcia na Twoim kierunku, np. na Google Scholar. Zapisz cytowanie w konwencji APA.
Narysuj schemat blokowy pokazujący sposób działania algorytmu liczącego silnię w Creately lub draw.io.
Utwórz pusty notebook w Jupyter Lab. Wrzuć do środka kod w pythonie liczący silnie. Wykonaj go.
(*) Znajdź obrazek pokazujący jakiś skomplikowany wzór matematyczny. Poproś chatGPT o jego przepisanie na latex lub markdown.
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.
Źródła
- https://github.com/
- https://www.wolframalpha.com/
- https://www.mathworks.com/products/matlab-online.html
- https://www.programiz.com/python-programming/online-compiler/
- https://www.dropbox.com/
- https://aws.amazon.com/
- https://jupyter.wmi.amu.edu.pl/hub/login
- https://www.overleaf.com/
- https://creately.com/
- https://1lib.pl/
- https://office.live.com/start/visio.aspx
- https://jira.wmi.amu.edu.pl/