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

603 KiB
Raw Blame History

Wstęp do informatyki

Joanna Siwek

Wykład 1. informatyka wprowadzenie i podstawowe pojęcia

Celem przedmiotu jest uzupełnienie, ustandaryzowanie oraz przypomnienie podstawowej wiedzy potrzebnej do zrozumienia treści programowych na kierunku informatyka. Przedmiot składa się z części wykładowej i laboratoryjnej. Wszystkie materiały są dostępne na platformie Moodle i w repozytorium Git. Nie ma możliwości zaliczenia przedmiotu na podstawie innej niż egzamin lub uznanie oceny z przedmiotu o zbliżonym programie. Cykl wykładów zakończony będzie egzaminem pisemnym, stacjonarnym. Na końcu każdego wykładu podane są pytania egzaminacyjne. Egzamin polega na odpowiedzi pisemnej na 5 z puli wszystkich podanych pytań. Zaliczenie egzaminu od 50% punktów.

Treści przedmiotowe

  1. Przedmiot informatyki i jej historia. Kierunki współczesnej informatyki. Etyka pracy informatyka.
  2. ALgebry Boole'a i systemy pozycyjne.
  3. Architektura i działanie komputera. Maszyna Turinga. Bramki logiczne. Procesor.
  4. Kodowanie i przechowywanie danych. Reprezentacja liczb w pamięci komputera. Reprezentacja danych graficznych. Błędy.
  5. Kompresja danych i teoria informacji. Entropia informacyjna źródła. Kod zwarty. Algorytm Huffmanna.
  6. Format XML. XML Schema.
  7. JSON, YAML, HTML, CSV, CSS
  8. Repozytoria kodu i Git
  9. Markdown, Jupyter i Quarto
  10. Edycja i prezentacja wiedzy z nauk ścisłych za pomocą LaTeX i Overleaf. Beamer.
  11. Nowoczesne usługi internetu i rozwiązania chmurowe. Podstawowe informacje o Big Data, uczeniu maszynowym i uczeniu głębokim.
  12. Sieci komputerowe i protokoły sieciowe. Topologie sieci. Routiong. Internet. DNS.
  13. Metody algorytmiczne i pojęcie algorytmu. Złożoność obliczeniowa algorytmu.
  14. Bezpieczeństwo danych i kryptografia. Podstawowe pojęcia. Szyfrowanie symetryczne i asymetryczne. RSA. GPG. Blockchain. Kryptowaluty.

Zalecana literatura:

  1. Władysław Marek Turski: Propedeutyka informatyki.
  2. David Harel: Rzecz o istocie informatyki. Algorytmika.
  3. Janusz Biernat: Architektura komputerów.
  4. Scott Chacon and Ben Straub: ProGit, https://git-scm.com/book/en/v2

Informatyka - Wprowadzenie i Podstawowe pojęcia

Spis treści

  1. Co to jest informatyka?
  2. Krótka historia informatyki
  3. Kierunki współczesnej informatyki
  4. Etyka pracy informatyka
  5. Narzędzia wsparcia pracy informatyka
  6. Jak szukać arytkułów naukowych?

Co to jest informatyka?

Istnieje wiele definicji "informatyki", które zwracają uwagę na różne jej aspekty, ze względu na szerokość zainteresowań dziedziny. Poniżej podajemy kilka definicji:

Definicja 1.1 (Instytut Technologii New Jersey)

