Wrocław, 3.10.2017 Wstęp do informatyki i programowania: Informatyka w życiu matematyka Wydział Matematyki Politechniki Wrocławskiej Andrzej Giniewicz
Dzisiaj na zajęciach... Informatyka w życiu matematyka Kultura i styl programowania Algorytmy i programy Interaktywne dokumenty 1/24
Informatyka w życiu matematyka Informatyka w życiu matematyka 2/24
Dlaczego by nie poprogramować? Cytaty z zasłyszanych rozmów... Informatyka w życiu matematyka 3/24
Dlaczego by nie poprogramować? Cytaty z zasłyszanych rozmów... Wybrałem matematykę a nie informatykę, bo nie chcę programować! Pewien student matematyki. Informatyka w życiu matematyka 3/24
Dlaczego by nie poprogramować? Cytaty z zasłyszanych rozmów... Wybrałem matematykę a nie informatykę, bo nie chcę programować! Pewien student matematyki. Nie będę programować, kobiety nie potrafią programować. Pewna studentka matematyki. Informatyka w życiu matematyka 3/24
Analogia Humanista to człowiek nie znający się na matematyce! Przeciętny kandydat wybierający kierunek studiów. Informatyka w życiu matematyka 4/24
Analogia Humanista to człowiek nie znający się na matematyce! Przeciętny kandydat wybierający kierunek studiów. A może zamiast przeciętnemu studentowi uwierzyć znanemu matematykowi? Ze wszystkich nauk humanistycznych matematyka jest najbardziej humanistyczna. Hans Freudental Informatyka w życiu matematyka 4/24
Informatyka i matematyka! Informatyka i matematyka to siostry. Informatyka w życiu matematyka 5/24
Informatyka i matematyka! Informatyka i matematyka to siostry. Charles Babbage i Ada Lovelace. Informatyka w życiu matematyka 5/24
Informatyka i matematyka! Informatyka i matematyka to siostry. Charles Babbage i Ada Lovelace. Nie jest takie męskie zajęcie. Informatyka w życiu matematyka 5/24
Informatyka i matematyka! Informatyka i matematyka to siostry. Charles Babbage i Ada Lovelace. Nie jest takie męskie zajęcie. Ponad 100 lat potem... Informatyka w życiu matematyka 5/24
Silnik analityczny Informatyka w życiu matematyka 6/24
Podobieństwa Język programowania Symbole matematyczne Program Dowód Wynik działania programu Obliczenia Programowanie Rozwiązywanie zadania... Informatyka w życiu matematyka 7/24
Programowanie = narzędzie pracy Programowanie jest dziś narzędziem pracy matematyka. Informatyka w życiu matematyka 8/24
Dla każdego matematyka! Teoretycy, Nauczyciele i wykładowcy, Aktuariusze i statystycy, Programiści, Doradcy i analitycy biznesowi, Biomatematycy, Kryptografowie. Informatyka w życiu matematyka 9/24
Kultura i styl programowania Kultura i styl programowania 10/24
Ogólne zasady 1. Zacznij na kartce, najlepiej od rysunku. Kultura i styl programowania 11/24
Ogólne zasady 1. Zacznij na kartce, najlepiej od rysunku. 2. Myśl o książce kucharskiej... Kultura i styl programowania 11/24
Ogólne zasady 1. Zacznij na kartce, najlepiej od rysunku. 2. Myśl o książce kucharskiej... 3. Dbaj o swoje zdrowie fizyczne i psychiczne (BHP)! Kultura i styl programowania 11/24
Ogólne zasady 1. Zacznij na kartce, najlepiej od rysunku. 2. Myśl o książce kucharskiej... 3. Dbaj o swoje zdrowie fizyczne i psychiczne (BHP)! 4. Rób przerwy, ale tylko zaplanowane. Kultura i styl programowania 11/24
Ogólne zasady 1. Zacznij na kartce, najlepiej od rysunku. 2. Myśl o książce kucharskiej... 3. Dbaj o swoje zdrowie fizyczne i psychiczne (BHP)! 4. Rób przerwy, ale tylko zaplanowane. 5. Pamiętaj, że kod jest więcej razy czytany, niż pisany. Kultura i styl programowania 11/24
Ogólne zasady 1. Zacznij na kartce, najlepiej od rysunku. 2. Myśl o książce kucharskiej... 3. Dbaj o swoje zdrowie fizyczne i psychiczne (BHP)! 4. Rób przerwy, ale tylko zaplanowane. 5. Pamiętaj, że kod jest więcej razy czytany, niż pisany. 6. Zrób coś co działa, dopiero potem myśl nad wydajnością. Kultura i styl programowania 11/24
Ogólne zasady 1. Zacznij na kartce, najlepiej od rysunku. 2. Myśl o książce kucharskiej... 3. Dbaj o swoje zdrowie fizyczne i psychiczne (BHP)! 4. Rób przerwy, ale tylko zaplanowane. 5. Pamiętaj, że kod jest więcej razy czytany, niż pisany. 6. Zrób coś co działa, dopiero potem myśl nad wydajnością. 7. Nie pozwól sobie na zostawanie w tyle. Kultura i styl programowania 11/24
Ogólne zasady 1. Zacznij na kartce, najlepiej od rysunku. 2. Myśl o książce kucharskiej... 3. Dbaj o swoje zdrowie fizyczne i psychiczne (BHP)! 4. Rób przerwy, ale tylko zaplanowane. 5. Pamiętaj, że kod jest więcej razy czytany, niż pisany. 6. Zrób coś co działa, dopiero potem myśl nad wydajnością. 7. Nie pozwól sobie na zostawanie w tyle. 8. Nie wiesz poszukaj w literaturze. Kultura i styl programowania 11/24
Ogólne zasady 1. Zacznij na kartce, najlepiej od rysunku. 2. Myśl o książce kucharskiej... 3. Dbaj o swoje zdrowie fizyczne i psychiczne (BHP)! 4. Rób przerwy, ale tylko zaplanowane. 5. Pamiętaj, że kod jest więcej razy czytany, niż pisany. 6. Zrób coś co działa, dopiero potem myśl nad wydajnością. 7. Nie pozwól sobie na zostawanie w tyle. 8. Nie wiesz poszukaj w literaturze. 9. Nie znalazłeś odpowiedzi zapytaj! Kultura i styl programowania 11/24
Ogólne zasady 1. Zacznij na kartce, najlepiej od rysunku. 2. Myśl o książce kucharskiej... 3. Dbaj o swoje zdrowie fizyczne i psychiczne (BHP)! 4. Rób przerwy, ale tylko zaplanowane. 5. Pamiętaj, że kod jest więcej razy czytany, niż pisany. 6. Zrób coś co działa, dopiero potem myśl nad wydajnością. 7. Nie pozwól sobie na zostawanie w tyle. 8. Nie wiesz poszukaj w literaturze. 9. Nie znalazłeś odpowiedzi zapytaj! 10. Nigdy nie korzystaj z gotowców. To nie szkoła nie musisz tu być, jesteś tu po to, by się czegoś nauczyć w pracy nie będzie od kogo ściągnąć! Kultura i styl programowania 11/24
The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren t special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you re Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it s a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let s do more of those! Kultura i styl programowania 12/24
Zen programowania? import this Kultura i styl programowania 13/24
Zen programowania? import this Inspiracja: Goeffrey James, The Tao of Programming, InfoBooks 1987. Goeffrey James, The Zen of Programming, InfoBooks 1988. Goeffrey James, Computer Parables: Enlightenment in the Information Age, InfoBooks 1989. Kultura i styl programowania 13/24
Podsumowanie stylu Pisz takie programy, które sam zrozumiesz za rok. Kultura i styl programowania 14/24
Podsumowanie stylu Pisz takie programy, które sam zrozumiesz za rok. Nie oszczędzaj na spacjach. Dodawaj komentarze. Wymyślaj dobre nazwy zmiennych (nie a, b1, xyz tylko suma, adres, Punkt). Kultura i styl programowania 14/24
Algorytmy i programy Algorytmy i programy 15/24
Algorytm a program Algorytm to opis dla człowieka, program dla komputera. Algorytmy i programy 16/24
Sposoby zapisu algorytmów: pseudokod algorytm maksimum(l: lista liczb całkowitych) wynik: liczba M M = minus nieskończoność dla każdego li należącego do L: jeżeli li > M: M = li Algorytmy i programy 17/24
Sposoby zapisu algorytmów: UML Algorytmy i programy 18/24
Interaktywne dokumenty Interaktywne dokumenty 19/24
Literate programming Literate programming, czyli programowanie piśmienne. Interaktywne dokumenty 20/24
Środowiska do pracy Edytory. Interaktywne dokumenty 21/24
Środowiska do pracy Edytory. IDE. Interaktywne dokumenty 21/24
Środowiska do pracy Edytory. IDE. REPL. Interaktywne dokumenty 21/24
Środowiska do pracy Edytory. IDE. REPL. Notebook. Interaktywne dokumenty 21/24
Środowisko na ten kurs Jupyter Notebook + Python. Interaktywne dokumenty 22/24
W następnym odcinku Zaczniemy się uczyć programowania. Interaktywne dokumenty 23/24
W następnym odcinku Zaczniemy się uczyć programowania. W tym czasie proszę zainstalować Pythona na komputerach osobistych (stacjonarnych, laptopach, etc). Interaktywne dokumenty 23/24
Pytania? Pytania? 24/24