Výuka probíhá prezenčně v pondělí 16:30 - 18:00, počítačová učebna N10, Impakt, Troja.
Účelem cvičení je pohrát si s jednoduchými fyzikálními problémy, vyzkoušet si různé způsoby jejich řešení (i triviální řešení je řešení) a naučit se analzyovat a zobrazovat obdržené výsledky. Většina příkladů bude demonstrována v populárním programovacím jazyce Python, ale dojde i na základy psaní textů v LaTeXu a úvod do použítí komerčního nástroje Mathematica. V průběhu cvičení se také naučíte základy verzovacího systému Git a základy práce v týmu. Oficiální informace k předmětu jsou na stránce SISu.
Ve cvičení nebude probíhat systematická výuka žádného programovacího jazyka ani numerických algoritmů. Pro prohloubení znalostí doporučuji specializované přednášky na oboru fyzika, například
Fyzika, matematika, numerika, algoritmy
Techniky
Uvedený seznam není závazný. Jelikož se jedná o volitelný předmět, lze témata přizpůsobit přáním a schopnostem účastníků kurzu.
Na cvičeních budeme probírat uzavřená témata, v rámci kterých společně napíšeme krátké programy. Po dokončení tématu zadám ještě doplňující úkoly na doma, které budou procvičené téma rozšiřovat. Za odladěný a správně a srozumitelně napsaný program odevzdaný nejpozdějí do následujícího cvičení získáte 10 bodů. Za později odevzdaný úkol lze získat maximálně 5 bodů.
Úkoly odevzdávejte před modul Studijní mezivýsledky v SISu, nebo přes nasdílený repozitář na GitHubu.
Známka klasifikovaného zápočtu bude určena na základě následujícího klíče za předpokladu, že bude zadáno 10 domácích úkolů (b je celkový získaný počet bodů):
b≥80 | 1 (výborně) |
---|---|
60≤b<80 | 2 (velmi dobře) |
40≤b<60 | 3 (dobře) |
Pokyny k vypracování
Vypracování vlastního programu vždy povede na známku 1 (výborně).
Termín
Doporučuji vypracovat a odevzdat zápočtovou práci ještě před letními prázdninami. Nejzazší termín odevzdání je 7.9.2025, aby bylo dost času opravit případné nedostatky.
Ačkoliv převážná část předmětu bude demonstrována příklady v programovacím jazyce Python 3 a vývojovém prostředí Visual Studio Code, rozhodně není nutné, abyste úkoly nebo zápočtové programy vypracovávali pomocí stejných nástrojů. Zvolte si sami, jaký jazyk či vývojové prostředí jsou vám sympatické. Obecně doporučuji takové programovací jazyky, které mají dobrou podporu, jsou živé a ideálně pro které existují kvalitní numerické knihovny a knihovny pro vykreslování grafů. Sám jsem zběhlý v jazycích C/C++, C#, Python, Julia, Mathematica, PHP, Javascript, SQL; v nich vám budu schopen nejsnáze poradit a pomoci, pokud budete potřebovat.
Během dálkové výuky v době koronavirové pandemie jsem sepsal studijní text, jehož součástí jsou i vzorově vypracované úlohy dostupné v repozitáři na GitHubu. Velké části témat z textu se budeme věnovat i letos, a proto lze brát tento text jako studijní materiál.
1. cvičení | 17.2.2025 | Úvod, organizace cvičení Logistické (populační) zobrazení | |
---|---|---|---|
2. cvičení | 24.2.2025 | Bifurkační diagram logistického zobrazení docstring instalace knihoven progress bar alive-progress |
Domácí úkol na 3.3.2025 |
3. cvičení | 3.3.2025 | Náhodná rozdělení, histogram centrální limitní věta generování výběru z normálního rozdělení generování výběru z rozdělení se zadanou hustotou |
Domácí úkol na 10.3.2025 |
4. cvičení | 10.3.2025 | Úvod do verzování pomocí Git git init, add, commit, status, log, branch vše demonstrováno na příkladu z předchozího cvičení |
|
5. cvičení | 17.3.2024 | Metoda Monte-Carlo Integrace Monte-Carlo |
Domácí úkol na 24.3.2025 |
6. cvičení | 24.3.2024 | Paralelizace github a vzdálené repozitáře git remote, push, pull, clone Fork, Pull request |
Domácí úkol na 31.3.2025 |
7. cvičení | 31.3.2024 | MFF cluster Chiméra (návod, login) | |
8. cvičení | 7.4.2024 | Řešení obyčejných diferenciálních rovnic Eulerova metoda Runge-Kutta metoda symplektické metody |
Na webu existuje nepřeberné množství tutoriálů a návodů k Pythonu a jeho knihovnám, které vám pomůžou s konkrétními problémy. Odpovědi najdete na diskuzních fórech (např. Stack Overflow) nebo dotazem na chatbot, např. Claude, ChatGPT, Gemini, Microsoft Copilot...
Pokročilejší monografie, v nichž naleznete seriózní příklady využití programovacího jazyka Python ve vědě:
[1] | P.R. Turner, T. Arildsen, K. Kavanagh, Applied Scientific Computing With Python (Springer 2018) |
---|---|
[2] | R. Johansson, Numerical Python: Scientific Computing and Data Science Applications with Numpy, SciPy and Matplotlib (Springer 2019) |
[3] | S. Nagar, Introduction to Python for Engineers and Scientists (Springer 2018) |
[4] | S. Lynch, Dynamical Systems with Applications using Python (Springer 2018) |
[5] | B.J. Korites, Python Graphics: A Reference for Creating 2D and 3D images (Springer 2018) |
Algoritmy obecně:
[6] | M. Mareš, T. Valla, Průvodce labyrintem algoritmů (CZ.NIC 2022) |
---|
Náhodně vybrané (ale zajímavé) eseje k programování obecně:
[7] | S. Wolfram, What Is ChatGPT Doing... and Why Does It Work? (2023) |
---|---|
[8] | I. Suzdalnitski, Object-Oriented Programming - The Trillion Dollar Disaster (2019) |
[9] | Ch. Scalfani, Goodbye, Object Oriented Programming (2016) |
Pokud se chcete na cokoliv zeptat nebo si potřebujete něco vyjasnit, stavte se na konzultaci.