Informatyka to nauka o informacji: jej strukturze, reprezentacji i wykorzystaniu. Obejmuje ona teorię, analizę, projektowanie, efektywność, implementację oraz zastosowanie programów komputerowych (oprogramowania) i sprzętu komputerowego (hardware'u) do opracowywania skomputeryzowanych systemów przetwarzania informacji w odpowiedzi na potrzeby użytkowników.


Definicja 1.2 (Wydział Informatyki, College of Saint Benedict, Uniwersytet Świętego Jana)

Informatyka to nauka o obliczeniach. Obliczenia, które badamy, rzadko są arytmetyczne - często są bardziej symboliczne. Możemy zapytać, jak obliczyć dobry ruch w szachach lub możemy zapytać, jak narysować obraz trójwymiarowej sceny. Jako informatycy szukamy modeli obliczeń. I pytamy, co możemy - lub czego nie możemy - zrobić z tymi modelami.

Informatycy uczą się programować komputery, ponieważ program jest doskonałym sposobem precyzyjnego opisu konkretnej techniki obliczeniowej. Studiujemy również programowanie jako zawód, ponieważ jest to ważna praca we współczesnym społeczeństwie.


Definicja 1.3 (The Joint Task Force for Computing Curricula 2005, Computing Curricula 2005)

Ogólnie rzecz biorąc, możemy zdefiniować informatykę (computing) jako jakąkolwiek zorientowaną na cel działalność wymagającą, korzystającą z lub tworzącą maszyny obliczeniowe. W związku z tym informatyka obejmuje projektowanie i budowanie systemów sprzętu i oprogramowania do szerokiego zakresu celów; przetwarzanie, strukturyzację i zarządzanie różnymi rodzajami informacji; obliczeniowe badania naukowe; sprawianie, by systemy komputerowe zachowywały się inteligentnie; (...) Lista jest praktycznie nieskończona, a możliwości są ogromne.


Definicja 1.4 (A. Nowakowski 1999, s. 15-16)

Dyscyplina nauki zaliczana do nauk ścisłych, zajmująca się teorią oraz praktyką przetwarzania informacji przy użyciu komputerów we wszystkich dziedzinach ludzkiej działalności. Przetwarzanie informacji oznacza proces zbierania, przechowywania, przekształcania, wyszukiwania, przesyłania oraz udostępniania informacji w celu zapewnienia sprawnego i celowego działania konkretnego systemu.


Definicja 1.5 (S. Węgrzyn 2010, s. 1)

Informatyka odgrywa podstawową rolę w zainspirowanym przez nią tworzeniu i rozwoju współczesnych komputerów elektronicznych, ich urządzeń zewnętrznych oraz sieci i systemów realizacji procesów obliczeniowych. Stanowi dziś jedną z podstawowych dyscyplin naukowych, które kształtują w istotny sposób kierunki rozwoju nauki jako ogółu.

Słowo informatyka do języka polskiego wprowadzone zostało w Zakopanem w październiku 1968. Odbywała się wówczas konferencja "Naukowe problemy maszyn matematycznych”, na której Romuald Marczyński wygłosił referat noszący tytuł "Informatyka, czyli maszyny matematyczne i przetwarzanie informacji” (J. Zawiła-Niedźwiecki 2010, s. 15) .

Obszary zainteresowania informatyki

Możemy wyróżnić następujące obszary zainteresowania informatyki:

  1. Informatyka teoretyczna
  • Algorytmika. Algorytmy i struktury danych
  • Teoria obliczeń. Języki, automaty, złożoność
  • Teoria informacji i kodowania
  • Informatyka kwantowa
  • Teoria języków programowania, typów, kompilacji
  1. Inżynieria komputerowa
  • Logika obliczeniowa i technika cyfrowa
  • Architektura i organizacja komputerów
  • Przetwarzanie równoległe i rozproszone
  • Programowanie niskopoziomowe
  • Sieci komputerowe
  • Systemy operacyjne
  1. Informatyka praktyczna
  • Grafika komputerowa
  • Inżynieria oprogramowania
  • Cyberbezpieczeństwo i kryptologia
  • Bazy danych, eksploracja danych, danologia
  1. Systemy i technologie komputerowe
  • Sztuczna inteligencja
  • Systemy wbudowane i obliczenia czasu rzeczywistego
  • Widzenie komputerowe i rozpoznawanie wzorców
  • Przetwarzanie obrazów i mowy
  • Gry komputerowe i symulatory
  • Interfejsy i interakcje człowiek-komputer
  • Technologie webowe, mobilne i multimedia
  1. Informatyka stosowana
  • Bioinformatyka
  • Chemioinformatyka
  • Neuroinformatyka
  • Socjoinformatyka
  • Geoinformatyka
  • Informatyka śledcza
  • Mechainformatyka
  • Informatyka medyczna
  • Informatyka materiałowa
  • Informatyka przemysłowa
  • Informatyka ekonomiczna
  • Informatyka afektywna Przedmiotem informatyki jest informacja. Informatyka jest nauką o przechowywaniu, przesyłaniu i przetwarzaniu informacji. Czym jest informacja?
Definicja 1.6 Informacja
  1. łac. Informatio - wyobrażenie, wyjaśnienie, zawiadomienie [Encyklopedia PWN]
  2. właściwość pewnych obiektów [Klemens Szaniawski, hasło Informacja w: Filozofia a nauka, 1987, s. 244.]
  3. relacja między elementami zbiorów pewnych obiektów, której istotą jest zmniejszanie niepewności (nieokreśloności) [Grzegorz Lissowski, hasło Informacja, w: Wielka Encyklopedia Powszechna, 2002, s. 126.]

W języku polskim mamy termin informatyka, który najczęściej na język angielski tłumaczony jest jako „Computer Science”, co sugeruje bardzo bliskie powiązanie informatyki z komputerami. Istnieje jednak także drugi termin „Informatics” - także tłumaczony na język polski jako informatyka. Jaka jest więc różnica pomiędzy Computer Science a Informatics?

Informatyka w sensie Computer Science jest studiowaniem teoretycznych podstaw informacji (powstawania, przepływu, składowania), obliczeń i praktycznych technik pozwalających na ich implementację i wykorzystanie w systemach komputerowych. Często opisywana jest jako studiowanie algorytmicznych procesów wytwarzających, opisujących, przekształcających i składujących informację. Powołując się na Petera Denningaa, zasadnicze pytanie na jakie daje odpowiedź informatyka to: Co można efektywnie zautomatyzować?

Informatyka w sensie Informatics jest studiowaniem systemów pozyskujących, reprezentujących, przetwarzających i wytwarzających informację, włączając w to wszystkie obliczeniowe, kognitywne i społeczne aspekty. Zasadniczym przedmiotem zainteresowania jest przetwarzanie (przekształcanie) informacji czy to przez procesy obliczeniowe czy komunikacyjne, czy to przez organizmy żywe czy urządzenia. W tym sensie informatykę należy postrzegać jako dziedzinę znacznie szerszą niż informatyka w sensie Computer Science. Można powiedzieć, że informatyka (w sensie Informatics) to ogólnie pojęty aspekt pozyskiwania, przetwarzania, składowania itd. informacji w sensie ogólnym.

Pokrewnym terminem jest również IT, czyli technologie informacyjne. Jest to dyscyplina informatyczna i branża na rynku pracy zajmująca się stosowaniem technologii obliczeniowych (oprogramowanie i sprzęt komputerowy) w biznesie, instytucjach państwowych, opiece zdrowotnej, itd. W szerszym znaczeniu obejmuje ona inżynierię oprogramowania, inżynierię komputerową, systemy informacyjne, cyberbezpieczeństwo i danologię. Jest ona także powiązana z sektorem teleinformatycznym.

Informatyka to dyscyplina nauki, której obszarem zainteresowania jest przetwarzanie informacji. Technologia informacyjna (IT) to całokształt zagadnień, sposobów, środków oraz działań dotyczących przetwarzania informacji. Obszarem zainteresowania obu dziedzin jest przetwarzanie informacji.

Krótka historia informatyki

Początki

Około 2600 r. p.n.e. stosowano liczydła zwane abakusami. W IV wieku p.n.e. Euklides w swoim fundamentalnym dziele „Elementy” podał algorytm znajdowania NWD (największego wspólnego dzielnika) dwóch liczb całkowitych dodatnich; dziś przepis ten jest uważany za pierwszy algorytm.

W IX wieku n.e. matematyk perski Muhammed Alchwarizmi (Muhammed ibn Musa al-Chorezmi) około 825 roku n.e. podał reguły dodawania, odejmowania, mnożenia i dzielenia liczb dziesiętnych. Jego nazwisko pisane po łacinie brzmi ALGORISMUS, stąd słowo algorytm.

XVII wiek

W 1623 roku Wilhelm Schickard (1592-1635) zbudował model maszyny czterodziałaniowej wykorzystującej pałeczki Nepera i koła zębate. Między 1642 a 1645 rokiem Blaise Pascal (1623-1662) zbudował sumator (Pascalina).

Około 1700 roku Gottfried Wilhelm Leibnitz (1646-1716) zbudował jedną z pierwszych maszyn wykonujących cztery działania, odkrył na nowo pochodzący z Chin system dwójkowy zapisu liczb.

XIX wiek

W 1833 roku Charles Babbage (1791-1871) zbudował maszynę różnicową służącą do obliczania wybranych wzorów matematycznych; stworzył też plany maszyny analitycznej, która miała być zdolna do realizacji algorytmów, czyli programów zakodowanych przez użytkownika w postaci otworów dziurkowanych w kartach. W latach 1842-1843 Ada Augusta King, hrabina Lovelace (1815-1852), córka lorda Byrona, przetłumaczyła dla Babbage'a rozprawę dotyczącą maszyny analitycznej i dołączyła zbiór uwag na temat metody obliczania liczb Bernoulliego za pomocą tej maszyny; opis ten uznano za pierwowzór programu komputerowego. Przypuszczała, że taka maszyna mogłaby tworzyć grafikę albo komponować muzykę.

W 1887 roku Herman Hollerith (1860-1929) wynalazł maszynę liczącą do mechanicznego opracowywania danych statystycznych, opartą na kartach perforowanych. Jej kolejna wersja była użyta do pomocy w opracowaniu wyników spisu powszechnego w 1890 roku w USA.

XX wiek

W 1936 roku Alan Turing w pracy "On Computable Numbers" podał opis niezwykle prostej teoretycznej maszyny (nazywanej maszyną Turinga), zdolnej do wykonania dowolnych obliczeń matematycznych pod warunkiem, że dają się one przedstawić jako algorytm. I choć zbudowanie takiej maszyny mimo jej prostoty nie jest możliwe, to jest ona dla nas istotna z tego powodu, że żaden istniejący komputer nie ma większej mocy obliczeniowej niż ta prosta maszyna. Eksperyment myślowy z maszyną Turinga pokazuje też bardzo wyraźnie, że obliczenia na współczesnych komputerach to nic innego jak elementarne manipulowanie symbolami. W 1946 roku John von Neumann (1903-1957) stworzył architekturę współczesnego komputera.

W latach 1939-1941 powstał Atanasoff-Berry Computer - maszyna do rozwiązywania układów równań liniowych, pierwszy działający prototyp specjalizowanego komputera, w którym zastosowano lampy elektronowe. Między 1943 a 1945 rokiem powstał ENIAC (Electronic Numerical Integrator And Computer) - kalkulator elektroniczny, wyposażony w 18 000 lamp elektronowych, mający długość 15 m, szerokość 9 m, wagę 30 ton i zdolny do wykonywania 5000 dodawań na sekundę; projektem kierowali J.W. Mauchley i J.P. Eckert. W latach 1949-1951 powstały kolejne komputery: EDSAC w Wielkiej Brytanii i UNIVAC. W 1947 roku wynaleziono tranzystor, a w 1955 roku tranzystory zastąpiły lampy elektronowe.

W latach 1949-1951 w Wielkiej Brytanii powstał komputer EDSAC, jeden z pierwszych komputerów przeznaczonych do ogólnych zastosowań obliczeniowych, oraz UNIVAC, pierwszy komercyjnie dostępny komputer w Stanach Zjednoczonych, który znacząco wpłynął na rozwój informatyki. Kluczowym wynalazkiem tego okresu było odkrycie tranzystora w 1947 roku, które zrewolucjonizowało elektronikę, pozwalając na miniaturyzację i zwiększenie efektywności komputerów. Tranzystory zastąpiły lampy elektronowe w 1955 roku, co oznaczało przełom w budowie komputerów, prowadzący do mniejszego zużycia energii i większej niezawodności.

W 1958 roku wynaleziono układ scalony, który jeszcze bardziej zrewolucjonizował elektronikę, umożliwiając tworzenie bardziej złożonych i kompaktowych urządzeń. Tego samego roku w Polsce zbudowano i uruchomiono pierwszy komputer o nazwie XYZ, co było ważnym krokiem dla polskiej informatyki. W 1964 roku IBM wprowadził na rynek komputery z serii 360, które stały się standardem w przemyśle i były szeroko stosowane przez różne instytucje na całym świecie. W 1971 roku firma Intel zaprezentowała procesor 4004, pierwszy mikroprocesor na świecie, który zawierał 2300 tranzystorów i pracował z zegarem 740 kHz.

Lata 70. to czas intensywnego rozwoju mikrokomputerów. W 1975 roku firma MITS wypuściła na rynek pierwszy mikrokomputer domowy Altair 8800, który stał się inspiracją dla wielu przyszłych inżynierów i programistów. W 1977 roku pojawił się komputer Apple II, który zdobył ogromną popularność i przyczynił się do rozwoju rynku komputerów osobistych. W 1981 roku IBM wprowadził komputer IBM PC, który rozpoczął całą rodzinę istniejących do dziś komputerów osobistych. Był oparty na procesorze 8088 i posiadał 64 kB RAM, stając się podstawą dla rozwoju współczesnych komputerów osobistych.

XXI wiek

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. Komputery kwantowe obiecują niesamowite przyspieszenie w przetwarzaniu danych, co może prowadzić do przełomów w dziedzinach takich jak kryptografia, symulacje molekularne i sztuczna inteligencja.

Rozwój sztucznej inteligencji (AI) i uczenia maszynowego (ML) w XXI wieku zmienia sposób, w jaki komputery są wykorzystywane do rozwiązywania problemów. Algorytmy AI i ML są teraz w stanie analizować ogromne ilości danych, rozpoznawać wzorce i podejmować decyzje z coraz większą precyzją. Technologia ta znajduje zastosowanie w różnych sektorach, od medycyny i finansów po transport i rolnictwo, rewolucjonizując wiele aspektów naszego codziennego życia.

Wraz z rozwojem technologii mobilnych i internetowych, XXI wiek przyniósł również powstanie chmury obliczeniowej. Chmura umożliwia przechowywanie i przetwarzanie danych na serwerach zdalnych, co znacznie zwiększa elastyczność i skalowalność usług. Firmy i użytkownicy indywidualni mogą teraz korzystać z potężnych zasobów obliczeniowych bez konieczności posiadania własnej infrastruktury IT, co sprzyja innowacjom i obniża koszty operacyjne.

Więcej na temat trendów we współczesnej Informatyce znajduje się w nastęnym podrozdziale.

Kierunki współczesnej informatyki

a) Big Data

