W niniejszej dokumentacji udostępniam rozszerzoną wersję swoich notatek
do wykładu z podstaw programowania dla kierunków inżynieryjnych naszego Wydziału.
Zajęcia zostały po raz pierwszy przeprowadzone w semestrze letnim 2008 r.
jako część przedmiotu Komputerowe Wspomaganie Projektowania.
Od tego czasu są one prowadzone co roku, z niewielkimi modyfikacjami
dotyczącymi godzinowego rozplanowania zajęć.
Używam Pythona także jako podstawowego języka programowania
na kursach dla studentów Bioinformatyki:
w latach 2011–2020 Programy Komputerowe,
a od roku 2021 Wstęp do Informatyki.
Wymiar godzinowy i układ materiału są w nich inne.
Materiał dotyczący algorytmiki (rozdział 1.),
typów danych (rozdział 2.),
metodyki obliczeń (rozdział 3.),
uruchamiania kodu źródłowego (rozdział 4.)
i jego diagnostyki (fragmenty rozdziału 8.)
oparto na opracowaniach dotyczących przedmiotu
Podstawy Informatyki prowadzonego w latach
ubiegłych. Część materiału zamieszczona w rozdziałach 1.,
2. i 3.
może być wykorzystana także w trakcie podstawowego kursu
Technologii Informacyjnych.
Rozdział 9. jest katalogiem problemów praktycznych
przeznaczonych do rozwiązania metodami programistycznymi. Jest on pomyślany
jako podstawa przykładów prezentowanych podczas kursu oraz jako swego rodzaju
„pożywka” do wykorzystania podczas zajęć laboratoryjnych. Jego
uzupełnieniem są zestawy ćwiczeń dostępne dla uczestników kursu.
Do sformatowania dokumentacji zastosowano minimalistyczne,
lecz spójne znakowanie XHTML.
Dokumentację zaleca się przeglądać za pomocą narzędzi obsługujących
grafikę SVG oraz mechanizmy generowania zawartości
i automatycznej numeracji CSS 2.
Cel
- Opanowanie podstawowych reguł algorytmiki
- Opanowanie języka programowania na poziomie elementarnym
- Integracja nabytych umiejętności z praktycznym użytkowaniem systemów przechowywania i przetwarzania danych
Tematy wykładów
- Metodologia. Zagadnienie algorytmiczne. Notacje algorytmów. Język Python jako jedna z notacji
- Zmienne, instrukcje proste i warunki
- Iteracje o znanej liczbie powtórzeń. Tablice, listy
- Podprogramy. Obsługa plików
- Dostęp do innych programów i sesji środowisk użytkowych. Biblioteki programistyczne
- Iteracje sterowane warunkiem. Metoda „dziel i zwyciężaj”. Metoda bisekcji w rozwiązywaniu równań
Tematy ćwiczeń
- Interpreter Pythona. Program źródłowy Pythona. Proste typy danych. Następstwo instrukcji. Instrukcje warunkowe
- Diagnostyka kodu źródłowego: wydruki kontrolne, tryb krokowy, podgląd zmiennych. Typy złożone: listy
- Iteracje o znanej liczbie powtórzeń. Iteracja po elementach listy. Sumowanie i zliczanie elementów spełniających zadany warunek
- Podprogramy. Tablicowanie funkcji. Czynność złożona jako procedura
- Obsługa plików. Elementy obsługi graficznego środowiska użytkowego
- Iteracje sterowane warunkiem. Metoda „dziel i zwyciężaj”. Metoda bisekcji w rozwiązywaniu równań
- Integracja programu ze środowiskiem użytkowym (arkusze kalkulacyjne, oprogramowanie do graficznej prezentacji danych)
- Praca kontrolna
Szczegółowe zadania będące przedmiotem ćwiczeń są umieszczone w osobnym serwisie dostępnym z laboratoriów.
Zalecana literatura
- Algorytmika
- N. Wirth:
Wstęp do programowania systematycznego;
1987,
WNT,
Warszawa.
- P. Wróblewski:
Algorytmy, struktury danych i techniki programowania;
2009,
Helion,
Gliwice.
- N. Wirth:
Algorytmy + struktury danych = programy;
2002,
WNT,
Warszawa (lektura uzupełniająca).
- J. Bentley:
Perełki oprogramowania;
wyd. II 2001,
WNT,
Warszawa (lektura uzupełniająca).
- Arkusze kalkulacyjne
- D. M. Bourg:
Excel w nauce i technice;
2006,
Helion, Gliwice.
- M. Dziewoński:
OpenOffice PL. Oficjalny podręcznik;
2005,
Helion, Gliwice.
- Języki programowania
- J. Swacha:
Podstawy programowania komputerów w języku Python;
2009,
Wyd. Nauk. Uniwersytetu Szczecińskiego,
Szczecin.
-
Kursy i artykuły online:
http://pl.python.org/kursy,jezyka.html
.
- A. B. Downey:
Myśl w języku Python! Nauka programowania;
2017, Helion, Gliwice.
- A. B. Downey:
Think Python. An Introduction to Software Design;
http://www.greenteapress.com/thinkpython
;
2002–2008 (lektura uzupełniająca).
- P. Norton i inni:
Python od podstaw;
2006,
Helion, Gliwice (lektura uzupełniająca).
- Swaroop C. H.:
Ukąś Pythona;
http://wiki.mercury.lo5.bielsko.pl/index.php/Uk%C4%85%C5%9B_Pythona
;
2003–2008
(lektura uzupełniająca).
- Dokumentacja online:
The Python tutorial;
http://docs.python.org/tutorial/
;
wydanie 2.7, 2012
(lektura uzupełniająca).
-
Dokumentacja online:
http://pl/python.org/python.html
(lektura uzupełniająca).
Zalecane oprogramowanie
- Interpreter i maszyna wykonawcza języka Python
- wersja 2.7.15 (zalecana w zachowawczym wariancie tego kursu)
- wersje 3.3.x, 3.4.x, 3.5.x (przejściowe, lepiej nie używać bez uzasadnionej potrzeby)
- wersje 3.6.x (dopuszczalne, choć lepszym wyborem jest wersja 3.7)
- wersja 3.7.0 (godna polecenia, zalecana w progresywnym wariancie tego kursu)
- Edytory kodu źródłowego (jeden do wyboru)
- SciTE (zalecany w systemach Windows i UNIX dla uruchamiania kodu pisanego ad hoc)
- Notepad++ (opcjonalnie)
- (g)Vim (opcjonalnie)
- GEdit (opcjonalnie)
- Zintegrowane środowiska uruchomieniowe (jedno do wyboru)
- IDLE (podstawowe środowisko, zazwyczaj dostarczane wraz z interpreterem)
- PythonWin (opcjonalnie w systemach Windows)
- WingIDE-101 (opcjonalnie)
- Dodatkowe biblioteki i moduły
- EasyGUI
- NumPy
- Matplotlib
- PyWin32 (tylko w systemach Windows)
- ComTypes (opcjonalnie, tylko w systemach Windows)
- PyUNO (opcjonalnie, w ramach oprogramowania OpenOffice)
- SciPy (opcjonalnie)
- Gnuplot-py (opcjonalnie)
- SDXF (opcjonalnie)
- Psycopg (opcjonalnie)
- MySQL-Python (opcjonalnie)
- Wybór oprogramowania użytkowego i serwerowego (opcjonalnie)
- Gnuplot
- OpenOffice
- Excel (tylko w systemach Windows)
- Gnumeric
- PostgreSQL
- MySQL
- AutoCAD lub IntelliCAD (tylko w systemach Windows)
Szczegóły dotyczące pobierania i instalacji wymienionego oprogramowania
podajemy w podrozdziale 5.1.