Úvodní hodina předmětu Programování Programování F1400 + F1400a doc. RNDr. Petr Mikulík, Ph.D. podzimní semestr 2020 ∞ n=0 1 2n 10 −10 x sin(x) dx \usepackage[qrcode] \qrcode[height=15mm]{https://...} \begin{equation} \sum_{n=0}^{\infty} \frac{1}{2^n} \\ \int_{-10}^{10} x \cos(x) \, dx \end{equation} #include int main() { int k; for (k=0; k<=10; k++) printf("Hello world! k=%i\n", k); return 0; } for k=1:10 fprintf(’Hello world! k=%i\n’, k); end Programování F1400 + F1400a Úvodní hodina předmětu Programování Organizace výuky Původní předmět F1400 1/2 „virtuálně“ rozdělen na F1400 1/1 + F1400a 0/1. Přednáška uvede problematiku, cvičení navazuje a téma rozvíjí. Idylické časy: Počítačová učebna Fcom: 10 stolních počítačů, 10+8 židlí, pohovka Covidový podzimní semestr 2020: vše distanční výuka: – Přednáška v reálném čase, nahrávka do ISu, cvičení; – posléze přednáška a cvičení splynou v jeden celek. Proto letos ve cvičení: nutnost (vy)sdílení obrazovky pro ladění programů či jiná aktivní okamžitá zpětná vazba. Studenti chodí na americké univerzity, aby mohli chodit na přednášky. Studenti chodí na české univerzity, aby nemuseli chodit na přednášky. . . (?) Programování F1400 + F1400a Úvodní hodina předmětu Programování Cíle a organizace předmětu Úvodní hodina (organizace, motivace; sítě, textový editor, příkazová řádka, . . . ) Počítání a matematika na počítači a gnuplot (zobrazení vědeckých dat a fitování) Typografie a sázení textů pomocí počítače, počítačová typografie a textové procesory, LATEX (a zmíníme též LibreOffice/OpenOffice, MS Office) Programování v C (syntaxe podobná jako u C++, Java, awk, ecmascript (=javascript), apod.) Úvod do programů pro lineární algebru a programování v nich: GNU Octave, Matlab Motivace pro studenty: numerická matematika, simulace a výpočty, zpracování a zobrazení vzorců a dat, fitování, zpracování textu, principy a optimalizace výpočtů na různém hardwaru; svobodný software Univerzita neví, čím se budete živit, ale ona to tuší . . . Programování F1400 + F1400a Úvodní hodina předmětu Programování Podmínky k zápočtu Během semestru: Účast ve cvičení (IT experti a programátoři: osobní domluva předem) Do poloviny semestru: vypracovat v LATEXu protokol z fyzikálního praktika (hlavička viz web ÚFKL) nebo jiný odborný text, vytisknutý přinést na cvičení, po opravě vložit do odevzdávárny Řešit domácí úkoly, vkládat do odevzdávárny, případně řešit lokální odpovědníky Sledovat informace a rady na webu předmětu www.physics.muni.cz/~mikulik/vyuka/ K zápočtu: Odevzdávárna: Text v LATEXu, qvyřešené úlohy z C a GNU Octave (Matlab) ze cvičení, domácí úkoly Zápočtový odpovědník: Test z IT znalostí E-mailem poslat zápočtový příklad: Vyřešený jeden příklad z programování a odevzdaný společně s dokumentací v LATEXu Programování F1400 + F1400a Úvodní hodina předmětu Programování Operační systémy, programovací jazyky RSX, VMS; Unixy (* září 1969 – Unix měl loni 50 let), různí výrobci; Atari, Commodore, Sinclair, Apple; CP/M; DOS; IBM OS/2; BSD, Linux (* září 1991), Mac OS X; MS Windows Linux – kompletní distribuce včetně programového vybavení: OpenSUSE, Debian (Ubuntu, Kubuntu, . . . ), Fedora a Red Hat, Gentoo, . . . Programování F1400 + F1400a Úvodní hodina předmětu Programování Programovací jazyky Nízkoúrovňové jazyky: strojové jazyky – assemblery Vyšší programovací jazyky: Fortran (Formula Translator), Pascal, Basic, C, C++, Java Skriptovací jazyky: ovládání příkazové řádky: shell (csh, ksh, bash, . . . ), rexx, PowerShell; zpracování textových souborů: awk, perl; všestranné: m (GNU Octave/Matlab), IDL, R (statistika), Python, . . . Počítače vám pomáhají efektivně řešit problémy, které by bez nich neexistovaly. Programování F1400 + F1400a Úvodní hodina předmětu Programování Software – licence Softwarové licence: Komerční: Funkční až po zakoupení Shareware: platba po vyzkoušení; postcardware Zdarma: freeware (gratis, gratuit) – zdrojáky nebo jen binárka Svobodný, otevřený: open, free (libre) – zdrojáky Richard Stallman summarised the difference in a slogan: “Think free as in free speech, not free beer.” Licence pro svobodný software: GNU GPL (General Public License) GNU LGPL (Lesser GPL) BSD licence (pozor na restrikce, viz např. Matlab vs GNU Octave) Creative Commons (dokumenty, fotografie, schémata) EULA – End User License Agreement – požadavek autora, jak se softwarem nakládat. Komerční licence nechrání zákazníka (sw nelze reklamovat). Software může být současně pod více licencemi (např. GPL a komerční). Svobodný software: přispět můžete i vy! Programování F1400 + F1400a Úvodní hodina předmětu Programování IT bezpečnost Hacker (bastlení) vs cracker (vlámání) Viry: dříve pučením (disketa, fleška), nyní hlavně internetem (děravý software – zejména Microsoft a Adobe) Hesla (bezpečná, slovníková, zapamatovatelná, klíčenky na hesla . . . ); biometrie Změňte přednastavená (default) hesla v domácím routeru, TV, v internetu věcí (IoT), . . . Bezpečně na Wi-Fi; nevěřte internetovým kavárnám Útoky po síti – vždy mějte zapnutý firewall Některé OS (zejména ty od MS) vyžadují též antivirus a antispyware Šifrovaný protokol HTTPS Virtuální privátní sítě (VPN) Programování F1400 + F1400a Úvodní hodina předmětu Programování Různá doporučení 1 Používejte počítač k počítání Naučte se psát všemi deseti prsty Příkazová řádka CLI (Command Line Interface, skriptování, neuklikáte se) vs GUI (Graphical User Interface, grafické uživatelské prostředí) User friendly vs Scientist friendly software RTFM = čtěte manuály, návody a ČKD (FAQ) aneb Často kladené otázky (Frequently asked questions) Textový editor vs textový procesor Desktop vs server Historie počítačů na Přírodovědecké fakultě: sálové počítače PDP 11 a EC 1033, stolní počítače IQ 151, SAPI, PC, superpočítače v Metacentru, malinká Arduina; řídící počítače v přístrojích, . . . Programování F1400 + F1400a Úvodní hodina předmětu Programování Různá doporučení 2 Zálohujte! Nemějte v batohu notebook i jedinou zálohu na flešce. Data v cloudu – data v čoudu? Data na internetu – uložena a zpřístupněna na hardwaru, nad kterým nemáte kontrolu – může je číst a (z)manipulovat kdokoliv jakkoliv. Šifrujte, ale nezapomínejte hesla, jinak se k datům nedostanete ani vy. Chování na internetu: Web je příjemné prostředí, ale též nebezpečné. Bezpečnost!!! Buďte obezřetní! Bezpečné aplikace a bezpečný (nebo alespoň zabezpečený) operační systém. Netiketa: Na diskusích se chovejte slušně, nerozpoutávejte zbytečné války „flamewars“. Vše, co na webu zveřejníte, může být (někým) použito proti vám. Chraňte a braňte svobodu slova! To, že nejste paranoidní, neznamená, že vás nesledují! Nesouhlasím s tím, co říkáte, ale až do smrti budu hájit Vaše právo to říkat. Programování F1400 + F1400a Úvodní hodina předmětu Programování