Są to ogromne i złożone zbiory danych, które przekraczają możliwości tradycyjnych narzędzi w zakresie pozyskiwania, zarządzania i analizy danych. Charakteryzują się dużą objętością, szybkością przetwarzania i różnorodnością. Obejmuje strukturalne i niestrukturalne dane z różnych źródeł, np. mediów społecznościowych. Zastosowanie znajduje w biznesie, marketingu, sektorze zdrowotnym, administracji publicznej, finansach.

b) Generative AI

Sztuczna inteligencja generująca nowy kontent np. tekst, obrazy, wideo. Modele potrafią podsumować i sklasyfikować skomplikowane informacje lub odpowiedzieć na pytania, ponieważ zostały wyuczone wzorców w danych. Tworzą przekonywujące zawartości, ale potykają się z niedoskonałościami. Mogą narazić firmy na zagrożenia regulacyjne, kary lub negatywny odzew użytkownika. Mówi się, że modele są tak dobre, jak dane na których zostały wyuczone.

c) Blockchain

Blockchain to zdecentralizowana rozproszona baza danych, rejestrująca transakcje w sposób transparentny i niezmienny. Struktura ta składa się z bloków zawierających zapisy transakcji, które są połączone w chronologicznym łańcuchu. Dzięki zastosowaniu kryptografii blockchain zapewnia wysoką integralność danych i jest wykorzystywany m.in. w systemach finansowych, logistyce oraz zarządzaniu łańcuchami dostaw.

