Algorytmy i struktury danych

Podobne dokumenty
Algorytmy i struktury danych

Algorytmy i struktury danych

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

Architektura komputerów II - opis przedmiotu

Informatyka - studium realizacji dźwięku -

Wstęp do Informatyki dla bioinformatyków

PRZEWODNIK PO PRZEDMIOCIE

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

PRZEWODNIK PO PRZEDMIOCIE

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

INFORMATYKA, TECHNOLOGIA INFORMACYJNA ORAZ INFORMATYKA W LOGISTYCE

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

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

PRZEWODNIK PO PRZEDMIOCIE

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

Podstawy programowania. Wprowadzenie

PRZEWODNIK PO PRZEDMIOCIE

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

PRZEWODNIK PO PRZEDMIOCIE

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

INFORMATYKA PLAN STUDIÓW NIESTACJONARNYCH. Podstawy programowania Systemy operacyjne

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

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

Algorytmy, reprezentacja algorytmów.

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

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

Algorytmy i struktury danych

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

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

Wykład Ćwiczenia Laboratorium Projekt Seminarium

Wyższa Szkoła Technologii Teleinformatycznych w Świdnicy. Dokumentacja specjalności. Grafika komputerowa

PRZEWODNIK PO PRZEDMIOCIE

Programowanie Niskopoziomowe

Technologie informacyjne - wykład 12 -

PRZEWODNIK PO PRZEDMIOCIE

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

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

Wyższa Szkoła Technologii Teleinformatycznych w Świdnicy. Dokumentacja specjalności. Informatyka w działalności biznesowej

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

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

PRZEWODNIK PO PRZEDMIOCIE

KARTA KURSU (realizowanego w module specjalności)

Wyższa Szkoła Technologii Teleinformatycznych w Świdnicy. Dokumentacja specjalności. Grafika komputerowa

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

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

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

PRZEWODNIK PO PRZEDMIOCIE

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

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

Opis. Brak. Liczba godzin zajęć dydaktycznych z podziałem na formy prowadzenia zajęć

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

PRZEWODNIK PO PRZEDMIOCIE

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

PRZEWODNIK PO PRZEDMIOCIE

KARTA PRZEDMIOTU. Egzamin / zaliczenie. Egzamin / zaliczenie. ocenę*

Systemy operacyjne i sieci komputerowe Szymon Wilk Superkomputery 1

PRYWATNA WYŻSZA SZKOŁA BUSINESSU, ADMINISTRACJI I TECHNIK KOMPUTEROWYCH S Y L A B U S

PRZEWODNIK PO PRZEDMIOCIE

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.

Architektura komputerów

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

PRZEWODNIK PO PRZEDMIOCIE

Architektura komputerów Reprezentacja liczb. Kodowanie rozkazów.

Elektrotechnika II Stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

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

Programowanie obiektowe 1 - opis przedmiotu

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

Nowoczesne projektowanie aplikacji intrnetowych - opis przedmiotu

LEKCJA TEMAT: Współczesne procesory.

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

PRZEWODNIK PO PRZEDMIOCIE

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

Podstawy programowania w Pythonie

elektrotechnika I stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny) Kierunkowy (podstawowy / kierunkowy / inny HES)

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

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

Budowa Mikrokomputera

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

Architektura systemów komputerowych

PRZEWODNIK PO PRZEDMIOCIE

Wstęp do programowania

NAZWA PRZEDMIOTU/MODUŁU KSZTAŁCENIA:

Budowa i zasada działania komputera. dr Artur Bartoszewski

Podstawy programowania

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

Specjalnościowy Obowiązkowy Polski Semestr 5

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

Obliczenia Naukowe. O arytmetyce komputerów, Czyli jak nie dać się zaskoczyć. Bartek Wilczyński 29.

Egzamin / zaliczenie na ocenę*

KARTA KURSU. Student zna podstawy analizy, projektowania i programowani obiektowego oraz podstawy języka C++.

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU

Język programowania PASCAL

Wyższa Szkoła Technologii Teleinformatycznych w Świdnicy. Dokumentacja specjalności. Informatyka w działalności biznesowej

PRZEWODNIK PO PRZEDMIOCIE

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

Sprzęt komputerowy 2. Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Język Java i technologie Web - opis przedmiotu

Informatyczna Wieża Babel, czyli o różnych językach programowania. Informatyczna Wieża Babel, czyli o różnych językach programowania

Transkrypt:

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

Informacje ogólne 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 A Materka & M Kociński, Algorytmy i struktury danych, WEEIA PŁ, Łódź 2017 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 (1 punkt ECTS = 25-30 godz.) Praca własna: 75-90 godzin Język programowania: Python Narzędzia: Środowisko Enthought Canopy 3

Najpopularniejsze języki (GitHub 2011) 4

Najpopularniejsze języki (IEEE Spectrum 2017) https://spectrum.ieee.org/computing/software/the-2017-topprogramming-languages A Materka & M Kociński, Algorytmy i struktury danych, WEEIA PŁ, Łódź 2017 5

www.enthought.com 6

www.enthought.com/products /canopy/ 7

www.enthought.com/products /canopy/ 8

www.enthought.com/products /canopy/ 9

www.enthought.com/products /canopy/ 10

Kto używa języka Python? 11

Kto używa języka Python? 12

Kto używa języka Python? 13

Kto używa języka Python? 14

Python i inne języki 15

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 16

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? 17

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 18

Podstawy komputerów (Arithmetic Logic Unit + Control Unit) = Central Processing Unit (CPU) Arithmethic Logic Unit (ALU) Input devices Tekst Mowa, Muzyka, Obrazy Dane Wideo, Measurements, Control unit Memory Output devices Informacje Tekst Audio, Wideo, Animacje, Wykresy, Tabele, 19

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

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 21

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 22

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

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

Algorytm Procedura obliczeń, krok po kroku Muḥammad ibn Mūsā al-khwārizmī (Persian) 25

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 (np. Java, C, Pascal) 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, uczenia na przykładach). 26

Przykład: Python a asembler Program do wyświetlania komunikatu Hello World Asembler X86 x86-64 Linux, syntaks AT&T.section.rodata string:.ascii "Hello, World!\n\0" length:.quad. -string #Dot = 'here' _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 27

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

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) Programowanie z Pythonem podręcznik stworzony dla studentów I roku neuroinformatyki I fizyki medycznej na Wydziale Fizyki Uniwersytetu Warszawskeigo(http://brain.fuw.edu.pl/edu/TI:Programowanie_z_Pythonem/Wersja _do_druku) I wiele innych książek oraz materiałów szkoleniowych dostępnych w Internecie 29

Ocena końcowa - 5 testów w czasie semestru (75 %) - Aktywność na zajęciach (obecność, prezentacje, programowanie) (25 %) Uczestnicy zajęć są zobowiązani do przynoszenia ich elektronicznych legitymacji studenckich. 30

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

Wykorzystane materiały 1. Python for Scientist and Engineers slajdy szkoleniowe Enthought, Inc. www.enthought.com 2. www.pl.python.org 1. http://pl.python.org/docs/ 2. http://pl.python.org/kursy,jezyka.html 3. http://pl.python.org/wyklady.html 32