Chatbot EMA
3 dobré

Programovací jazyky

Autor
Ing. Jitka Vlčková
Datum vložení
22. 3. 2018
10 0 1
0x
využito ve
výuce

Anotace

Uživatelská
hodnocení
Systémová
hodnocení
0x
využito ve
výuce
Počet využití ve výuce
0
Počet hodnotících uživatelů
Názor uživatelů na kvalitu materiálu
3 dobré
Další statistické údaje

Vaše hodnocení pomůže ostatním při výběru toho pravého materiálu.

Přidejte hodnocení anonymně nebo pod svým profilem.

Přidat hodnocení

Ohodnocením materiálu pomůžete zpřesnit vyhledávání dle obsahu. Děkujeme.

1

Celková kvalita materiálu *
Povinný údaj 

2

Použil/a jste tento materiál ve výuce?

3

Klady

Zápory

4

Komentář

5

Které tagy nejlépe vystihují obsah materiálu?

Vyberte štítky, které vám připadají pro tento materiál relevantní

algoritmus
datový typ
programovací jazyk
proměnná
spustitelný kód
vyšší a nižší programovací jazyk
zdrojový kód

Není to úplně ono? Zadejte vlastní štítky lépe vystihující obsah

Uživatelská
hodnocení
Systémová
hodnocení
0x
využito ve
výuce
Počet využití ve výuce
0
Počet hodnotících uživatelů
Názor uživatelů na kvalitu materiálu
3 dobré
Další statistické údaje

Vaše hodnocení pomůže ostatním při výběru toho pravého materiálu.

Uživatelská
hodnocení
Systémová
hodnocení
0x
využito ve
výuce
Počet využití ve výuce
0
Počet hodnotících uživatelů
Názor uživatelů na kvalitu materiálu
3 dobré
Další statistické údaje

Vaše hodnocení pomůže ostatním při výběru toho pravého materiálu.

Přidejte hodnocení anonymně nebo pod svým profilem.

Základní atributy materiálu

  • Autor: Ing. Jitka Vlčková
  • Poskytovatel: Metodický portál RVP.CZ
  • Datum vložení do systému: 22. 03. 2018
  • Datum vzniku: 07. 11. 2016
  • Umístění materiálu: -
  • Stupeň vzdělání: gymnaziální vzdělávání
  • Ročník: -
  • Dostupnost: Volně dostupné bez registrace
  • Typ materiálu: prezentace
  • Licence: Creative Commons - Uveďte původ-Neužívejte dílo komerčně-Zachovejte licenci 3.0 ČR
  • Jazyk: Čeština
  • Otevřený zdroj: Ano

Chcete se k materiálu vyjádřit?
Využijte prostor pro férovou diskusi.
 
#fairplay

Ivan Ryant 11.11.2016

Komentář

Pojem algoritmu je pro první přiblížení irelevantní. Reaktivní a ani interaktivní programy (např. v Greenfootovi nebo pro Arduino) nemívají algoritmický charakter (nebývá to postup vedoucí k výsledku a ani postup výpočtu nemusí být z hlediska programátora jednoznačný -- determinovaný). To jsou mýty didaktiků informatiky, kteří v životě nic pořádného nenaprogramovali. Pojem algoritmu začne být zajímavý, když dojde na matematickou logiku a důkazy, ale to snad jedině někde na matfyzu, na základní ani střední škole ne.





"ne všechny jazyky jsou programovací!" -- a ne všechny programovací jazyky jsou algoritmické. Některé jsou např. specifikační (SQL, Prolog...) a jiné připouštějí nejednoznačnost v pořadí elementárních kroků (např. při multithreadingu).





"převod ze zdrojového kódu do spustitelného programu: - interpretace;" -- no ale vždyť právě při interpretaci se interpretuje zdroják, aniž by se převáděl do spustitelného programu...





"přímý přístup k HW součástem počítače;" -- to není otázka jazyka. Když budu psát aplikační program pro Windows v assembleru nebo třeba šestnáctkově ve strojáku pomocí debuggeru, nemůžu se dostat přímo k hardwaru, ale musím využít API operačního systému. Když budu naopak psát ovladač nějakého periferního zařízení, můžu ho psát v C nebo v jiném ještě vyšším jazyce, a podobně třeba kdybych chtěl naprogramovat svůj vlastní OS pro holý počítač a překládat křížem.