d) Quantum Computing

Jest to dziedzina zajmująca się budową komputerów kwantowych, które wykorzystują zasady mechaniki kwantowej do przetwarzania informacji. Komputery te mają zdolność do wykonywania obliczeń znacznie szybciej niż klasyczne komputery, co umożliwia rozwiązywanie złożonych problemów, takich jak modelowanie molekularne czy łamanie zaawansowanych szyfrów. Obliczenia kwantowe działają na cząsteczkach subatomowych bardziej niż na ciągach binarnych. Zamiast bitów pracuje na qbitach, które mogą istnieć w więcej niż jednym stanie równocześnie. Jest dużo bardzie zaawansowane obliczeniowo niż obliczenia na standardowych komputerach, ale jest jeszcze w powijakach. Istnieje tylko kilka komputerów kwantowych.

e) Bioinformatyka

Bioinformatyka to dziedzina łącząca biologię z informatyką, zajmująca się analizą i interpretacją danych biologicznych przy użyciu narzędzi informatycznych. Wykorzystuje ona algorytmy i oprogramowanie do przetwarzania dużych zbiorów danych, takich jak sekwencje DNA czy białek. Biologowie poszukują wzorców w swoich danych - bioinformatyka odgrywa kluczową rolę w badaniach genetycznych, rozwoju leków oraz w zrozumieniu procesów biologicznych. Obejmuje rozwój metod obliczeniowych, służących do badania i symulacji struktury, funkcji i ewolucji genów, genomów i białek.

