Algorytmy i struktury danych

Podobne dokumenty
Algorytmy i struktury danych

Algorytmy i struktury danych

Wstęp do Informatyki dla bioinformatyków

INFORMATYKA PLAN STUDIÓW NIESTACJONARNYCH. Podstawy programowania Systemy operacyjne

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów

INFORMATYKA P L AN S T U DIÓW ST AC J O N AR N Y C H ( W UKŁAD Z I E S EMESTR AL N Y M ) Podstawy programowania

INFORMATYKA PLAN STUDIÓW NIESTACJONARNYCH (W UKŁADZIE ROCZNYM) STUDIA ROZPOCZYNAJĄCE SIĘ W ROKU AKADEMICKIM

Architektura komputerów II - opis przedmiotu

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

Informatyka - studium realizacji dźwięku -

Algorytmy, reprezentacja algorytmów.

PRZEWODNIK PO PRZEDMIOCIE

Repetytorium z matematyki 3,0 1,0 3,0 3,0. Analiza matematyczna 1 4,0 2,0 4,0 2,0. Analiza matematyczna 2 6,0 2,0 6,0 2,0

INFORMATYKA. PLAN STUDIÓW STACJONARNYCH I-go STOPNIA (W UKŁADZIE SEMESTRALNYM) STUDIA ROZPOCZYNAJĄCE SIĘ W ROKU AKADEMICKIM

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej.

Technologie informacyjne - wykład 12 -

Kierunek: Informatyka Stosowana Poziom studiów: Studia I stopnia Forma studiów: Stacjonarne. audytoryjne. Wykład Ćwiczenia

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

Budowa komputera. Magistrala. Procesor Pamięć Układy I/O

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

Wstęp do współczesnej inżynierii EKS i komputery sterowane myślami. Andrzej Materka, listopad 2010

Opis efektów kształcenia dla modułu zajęć

INFORMATYKA. PLAN STUDIÓW STACJONARNYCH INŻYNIERSKICH 1-go STOPNIA STUDIA ROZPOCZYNAJĄCE SIĘ W ROKU AKADEMICKIM 2019/2020.

Uniwersytet w Białymstoku Wydział Ekonomiczno-Informatyczny w Wilnie SYLLABUS na rok akademicki 2010/2011

WSKAŹNIKI ILOŚCIOWE - Punkty ECTS w ramach zajęć: Efekty kształcenia. Wiedza Umiejętności Kompetencje społeczne (symbole) MK_1. Analiza matematyczna

PRZEWODNIK PO PRZEDMIOCIE

Współczesna problematyka klasyfikacji Informatyki

Komputer i urządzenia z nim współpracujące.

INFORMATYKA. PLAN STUDIÓW NIESTACJONARNYCH 1-go STOPNIA STUDIA ROZPOCZYNAJĄCE SIĘ W ROKU AKADEMICKIM 2016/17. zajęć w grupach A K L S P

Logiczny model komputera i działanie procesora. Część 1.

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Kierunek: Informatyka Stosowana Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne. audytoryjne. Wykład Ćwiczenia

Podstawy programowania. Wprowadzenie

Kierunek: Informatyka Poziom studiów: Studia I stopnia Forma studiów: Stacjonarne. audytoryjne. Wykład Ćwiczenia

Informatyka- wykład. Podstawy programowania w Pythonie. dr Marcin Ziółkowski

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Podstawy i języki programowania

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 26 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 28

WSTĘP DO INFORMATYKI. SYLABUS A. Informacje ogólne

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

INFORMATYKA. PLAN STUDIÓW STACJONARNYCH INŻYNIERSKICH 1-go STOPNIA STUDIA ROZPOCZYNAJĄCE SIĘ W ROKU AKADEMICKIM 2018/19.

Systemy Wbudowane. Założenia i cele przedmiotu: Określenie przedmiotów wprowadzających wraz z wymaganiami wstępnymi: Opis form zajęć

Wstęp do programowania INP001213Wcl rok akademicki 2017/18 semestr zimowy. Wykład 1. Karol Tarnowski A-1 p.

Język programowania PASCAL

Kierunek: Inżynieria i Analiza Danych Poziom studiów: Studia I stopnia Forma studiów: Stacjonarne. audytoryjne. Wykład Ćwiczenia

I rok. semestr 1 semestr 2 15 tyg. 15 tyg. Razem ECTS. laborat. semin. ECTS. konwer. wykł. I rok. w tym. Razem ECTS. laborat. semin. ECTS. konwer.

Rok akademicki: 2014/2015 Kod: CCB s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Wprowadzenie do współczesnej inżynierii. Rozwój komputerów i metod komunikacji człowieka z komputerem