"vysoká náročnost pro programátora;" -- jazyk by měl být přiměřený úloze. Naprogramovat webovou aplikaci v assembleru může být pro programátora opravdu náročné, ale ještě náročnější by bylo programovat device driver ve Fortranu nebo v Prologu a v Cobolu by to asi bylo zhola nemožné.





"interpretované" -- čistě interpretované bývají tak leda shellové skripty, před 50 lety třeba Basic, ale to už dneska asi není pravda.





"interpretované - překlad ze zdrojového kódu do spustitelného kódu probíhá za běhu programu;" -- když se program interpretuje, tak se nepřekládá; a když se překládá v runtimu, tak je to JIT-kompilace, ale ne interpretace (např. C# pro .NET)





"interpretované - lze měnit datový typ proměnné;" -- to je složitější, radši bych to vynechal (proměnné se dají typovat různě a různě se dá provádět i typová kotrola)





"kompilované - rychlejší běh programu;" -- to otázka... Např. kompilovaný basic na JPR-12 byl pomalejší, než kdyby byl interpretovaný. Jinak rychlost interpretace bytecodu nebo CLR apod. bývá jen nepatrně pomalejší než kompilace do strojáku. Proslulé jsou např. kompilace z různých jazyků do javascriptu (s dokonalou přenositelností a vynikající rychlostí interpretace). Kompilace JIT taky může docela zdržovat, ale ve srovnání se zdržením, které může způsobit např. garbage-collector to nestojí za řeč. Tu poznámku by zřejmě bylo lepší vynechat.





Neprocedurální jazyky jsou především jazyky specifikační (např. OBJ2, OBJ3, SQL, RPG, UML) a ovšemže i logické. Bývají sem řazeny i jazyky funkcionální (lisp, Lua...), ale tam je postup výpočtu jednoznačně určen zápisem programu, takže opravdu nechápu, co je na tom neprocedurálního. To pak můžete za neprocedurální jazyk považovat i objektový smalltalk.





"procedurální = imperativní - strukturované; - objektově orientované (OOP);" Jsou i nestrukturované a ne-OO jazyky (assemblery, Basic, Fortran -- prostě všechny jazyky s "GOTO"). A naopak i v assembleru se dá programovat strukturovaně, když se použijí vhodná makra nebo stanoví konvence pro skoky.





"zápis programu (algoritmu):" -- pozor! Při zápisu algoritmu se neobejdete bez rekurze! Jsou algoritmy, které se nedají naprogramovat čistě strukturovaně (např. backtracking).





"program se skládá z: hlavního programu; podprogramů;" -- To třeba v Greenfootovi nebo ve Pharu fakt těžko rozlišíte... Ve Fortranu to bývala pravda, ale obecně to nedává smysl.





"Úkoly" -- Kolik je neobjektových procedurálních jazyků bez GOTO? Modula, Ada? Na další si honem nevzpomínám, musel bych hledat a zjišťovat, které mají GOTO. Kdo dá dohromady pět takových jazyků? A kdo dokáže posoudit, které odpovědi jsou správné? A co vyhazování výjimek -- považujete je za strukturované? To by Vám asi Zohar Mana neuznal (viz "Matematická teorie programů"), o Tonym Hoarovi ani nemluvě. Považujete lisp za strukturovaný jazyk? Pak ale smalltalk a další objektové jazyky byste měla považovat taky za strukturované.





Celkový dojem: Jako závěrečné shrnutí tématu snad ano, jako "stručné seznámení s pojmy" je to nepoužitelné. Očekávaný výstup nějak úplně úplně mimo, o uplatnění ICT přece v prezentaci vůbec nejde. Chybějí příklady, prezentace sama o sobě není názorná -- člověk neví, co si má představit. Spíš bych dal dětem tvořit něco ve Scratchi, v Greenfootovi nebo v Pythonu (podle věku a pokročilosti) a pak jako shrnutí příp. promítnul tuto prezentaci (zkrácenou a opravenou). Je to dlouhé -- tak trochu o všem a celkově o ničem.