f) Zdalna Służba Zdrowia

Jest to forma świadczenia medycznych usług na odległość za pomocą technologii telekomunikacyjnych. Dzięki telemedycynie pacjenci mogą konsultować się z lekarzami bez potrzeby osobistego spotkania, co jest szczególnie ważne w przypadku osób z ograniczoną mobilnością lub w obszarach o ograniczonym dostępie do opieki zdrowotnej. Telemedycyna umożliwia także monitorowanie pacjentów na odległość oraz zdalne zarządzanie chorobami przewlekłymi, co przyczynia się do poprawy jakości opieki zdrowotnej. Jako zaletę zdalnej służby zdrowia podaje się minimalizację kosztów i docieranie do osób potrzebujących, jako wadę - aspekty etyczne i potencjalne odczłowieczenie pacjenta.

g) Cyberbezpieczeństwo

Jest to szeroko pojęte hasło odnoszące się do ochrony aktywów cyfrowych przed zagrożeniami cybernetycznymi. Obejmuje działania takie jak zapobieganie atakom, wykrywanie zagrożeń, usuwanie skutków, a także zapewnianie prywatności i integralności danych. Cyberbezpieczeństwo ma na celu ochronę systemów, sieci i danych przed nieautoryzowanym dostępem, kradzieżą lub zniszczeniem. Do obrony i ataków w dzisiejszych czasach stosuje się również rozwiązania AI.