INFORMATYKA. PLAN STUDIÓW STACJONARNYCH 1-go STOPNIA (W UKŁADZIE SEMESTRALNYM) STUDIA ROZPOCZYNAJĄCE SIĘ W ROKU AKADEMICKIM A K L S P

Budowa i zasada działania komputera. dr Artur Bartoszewski

Politechnika Krakowska im. Tadeusza Kościuszki. Karta przedmiotu. obowiązuje studentów rozpoczynających studia w roku akademickim 2018/2019

Podstawy programowania w Pythonie

PRZEWODNIK PO PRZEDMIOCIE

Zaliczenie. Zaliczenie na ocenę Dla grupy kursów zaznaczyć X kurs końcowy (X) Liczba punktów ECTS 3 w tym liczba punktów ECTS

INFORMATYKA. PLAN STUDIÓW NIESTACJONARNYCH INŻYNIERSKICH 1-go STOPNIA STUDIA ROZPOCZYNAJĄCE SIĘ W ROKU AKADEMICKIM 2018/19.

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

KARTA PRZEDMIOTU. 1. NAZWA PRZEDMIOTU: Programowanie obiektowe. 2. KIERUNEK: Matematyka. 3. POZIOM STUDIÓW: I stopnia 4. ROK/ SEMESTR STUDIÓW: II/4

Podstawy programowania

Kierunek: Informatyka Stosowana Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne. audytoryjne. Wykład Ćwiczenia

II. MODUŁY KSZTAŁCENIA

Komputer IBM PC niezależnie od modelu składa się z: Jednostki centralnej czyli właściwego komputera Monitora Klawiatury

INFORMATYKA. PLAN STUDIÓW NIESTACJONARNYCH 1-go STOPNIA STUDIA ROZPOCZYNAJĄCE SIĘ W ROKU AKADEMICKIM 2015/16. zajęć w grupach A K L S P

I. WSTĘP. Przykład 1. Przykład 2. Programowanie czyli tworzenie programów komputerowych (aplikacji komputerowych)

2.8. Algorytmy, schematy, programy

Specyfika projektowania Mariusz Rawski

Technologie cyfrowe. Artur Kalinowski. Zakład Cząstek i Oddziaływań Fundamentalnych Pasteura 5, pokój 4.15

Komputer nie myśli. On tylko wykonuje nasze polecenia. Nauczmy się więc wydawać mu rozkazy

Algorytmy i struktury danych

Wykład Ćwiczenia Laboratorium Projekt Seminarium

Zapisywanie algorytmów w języku programowania

PRZEWODNIK PO PRZEDMIOCIE

5 Moduył do wyboru II *[zobacz opis poniżej] 4 Projektowanie i konfiguracja sieci komputerowych Z

Programowanie komputerów

Field of study: Computational Engineering Study level: First-cycle studies Form and type of study: Full-time studies. Auditorium classes.

Specjalnościowy Obowiązkowy Polski Semestr 5

Języki programowania do zastosowań biomedycznych

Praktyka Programowania

Programowanie I. Wprowadzenie. Proces programowania

Języki i metodyka programowania

Język ludzki kod maszynowy

Budowa Mikrokomputera

PROJEKT WSPÓŁFINANSOWANY ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO OPIS PRZEDMIOTU. Sieci i sterowniki przemysłowe

PRZEWODNIK PO PRZEDMIOCIE

Programowanie obiektowe 1 - opis przedmiotu

1 Wprowadzenie do algorytmiki

Metody optymalizacji soft-procesorów NIOS

KARTA PRZEDMIOTU. 1. NAZWA PRZEDMIOTU: Zespołowy projekt informatyczny. 2. KIERUNEK: Matematyka. 3. POZIOM STUDIÓW: I stopnia

Zał nr 4 do ZW. Dla grupy kursów zaznaczyć kurs końcowy. Liczba punktów ECTS charakterze praktycznym (P)

LEKCJA TEMAT: Współczesne procesory.

Rok akademicki: 2013/2014 Kod: STC s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: -

Architektura komputerów

5 Moduył do wyboru II *[zobacz opis poniżej] 4 Projektowanie i konfiguracja sieci komputerowych Z

Rok akademicki: 2013/2014 Kod: RIA s Punkty ECTS: 3. Poziom studiów: Studia I stopnia Forma i tryb studiów: Stacjonarne

TEST KOŃCOWY DLA KLASY III GIMNAZJUM- POGRAMOWANIE. Szkoła Podstawowa Nr 5. im. Księcia Mazowieckiego Siemowita IV w Gostyninie.

Plan studiów dla kierunku: ELEKTRONIKA I TELEKOMUNIKACJA Załącznik nr 10 Studia stacjonarne inżynierskie Cyfrowe przetwarzanie sygnałów

