Wstęp do informatyki
Wykład
Wykład 1
Poznajemy się
Algorytmy i struktury danych (ogólne pojęcie algorytmu, sposoby opisu algorytmów [pseudokod - pierwsza wzmianka])
Wykład 2
Algorytmy i struktury danych (sposoby opisu algorytmów: język naturalny, schemat blokowy [zasadniczo na ćwiczeniach], pseudo-kod)
Wykład 3
Algorytmy i struktury danych (struktury danych - do struktur i klas włącznie)
Wykład 4
Algorytmy i struktury danych (struktury danych - po klasach do końca, czyli: stos, kolejka i drzewo; sortowanie drzewem)
Wykład 5
Algorytmy i struktury danych (proces wywoływania funkcji, rola stosu; rekurencja, iteracja)
Wykład 6
Systemy liczbowe (addytywny i pozycyjny system liczbowy)
Materiały:
- Opowieść o systemach liczbowych w formie wykładu (prezentacja) wygłoszonego w ramach Festiwalu nauki w Łodzi w 2018 roku.
- Systemy liczbowe
- Ciekawe systemy liczbowe
Wykład 7.1
Systemy liczbowe (konwersja (2)=>(10), (10)=>(2), (10)=>(X) oraz (X)=>(10))
Materiały:
Wykład 7.2
Systemy liczbowe
(Pozycyjne systemy liczbowe: konwersje pomiędzy systemami o dowolnych podstawach w szczególności o podstawach będącej potęgą liczby 2 (tj. 4, 8 i 16))
Wykład 8.1
Systemy liczbowe
(liczby rzeczywiste)
Wykład 8.2
Reprezentacja danych (ogólnie o reprezentacji danych, liczby całkowite (znak-moduł, uzupełnienie dwójkowe))
Wykład 9
Reprezentacja danych (liczby rzeczywiste (stałoprzecinkowe, zmiennoprzecinkowe))
Wykład 10 Maszyny Turinga - wprowadzenie
- Maszyna Turinga (omawiamy model abstrakcyjnej maszyny - Maszyny Turinga; omawiamy jej ,,elementy składowe'' i ich znaczenie)
Wykład 11 Kontynuacja Maszyny Turinga - omawiamy przykłady
- Maszyna Turinga (omawiamy model abstrakcyjnej maszyny - Maszyny Turinga; podajemy przykłady)
Wykład 12
Wykład 13
Reprezentacja danych (napisy, kodowanie PF1, ASCII, Unicode, UTF)
Na wykładzie omawialiśmy między innymi problem dopełnienia (ang. padding). Niewłaściwe posługiwanie się dopełnieniem może prowadzić do poważnych konsekwencji czego przykładem są
Wykład 14.1
- Praktyczne przykłady kodowania UTF8
Wykład 14.2
Wykład - XX, opracowanie samodzielne
- Reprezentacja danych (inne rodzaje danych)
Dodatkowe materiały
- BNF
- Nieporozumienia komunikacyjne
- Gry wspomagające naukę programowania
- Gynvael Coldwind, Zrozumieć programowanie, Wydawnictwo Naukowe PWN, Warszawa, 2015
- Jacek Tomasiewicz, Zaprzyjaźnij się z algorytmami, Wydawnictwo Naukowe PWN, Warszawa, 2016
- Stanford University, Computer Science 101 Course
- Emoji Sequences, v5.0
- Emoji List, v5.0
- The Python Tutorial
- Cargo cult programming
- Kulty kargo
- Symulator Maszyny Turinga
- Symulator Maszyny Turinga zbudowany z klocków Lego
- Tao programowania
- Jak strzelić sobię w stopę w różnych językach programowania
- How To Shoot Yourself in the Foot in Any Programming Language i inne
- Hex edytory:
- Tester wyrażeń regularnych
- POSIX 1003.2 Regular Expression Pattern Syntax Refference (PHP ereg*)
- Regular expression
- http://www.regular-expressions.info/
- Historia języków programowania (źródłó nieznane) (local version)
- Schematy blokowe (źródło nieznane) (local version)
- Unicode Standard 6.0 (local version)
- Eastlake D. III et al., ,,Etymology of "Foo"'', Internet Engineering Task Force (2001), http://www.ietf.org/rfc/rfc3092.txt (wersja lokalna)
- P. Fulmański, ,,Dlaczego boje się, gdy komputer liczy'', http://fulmanski.pl/news/materials/fpn.pdf
- J. Gleen Brookshear, ,,Informatyka w ogólnym zarysie'', WNT.
- Wojciech Głocki, Układy cyfrowe, WSiP, Warszawa 1996. - doskonała książka na temat podstaw układów cyfrowych; doskonała podbudowa do zrozumienia architektury komputer.
- http://iipib.mchtr.pw.edu.pl/index.php?download=Przerzutniki.pdf Przerzutniki (wersja lokalna)
- red. Maciej M. Sysło, ,,Elementy informatyki. Rozwiązania zadań'', PWN, Warszawa, 1995.
- www.ia.agh.edu.pl/~werewka/T01_cas.pdf Asembler, budowa rozkazów, rejestry (wersja lokalna)
- www.queanbeyan-h.schools.nsw.edu.au/software_design/SDD/compalgorithm.pdf Metody opisu algorytmu (wersja lokalna)
- ??? Język maszynowy, reprezentacja danych - niezwykle ciekawy materiał(wersja lokalna)
- Marcin Peczarski, ,,Notatki do wykładu z architektury komputerów'' (wersja lokalna)
- David Salomon, ,,Assemblers and Loaders. 1993 (wersja lokalna)
- Sam Williams, ,,Free as in Freedom'' (pdf)
polskie tłumaczenie: Krzysztof Masłowski, ,,W obronie wolności'' (on line)
- W. Komorowski, ,,Kody i liczby'' (pdf)
- IEEE 754
- Calculating Large Exponents