h) Systemy autonomiczne i hybrydowe

Systemy autonomiczne są zdolne do samodzielnego podejmowania decyzji bez udziału człowieka, podczas gdy systemy hybrydowe łączą elementy autonomii i ludzkiej kontroli. Przetwarzanie autonomiczne kontroluje się samo oraz odpowiada na otaczające je środowisko - przykładem jest internet rzeczy. Wykorzystywane są w takich dziedzinach jak transport, przemysł, czy obrona, a ich celem jest zwiększenie efektywności, bezpieczeństwa i niezawodności operacji.

i) Digital Twins

To wirtualne kopie fizycznych obiektów lub systemów, które pozwalają na symulację, analizę i optymalizację ich działania w czasie rzeczywistym. Są to zaawansowane modele predykcji, polegające na stworzeniu cyfrowego bliźniaka jakiegoś obiektu (np. kuli ziemskiej). Stosowane są w przemyśle, inżynierii, zarządzaniu danymi, a także w monitoringu i prognozowaniu zachowań fizycznych obiektów. Pozwalają na zrozumienie i optymalizację procesów oraz systemów przed ich rzeczywistym wdrożeniem.

j) Zarządzanie dezinformacją

Deepfakes (teksty, obrazy, głosy) stanowią coraz większe zagrożenie w sferze dezinformacji społeczeństwa. Główne działania walki z dezinformacją obejmują identyfikację dezinformacji, co wiąże się z opracowywaniem algorytmów detekcji oraz analizą kontekstu, a także kontrolę treści w mediach społecznościowych. Ochrona społeczeństwa przed wpływem fake news jest priorytetem, dlatego prewencja i kontrola obejmują filtrowanie treści oraz edukację użytkowników.

Reakcja na dezinformacje jest równie ważna i obejmuje sprostowania oraz usuwanie fałszywych informacji. Wspomniane działania są niezbędne, aby minimalizować negatywny wpływ dezinformacji na społeczeństwo i zapewnić dostęp do wiarygodnych źródeł informacji.

Etyka pracy informatyka

Etyka, wg encyklopedii PWN, to z greckiego „ethos” „traktat o obyczajach”. W potocznym rozumieniu jest to zespół norm moralnych obowiązujących w danym czasie przez pewną zbiorowość społeczną jako punkt odniesienia dla oceny i regulacji postępowania jej członków. Integralną częścią etyki pewnych wartości jest to nauka o moralności i nauka moralności.

Obszar badawczy etyki komputerowej

Walter Maner, tworząc w połowie lat 70. termin "etyka komputerowa", określił tę dyscyplinę jako taką, która bada "problemy etyczne zaostrzone, przekształcone lub stworzone przez technologię komputerową". Deborah Johnson w książce _Computer Ethics zdefiniowała obszar etyki komputerowej jako ten, który bada sposób, w jaki komputery "dostarczają nowych wersji standardowych problemów moralnych i moralnych dylematów, poszerzając stare problemy i zmuszając nas do stosowania znanych norm moralnych na niezbadanych terenach".

James Moor definiuje etykę komputerową jako zajmującą się głównie problemami, w których występuje "brak zasad etycznego postępowania" i "próżnia w sferze reguł" w odniesieniu do kwestii społecznego i etycznego użytkowania technologii informatycznej: "(...) Zgodnie z przedstawioną definicją (rozwiniętą przez Bynuma w 1989 r.) etyka komputerowa "określa i analizuje wpływ technologii informatycznej na wartości społeczne i ludzkie, takie jak zdrowie, bogactwo, praca, szanse, wolność, demokracja, wiedza, prywatność, bezpieczeństwo, samorealizacja itd."

Główne obszary etyki informatycznej to ochrona komputerów (fizyczna i logiczna), własność oprogramowania, odpowiedzialność zawodowa.