Field of study: Computer Science Study level: First-cycle studies Form and type of study: Full-time studies. Auditorium classes.

Programowanie w C++ Wykład 1. Katarzyna Grzelak. 25 luty K.Grzelak (Wykład 1) Programowanie w C++ 1 / 38

Wykład I. Podstawowe pojęcia. Studia stacjonarne Pedagogika Budowa i zasada działania komputera

Architektura komputerów

Transkrypt:

Algorytmy i struktury danych Wprowadzenie dla studentów kierunku Inżynieria Biomedyczna Łódź 2018

Wykładowcy Andrzej Materka materka@p.lodz.pl http://www.materka.p.lodz.pl tel.: 42 631 26 27 pokój 217, budynek B9 konsultacje: http://www.materka.p.lodz.pl/dydaktyka.html Marek Kociński marek.kocinski@p.lodz.pl http://www.eletel.p.lodz.pl/kocinski/ tel.: 42 631 26 17 pokój 218, budynek B9 konsultacje w kalendarzu: https://poczta2011.p.lodz.pl/service/user/marek.kocinski@p.lodz.pl/st udenci_2012.html 2

Informacje ogólne Laboratorium: 30 godz. (15 tyg. x 2 godz.) Miejsce: sala 413, budynek B9, Wólczańska 211/215 Punkty: 3 ECTS Praca własna: 75-90 godzin Język programowania: Python Ocena końcowa: - 5 testów w czasie semestru (75%) - aktywność w czasie zajęć (obecność, programowanie, zadania przy tablicy, 25%) 3

Algorytmy i struktury danych? http://www.surgicaltheater.net/ Komputery są coraz mniejsze, tańsze, szybsze, wykonują więcej funkcji i wywierają istotny wpływ na nasze życie. Komputery są wszechobecne. Są wbudowane we wszystkie niemal urządzenia techniczne. Komputery to sprzęt i oprogramowanie (ang. hardware and software). Komputery wymagają programowania. Wykonują obliczenia zgodne z programem. Program to przepis na wykonanie obliczeń (algorytm) oraz liczby (dane) związane z wykonywanym zadaniem. Program komputerowy musi być zapisany w języku zrozumiałym dla komputera. Istnieje kilkadziesiąt różnych sposobów zapisu programów języków programowania. http://fizyka.net.pl/ 4

Najpopularniejsze języki (wg IEEE Spectrum 2018) https://spectrum.ieee.org/computing/software/the-2018-top-programming-languages www mobile general embedded Why popularity of Python is growing? 1) Embedded applications 2) Data analysis, machine learning 5

Najpopularniejsze języki 2018 (wg JaxEnter, GitHub) 6

Kto używa języka Python? Wikipedia Guido van Rossum twórca języka Python 7

Inspiracja: Python jest darmowy, jego kod jest dostępny dla wszystkich (ang. free and open source). Bardzo popularny w badaniach naukowych (bioinformatyka, medycyna, matematyka, ). Standardowy język wprowadzający do programowania na uczelniach wyższych. Wikipedia Bliski języka potocznego łatwy do nauczenia. Umożliwia programowanie obiektowe (dane połączone z procedurami ich przetwarzania: obiekty). Zapewnia dostęp do licznych bezpłatnych bibliotek gotowego oprogramowania. 8

Komputery w medycynie - Systemy informatyczne w ochronie zdrowia - Obrazowanie medyczne (CT, MRI, ) - Ilościowa analiza obrazów - Analiza sygnałów medycznych - Systemy nawigacji chirurgicznej - Stymulatory serca - http://en.wikipedia.org/wiki/artificial_cardiac_pacemaker 9

Komputery w medycynie - Systemy informatyczne w ochronie zdrowia - Obrazowanie medyczne (CT, MRI, ) - Ilościowa analiza obrazów - Analiza sygnałów medycznych - Systemy nawigacji chirurgicznej - Stymulatory serca - http://content.dell.com/us/en/healthcare/healthcare-solutions Embedded systems - Czym jest komputer w tych zastosowaniach? - Jakie funkcje pełni? - Dlaczego używamy komputerów? 10

Architektura komputerów John von Neumann (1903-1957) Zegar 0 1 0 1 0 1 0 1 time Arithmethic Jednostka arytmetycznologiczna (ALU) Logic Unit (ALU) Krótszy okres zegara (większa częstotliwość) szybszy komputer Układy Input wejściowe devices Układy Control sterujące unit Układy Output wyjściowe devices Program Memory Pamięć Cykl pracy - Pobranie instrukcji - Zdekodowanie instrukcji - Pobranie danych - Wykonanie instrukcji - Zapamiętanie wyniku 11

