Wykład 1. - ii.pwr.edu.plswiatek/pea_w1.pdf · –Środowisko wykonawcze: GNU/Linux (dla...

20
Wykład 1. Projektowanie efektywnych algorytmów przetwarzania danych w sieciowych systemach usług, rzeczy i multimediów. Paweł Świątek

Transcript of Wykład 1. - ii.pwr.edu.plswiatek/pea_w1.pdf · –Środowisko wykonawcze: GNU/Linux (dla...

Wykład 1.

Projektowanie efektywnych algorytmów przetwarzania danych w sieciowych

systemach usług, rzeczy i multimediów.

Paweł Świątek

1. Sprawy organizacyjne

2. Zasady zaliczenia

3. Cele kursu

4. Kilka słów o Laboratorium

5. Podstawy programowania

Agenda

• Konsultacje

– s. 117, b. C-3

– WT 9-11

– SR 11-13

• Materiały:

– www.ii.pwr.wroc.pl/~swiatek

• Kontakt:

[email protected]

Sprawy organizacyjne

• C.H. Cormen, R. Rivest, Wprowadzenie do algorytmów, MIT Press (wydanie najnowsze)

• Kurs Pythona:

https://www.codecademy.com/learn/learn-python

Literatura

• Ocena z wykładu będzie uwzględniać:

– Ocenę z laboratorium

• Ocena z laboratorium będzie uwzględniać:

– Oceny cząstkowe za cotygodniowe zadania

– Postępy

– Obecność

Zasady zaliczenia

• Rozwinięcie umiejętności programistycznych

• Formułowanie i rozwiązywanie problemów

– w szczególności optymalizacyjnych

• Poznanie podstaw działania sieciowych systemów

– usług

– rzeczy

– multimediów

Cele kursu

• Obecność obowiązkowa

– Dozwolona jedna nieusprawiedliwiona nieobecność

– Kolejne mogą skutkować obniżeniem oceny (2 to też ocena)

• Do laboratorium wymagane jest przygotowanie

– W skrajnych przypadkach nieprzygotowanie traktowane będzie jako nieusprawiedliwiona nieobecność

• Nieistotna sugestia: korzystanie z własnego komputera

Laboratorium -- zasady

• Język programowania: Python

– Wersja 3 vs 2

• Środowisko: PyCharm

– Professional 2016.3

• System operacyjny:

– Do pracy: dowolny

– Środowisko wykonawcze: GNU/Linux (dla świętego spokoju Ubuntu 16.04)

Narzędzia

1. Instalacja środowiska

2. Wprowadzenie do języka Python

3. Struktura kodu

4. Podstawowe konstrukcje

5. Programowanie obiektowe

6. Struktury danych

Podstawy programowania

Python dla Windowsnp.: https://www.python.org/downloads/release/python-279/

Uwaga: „Entire feature will be installed on local hard drive”

Dodatkowe pakiety (z prawami administratora)W przypadku Windows najpierw:Kompilator C++ dla Pythonhttp://www.microsoft.com/en-us/download/details.aspx?id=44266

Potem:

pip install <nazwa_pakietu>

np.

pip install pyxb

PyCharmhttps://www.jetbrains.com/pycharm/download/

Instalacja środowiska

• Język wysokiego poziomu

• Obiektowy

• Z dynamicznym systemem typów

• Automatycznie zarządza pamięcią

• Wieloplatformowy

• Interpretowalny

Wprowadzenie do języka Python

Struktura kodu

Podstawowe konstrukcje

Każdy obiekt w systemie służy jako modelabstrakcyjnego "wykonawcy", który może wykonywaćpracę, opisywać i zmieniać swój stan oraz komunikowaćsię z innymi obiektami w systemie bez ujawniania, w jakisposób zaimplementowano dane cechy. Procesy, funkcjelub metody mogą być również abstrahowane, a kiedy taksię dzieje, konieczne są rozmaite techniki rozszerzaniaabstrakcji.

Programowanie obiektowe – Abstrakcja

Czyli ukrywanie implementacji, enkapsulacja. Zapewnia,że obiekt nie może zmieniać stanu wewnętrznego innychobiektów w nieoczekiwany sposób. Tylko własne metodyobiektu są uprawnione do zmiany jego stanu. Każdy typobiektu prezentuje innym obiektom swój interfejs, któryokreśla dopuszczalne metody współpracy.

Programowanie obiektowe – Hermetyzacja

Referencje i kolekcje obiektów mogą dotyczyć obiektówróżnego typu, a wywołanie metody dla referencjispowoduje zachowanie odpowiednie dla pełnego typuobiektu wywoływanego. Jeśli dzieje się to w czasiedziałania programu, to nazywa się to późnym wiązaniemlub wiązaniem dynamicznym.

Co to jest referencja?

Programowanie obiektowe – Polimorfizm

Porządkuje i wspomaga polimorfizm i enkapsulację dziękiumożliwieniu definiowania i tworzenia specjalizowanychobiektów na podstawie bardziej ogólnych. Dla obiektówspecjalizowanych nie trzeba redefiniować całejfunkcjonalności, lecz tylko tę, której nie ma obiektogólniejszy. W typowym przypadku powstają grupyobiektów zwane klasami, oraz grupy klas zwanedrzewami. Odzwierciedlają one wspólne cechy obiektów.

Programowanie obiektowe – Dziedziczenie

programowanie_obiektowe.py

Programowanie obiektowe

Zmienne

Listy

Krotki

Słowniki

struktury_danych.py

Struktury danych

Dziękuję za uwagę