Zalecenia właściwych zachowań w informatyce Polskiego Towarzystwa Informatycznego

  1. Informatycy stosując informatykę będącą wiedzą służebną wobec dziedzin jej różnorodnych zastosowań wspierają rozwój tych dziedzin nie przeszkadzając mu.

  2. Zastosowania narzędzi i algorytmów informatyki nie stanowią dla informatyków celu, lecz są środkiem mającym przede wszystkim rozwiązywać z poszanowaniem zasad logiki, praw człowieka, jego środowiska naturalnego, ergonomii, ekonomii, poprawności językowej, norm jakości oraz specyfiki dziedzin szczegółowych przedstawiane problemy informatyczne.

  3. Informatycy stale doskonalą swoją wiedzę, a jednocześnie zawsze przedstawiają swoje kompetencje i doświadczenie zawodowe zgodnie ze stanem faktycznym.

  4. Informatycy wzorowo szanują własność intelektualną i prawa jej ochrony.

  5. Informatycy przestrzegają praw majątkowych do informacji i wiedzy zawartych w systemach informatycznych swojego pracodawcy i klienta.

  6. Informatycy nie podejmują się nieuprawnionego naruszania integralności systemów informatycznych jakichkolwiek podmiotów.

  7. Informatycy prowadzący wolną działalność dydaktyczną prezentując konkretne rozwiązania zawsze starają się przedstawić możliwie szerokie spektrum rozwiązań o analogicznej funkcjonalności oraz przeznaczeniu, jeśli takie istnieją. Analogicznie starają się w tego rodzaju działalności oddzielać własne poglądy w konkretnej sprawie od innych istniejących poglądów.

  8. Informatycy prowadzący działalność naukową lub badawczo-rozwojową zawsze wyraźnie oddzielają wiedzę pewną i już udowodnioną od przyjmowanych przez siebie założeń.

  9. Informatycy zawsze przedstawiają swojemu klientowi pełne i rzetelne informacje o przewidywaniach kosztów oraz przypuszczalnym czasie trwania analizowanego przez siebie projektu lub przedsięwzięcia znajdującego się już w fazie realizacji.

  10. Informatycy podają pełne i rzetelne informacje o przyszłych konsekwencjach technicznych i finansowych wynikających z realizacji projektu.

  11. Informatycy nie podejmują się równocześnie prac u kilku zleceniodawców, jeśli ich interesy mogłyby być ze sobą sprzeczne.

  12. Informatycy unikają jednoczesnego pełnienia w przedsięwzięciach ról wzajemnie opozycyjnych, jak w szczególności zleceniodawcy i zleceniobiorcy, podwykonawcy i kontrolera, programisty i testera.

Zasady etyczne w IT

  • Przyczyniać się do dobra społeczeństwa i człowieka.
  • Unikać szkodzenia innym ludziom.
  • Być uczciwym i godnym zaufania.
  • Działać sprawiedliwie i bez dyskryminacji.
  • Honorować prawa własności, w tym prawa autorskie i patenty.
  • Respektować własność intelektualną.
  • Respektować prywatność innych.
  • Respektować poufność informacji.

Narzędzia wsparcia pracy informatyka

Wolfram Alpha

Wolfram Alpha to narzędzie wykorzystujące inteligencję obliczeniową do formułowania odpowiedzi na pytania zadane w języku naturalnym, wykonywania obliczeń, przedstawiania danych statystycznych oraz rozwiązywania równań. Jest alternatywą dla Matlaba w wykonywaniu jednorazowych, trudnych obliczeń. Przyjmuje zapis w języku naturalnym, matematycznym, LaTeX i innych.

Zastosowania:

  • Obliczenia matematyczne
  • Statystyka
  • Rysowanie wykresów
  • Ekonomiczne narzędzia wsparcia: kalkulatory, kursy walut, kalkulatory kredytów, lokat itp.
  • Chemia, fizyka, biologia
  • Encyklopedia
  • Trivia

draw.io

draw.io to 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.

AWS

Amazon Web Services (AWS) jest największym dostawcą usług chmurowych na świecie. Oferuje setki zintegrowanych usług wspierających optymalizację procesu biznesowego, przechowywanie informacji, moc obliczeniową, łączność, dostęp do aplikacji i wiele innych.

Zastosowania:

  • Hosting stron internetowych
  • Hosting aplikacji / hosting SaaS
  • Udostępnianie multimediów (obraz / wideo)
  • Aplikacje mobilne i społecznościowe
  • Dostarczanie treści i dystrybucja mediów
  • Pamięć masowa, tworzenie kopii zapasowych i odzyskiwanie po awarii
  • Środowiska programistyczne i testowe
  • Academic Computing
  • Wyszukiwarki
  • Sieć społecznościowa