Przetwarzanie danych (Arithmetic Logic Unit + Control Unit) = Central Processing Unit (CPU) Arithmethic Logic Unit (ALU) Tekst Mowa, Muzyka, Obrazy Wideo, Input devices Dane wejściowe Wyniki pomiarów, Control unit Memory Output devices Dane wyjściowe Tekst Audio, Wideo, Animacje, Wykresy, Tabele, 12

Potrzeba programowania Układ wejściowy Dane wejściowe CPU Pamięć Dane wyjściowe Hardware Układ wyjściowy Program (aplikacja) Software Funkcja pełniona przez komputer zależy od programu (software). Sprzęt (hardware) się nie zmienia. Jest to zaleta komputerów cyfrowych (elastyczność funkcjonalna). 13

Podstawowe założenia - Dane są zapisane w postaci liczb binarnych. - Czas wykonania elementarnych instrukcji jest bardzo krótki. - Elementy składowe układów komputera mają bardzo małe rozmiary. Reprezentacja liczb dziesiętna dwójkowa 10 1 8 4 2 1 0 0 1 1 2 1 0 3 1 1 4 1 0 0...... 1 5 1 1 1 1 dekompozycja na proste operacje odporność na zakłócenia 14

Podstawowe operacje na liczbach dwójkowych Reguły dodawania 0 0 1 1 +0 +1 +0 +1 0 1 1 10 6 5: 1 1 0 1 0 1 Kodowanie tekstu! - 00100001 $ - 00100100 A - 01000001 B - 01000010 Z - 01011010 a - 01100001 m - 01101110 1 1 0 0 0 0 + 1 1 0 Możliwość operacji na 1 1 1 1 0 symbolach (tekście) 15

Pamięć komputera Kondensator Okładki A d Pojemność kondensatora C = A d 1 bajt pamięci (8 bitów) 0 0 0 1 1 0 0 1 Izolator Izolator (ε) + + + + + + + + + + + + Q - - - - - - - - - - - - Q = CU Ładunek Pojemność U Napięcie 16 + 8 + 1 = 25 16

System operacyjny (Operating System) Zestaw programów do zarządzania sprzętem (hardware) i do zapewniania usług (services) dla programów aplikayjnych. Przykłady: Microsoft Windows, Apple macos, Android, Linux. 17

Algorytm Procedura obliczeń, krok po kroku Przykład Obliczanie wartości modułu liczby Dane: Wartość dowolnej liczby rzeczywistej x Wynik: Wartość funkcji danej wzorem Schemat blokowy algorytmu Start f x = x Muḥammad ibn Mūsā al-khwārizmī (Pers) Czytaj x Nie Pisz x x < 0 Tak Pisz -x Program w języku Python x = float(input()) if x<0: print(-x) else: print(x) End End 18

Języki programowania Generacje języków 1. Kod maszynowy (100011 00011 01000 ) Adres Mnemonik instrukcji Argumenty 2. Asembler 3. Zbliżone do języków ludzkich, kompilowane lub asemblowane przed wykonaniem (Java, C, Python, ) 4. Języki dziedzinowe (domain-specific) (np. COBOL) 5. Rozwiązywanie problemów przez użycie ograniczeń i warunków zamiast algorytmów napisanych przez programistę (sztuczna inteligencja, uczenie na przykładach). 19

Przykład: Python a asembler Asembler X86 x86-64 Linux, syntaks AT&T.section.rodata string:.ascii "Hello, World!\n\0" length:.quad. -string #Dot = 'here' Program do wyświetlania komunikatu Hello World _start:.section.globl _start movq $4, %rax movq $1, %rbx movq $string, %rcx movq length, %rdx int $0x80 movq %rax, %rbx movq $1, %rax int $0x80.text #Make entry point visible to linker #4=write #1=stdout #Call Operating System #Make program return syscall exit status #1=exit #Call System Again 20

Przykład: Python a asembler Program do wyświetlania komunikatu Hello World Kod w języku Python print( Hello World ) 21

Literatura Head First Programming: A Learner s Guide to Programming Using the Python Language by David Griffiths Head First Python by Paul Barry Python Algorithms: Mastering Basic Algorithms in the Python Language by Magnus Lie Hetland Python. Rozmówki, Brad Dyley Python od Podstaw zespół autorów Zanurkuj w pythonie (http://pl.wikibooks.org/wiki/zanurkuj_w_pythonie) i wiele innych książek oraz materiałów szkoleniowych dostępnych w Internecie! 22

Dobre rady Slajdy prezentowane na zajęciach nie obejmują całej wiedzy potrzebnej do zaliczenia testów. Wiedzę i umiejętności zdobywa się drogą studiów i ćwiczeń. Pomocne jest zapisywanie notatek w czasie zajęć. Warto przeglądać materiały szkoleniowe (ang. tutorials) dotyczące modułów języka Python używanych na zajęciach. 23