Výuka probíhá prezenčně ve čtvrtek 14:50 - 16:20, 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. Další 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í vašich znalostí doporučuji specializované přednášky na oboru fyzika, například
a nepřeberně přednášek na oboru informatika.
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.
Klasifikovaný zápočet bude udělen za vypracování a obhajobu zápočtového programu. Téma programu by mělo odpovídat zaměření předmětu, mělo by tedy být vztažené k fyzice, jinak si ho můžete zvolit zcela dle svých zájmů. Program by neměl být totožný s těmi, za které jste (byli, budete) klasifikováni v jiných předmětech, a neměl by být kopií nebo triviální úpravou programů běžně dostupných na webu. Vypracovávat ho můžete jednotlivě nebo ve skupině. Doporučuji vám, abyste se mnou zadání konzultovali, než se pustíte do práce.
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í | 22.2.2024 | Úvod, organizace cvičení Náhodná procházka ve 2D | Anketa |
---|---|---|---|
2. cvičení | 29.2.2024 | Úvod do verzování pomocí Git git init, add, commit, status, log |
|
3. cvičení | 7.3.2024 | Náhodná procházka v obecné dimenzi Větve v Gitu, návrat k předchozím verzím git branch, switch, merge |
|
4. cvičení | 14.3.2024 | Hledání minima funkce pomocí náhodné procházky Vzdálené repozitáře, github fork, pull request |
|
5. cvičení | 21.3.2024 | Metoda Monte-Carlo | |
6. cvičení | 28.3.2024 | Úvod do psaní textů v LaTeXu | Hustý LaTeXový soubor se všemi nejčastěji používanými příkazy a fígly. Pojednání o kvadratické funkci v LaTeXu vzniklé na cvičení. |
7. cvičení | 4.4.2024 | Integrace Monte-Carlo | |
8. cvičení | 11.4.2024 | Úvod do paralelního programování | |
9. cvičení | 18.4.2024 | Řešení obyčejných diferenciálních rovnic I | |
10. cvičení | 25.4.2024 | Řešení obyčejných diferenciálních rovnic II | |
11. cvičení | 2.5.2024 | Řešení parciálních diferenciálních rovnic | |
12. cvičení | 9.5.2024 | Wolfram Mathematica Symbolické výpočty |
|
13. cvičení | 16.5.2024 | Fourierova transformace | |
14. cvičení | 23.5.2024 |
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ř. Chat GPT).
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.