Pięć filarów poprawnie stworzonego frameworka AWS:

  • Doskonałość operacyjna
  • Bezpieczeństwo
  • Niezawodność
  • Wydajność
  • Optymalizacja kosztów

Dropbox

Dropbox to usługa świadczona przez Dropbox, Inc. polegająca na udostępnieniu przestrzeni dyskowej na serwerach tej firmy. Umożliwia wysyłanie, przeglądanie i pobieranie danych przez przeglądarkę internetową lub dedykowaną aplikację zainstalowaną na komputerze. Dropbox jest głównie używany do przechowywania kopii zapasowych i synchronizowania plików między komputerami.

OneDrive

OneDrive to wirtualny dysk Microsoftu, udostępniający 5 GB darmowego miejsca z możliwością rozszerzenia do 100 GB. Posiadacze subskrypcji Microsoft 365 otrzymują dodatkowo 1 TB miejsca na swoje pliki. OneDrive umożliwia przechowywanie i synchronizację plików oraz wspiera przeglądarki Internet Explorer i Mozilla Firefox.

MS Visio

MS Visio to program do łatwego i estetycznego rysowania schematów blokowych, bramek logicznych, diagramów sieci neuronowych, drzew i grafów. Jest dostępny w pakiecie Office 365.

Office 365

Office 365 to 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

Creately to chmurowe narzędzie SaaS do rysowania schematów, diagramów, zestawień, map myśli i innych. Wspiera diagramy UML, schematy blokowe itp. Jest darmowe i łatwe w obsłudze.

Matlab Online

Matlab Online to potężne narzędzie do uczenia maszynowego, algorytmów genetycznych, sieci neuronowych, optymalizacji, statystyki i wielu innych zastosowań. Dostępna jest studencka, 30-dniowa darmowa wersja.

Jupyter Notebook

Projekt Jupyter to 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. Oferuje również Jupyter Lab i JupyterHub.

Overleaf

Overleaf to chmurowy edytor LaTeX umożliwiający wersjonowanie i współdzielenie dokumentów, kompilujący na bieżąco. Powstał z myślą o wspólnym tworzeniu artykułów naukowych.

Jira

Jira to oprogramowanie firmy Atlassian służące do zarządzania projektami, śledzenia błędów, podziału zadań i współpracy. Umożliwia pracę w metodyce Scrum.

GitHub

GitHub to hostingowy serwis internetowy do projektów programistycznych wykorzystujących system kontroli wersji Git. Udostępnia darmowy hosting programów open source i prywatnych repozytoriów.

Środowiska programistyczne

  • MS Visual Studio
  • Visual Studio Code
  • Python IDLE
  • NetBeans
  • Eclipse
  • PyCharm
  • Notepad++

Jak szukać arytkułów naukowych?

Wyszukiwanie

  1. Skorzystaj z intranetu WMI. UAM ma umowę np. z Elsevierem, więc można ściągać stamtąd artykuły
  2. Wejdź na Google Scholar:
  • Jeżeli artykuł jest open access, wystarczy kliknąć na tytuł lub doi i mamy dostęp
  • Jeżeli artykuł nie jest open access i nie możemy go ściągnąć przez intranet, wpisujemy nazwę artykułu w google scholar. Po prawej stronie, przy nazwie, wypisane zostaną wszystkie strony, które oferują bezpośredni, darmowy link do pliku pdf z tym artykułem. Ale niestety może się zdarzyć, że takowych nie ma.
  1. Na np. Research Gate pojawiają się artykuły naukowe w wersjach „draft” można z nich spokojnie korzystać. Służy to właśnie omijaniu płatnego dostępu.

Cytowanie

Cytowanie źródeł w poważniejszych zastosowaniach (np. praca magisterska) wymaga zastosowania jednego z ustalonych formatów cytowania:

image.png

Ręczne zapisanie danych pracy naukowej w odpowiednim stylu jest żmudne i trudne ale np. Google Scholar zrobi to za nas. Wystarczy wpisać tytuł artykułu/pracy w Scholar i pod tytułem kliknąć znaczek cytowania, wybrać odpowiedni styl czy składnie też bibtex:

image-2.png

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.

Pytania egzaminacyjne

  1. Opisz pojęcie informatyki (w dowolnym ujęciu).
  2. Czym się różni „Informatics” i „Computer Science”?
  3. Co to są technologie informacyjne?
  4. Opisz podstawowe zasady etyczne pracy informatyka
  5. Podsumuj wiodące trendy w dziedzinie informatyki