Základy programování Zdrojový kód, dokumentace, týmová práce

Podobné dokumenty
Vlastnosti algoritmu. elementárnost. determinovanost. rezultativnost. konečnost. hromadnost. efektivnost

Programové konvence, dokumentace a ladění. Programování II 2. přednáška Alena Buchalcevová

8 Třídy, objekty, metody, předávání argumentů metod

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: AVTK. Úvod. strana 1

Algoritmus. Přesné znění definice algoritmu zní: Algoritmus je procedura proveditelná Turingovým strojem.

Agenda. Docházka Návrat k minulému praktickému cvičení Zápočtové práce. Dokumentace. Dotazy, přání, stížnosti. Co, jak a proč dokumentovat

Doxygen. Jakub Břečka

1. Programování proti rozhraní

Algoritmizace. Cíle předmětu

Java/QE Akademie - Osnova

Testování, ladění a dokumentace programů

Obsah přednášky. 12. Dokumentace zdrojového kódu Tvorba elektronické dokumentace UML. Co je diagram tříd. Ing. Ondřej Guth

Algoritmizace prostorových úloh

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

2. lekce Algoritmus, cyklus Miroslav Jílek

Základy algoritmizace

Základy algoritmizace a programování

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Lekce 01 Úvod do algoritmizace

Algoritmizace- úvod. Ing. Tomáš Otáhal

SCM = Source Code Management software, základní typologie rozdělení je podle počtu a umístění základního úložiště kódu(=repository) na:

Algoritmizace prostorových úloh

Úvod do programovacích jazyků (Java)

Úvod. Programovací paradigmata

NPRG031 Programování II --- 2/2 Z, Zk

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Úvod Vývojová prostředí Štábní kultura Dokumentace Konec. Programování v C# Prostředí a doporučení 1 / 39

Algoritmy I. Cvičení č. 2, 3 ALGI 2018/19

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

Úvod do programování

Základy algoritmizácie a programovania

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)

Základy jazyka C. Základy programování 1 Martin Kauer (Tomáš Kühr)

NPRG030 Programování I RNDr.Tomáš Holan, Ph.D. 4.patro, č

Seminář z Informatiky a výpočetní techniky. Slovanské gymnázium Olomouc 4. září 2014 Tomáš Kühr

Robert Haken. HAVIT, s.r.o. knowledge-base.havit.cz

Algoritmizace a programování

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Vzdělávací oblast: Informatika a informační a komunikační technologie Vzdělávací obor: Programování. Předmět: Programování

KTE / ZPE Informační technologie

Programovací techniky

Dokumentace software

Výukový materiál zpracován v rámci projektu EU peníze školám

JIŘÍ ROUN NABÍDKA SPOLUPRÁCE SW DOKUMENTARISTA WEB: MOBIL:

Pojem algoritmus. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava

IUJCE 07/08 Přednáška č. 1

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

NPRG030 Programování I, 2015/16 1 / :25:32

Základy algoritmizace a programování

Úvod do programování - Java. Cvičení č.4

1 Základy algoritmizace a programování. 1.1 Algoritmus Možnosti zápisu algoritmů. Základy algoritmizace a programování

Programování v Javě I. Leden 2008

ŠVP Gymnázium Ostrava-Zábřeh Úvod do programování

Algoritmizace. Algoritmizace (Y36ALG), Šumperk - 1. přednáška 1

Úvod do programovacích jazyků (Java)

Pravidla dokumentace

Vývoj Internetových Aplikací

1. Téma 03 - Rozhodování

Programovací jazyk C# Úvod do programování v C#

Algoritmizace. 1. Úvod. Algoritmus

Programovací jazyk Úvod do programování v C#

Programovací jazyk C# Úvod do programování v C#

IAJCE Přednáška č. 6. logický celek, řešící dílčí část problému Příklad velmi špatného zápisu programu na výpočet obsahu obdélníku

Programování v Javě I. Únor 2009

6 Příkazy řízení toku

3 Vývojová prostředí, základní prvky jazyka Java, konvence jazyka Java

10 Balíčky, grafické znázornění tříd, základy zapozdření

PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

Úvod do programování. Lekce 1

Algoritmizace a programování

Objektově orientované programování

Databáze, sítě a techniky programování X33DSP

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

SonarQube - statická analýza kódu a její zapojení v CI. Babu Červenková Big Data developer - Java Fulltext - Robot tým

Program a životní cyklus programu

Algoritmizace a programování

Hodnoticí standard. Programátor (kód: M) Odborná způsobilost. Platnost standardu. Skupina oborů: Informatické obory (kód: 18)

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Algoritmy I. Cvičení č.1 ALGI 2015/16

Vývojové diagramy 1/7

Rozklad na prvočinitele. 3. prosince 2010

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

1 Nástroje pro správu verzí. 1.1 Pojmy:

ALGORITMIZACE A PROGRAMOVÁNÍ

2. Modelovací jazyk UML 2.1 Struktura UML Diagram tříd Asociace OCL. 3. Smalltalk 3.1 Jazyk Pojmenování

Seminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr

Osnova předmětu IB053. Historie předmětu IB053

Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/

PODPROGRAMY PROCEDURY A FUNKCE

Algoritmy a algoritmizace

DTP Základy programování Úvod do předmětu

Vývojové nástroje jazyka Java

Algoritmizace a programování

Programovanie I. Úvod do programovania Mgr. Stanislav Horal, Katedra informatiky, FPV, UCM

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

Rekurze. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Transkript:

Základy programování Zdrojový kód, dokumentace, týmová práce doc. RNDr. Petr Šaloun, Ph.D. VŠB-TUO, FEI (přednáška připravena z podkladů Ing. Michala Radeckého)

Algoritmus Algoritmus Postup popisující konkrétní jednotlivé kroky vedoucí k vyřešení dané úlohy. Vlastnosti algoritmů Hromadnost a univerzálnost Jednoznačnost (determinovanost) Konečnost Rezultativnost (rozhodnost) Správnost Algoritmická složitost (prostorová, časová) Druhy algoritmů (rekurzivní, hladové, genetické, heuristické, apod.)

Zápis algoritmů Grafická forma Vývojové diagramy Strukturogramy UML diagramy (aktivitní diagramy) Textová forma Přirozený jazyk Pseudokód Formální jazyk Programovací jazyk (taky formální jazyk)

Zdroj: http://www.wikipedia.org, http://studium.oapion.cz, http://www.hulinks.co.jp Grafické vyjádření algoritmů Vývojový diagram UML aktivitní diagram Strukturogram

Zásady zápisu ZK Dodržování pravidel a zásad umožňuje tvorbu snadno udržovatelného a udržitelného kódu Tvorba programu není jednorázová záležitost nové přístupy pro řešení konkrétních úloh či problémů nové znalosti a schopnosti programátora nové požadavky na funkcionalitu a rozšiřování noví programátoři Čitelnost vlastního zdrojového kódu algoritmů a jazykových konstrukcí Konvence a syntaxe Konvence v závislosti na programovacím jazyce Dodržování jednotného programátorského stylu

Zásady zápisu ZK Jeden příkaz na jeden řádek Zdroj: http://www.natur.cuni.cz/~bayertom Odsazování řádků

Zásady zápisu ZK Zdroj: http://www.natur.cuni.cz/~bayertom Vynechávání řádku mezi logickými celky Rozlišování velkých a malých písmen

Zásady zápisu ZK Komentování kódu (co, jak, proč, kdy, kým) Zdroj: http://www.natur.cuni.cz/~bayertom Délka řádku s ohledem na šířku obrazovky a zalamování dlouhých řádků na logickém místě Rozumná délka jednotlivých logických bloků (metod, podprogramů, apod.)

Zásady zápisu ZK Mezery ve vztahu k okolí Zdroj: http://www.natur.cuni.cz/~bayertom Snažit se pro vše používat jen jeden jazyk (čeština nepoužívat diakritiku, angličtina) Nepoužívat příliš dlouhé identifikátory a dodržovat jednotná pravidla pro tvorbu názvů a identifikátorů

Zásady zápisu ZK Zdroj: http://www.natur.cuni.cz/~bayertom Používat výstižné a odlišitelné názvy identifikátorů a metod (bez kolize) Podmínky se snažit zapisovat v pozitivní formě Nepoužívat příkazy skoku

Zásady zápisu ZK Zdroj: http://www.natur.cuni.cz/~bayertom Komentáře psát tak a tam, aby byla zajištěna pochopitelnost kódu i jinému člověku příp. za delší dobu V kódu přímo komentovat významná místa (složité algoritmy, apod.) Komentovat proměnné a jejich význam Komentovat hlavičky metod a metody Komentovat změny v kódu a místa s upozorněním

Jmenné konvence v C/C++ Podstatná, přídavná jména a slovesa Velká a malá písmena Pascal case BeginInvoke, GetElementValue, GetHtml Camel case begininvoke, getelementvalue, gethtml Underscore case begin_invoke, get_element_value Vlastní datové typy, třídy PascalCase (bez prefixu) Vnější proměnné, atributy - PascalCase Vnitřní proměnné, parametry camelcase Konstanty UPPER_UNDERSCORE_CASE Metody camelcase() Namespace model::lowercase Kolekce (pole, atd.) množné číslo points, elements http://geosoft.no/development/cppstyle.html

Dokumentace Nejlepší dokumentace je čitelně a kvalitně napsaný kód a jeho komentáře V některých jazycích je možné používat specifické způsoby tvorby komentářů, které následně umožní jejich automatický převod (pomocí odpovídajících nástrojů) do podoby dokumentace (Java,.NET) Obvykle vyžadují transformační nástroj (JavaDoc, XSL transformace, NDoc, Doxygen, apod.)

Komentování v Javě Zdroj:http://cs.wikibooks.org

Komentování v C# Zdroj:http://www.vyvojar.cz VS 2008 nebo NDoc http://ndoc.sourceforge.net/

Komentování v C/C++ Pomocí univerzálního nástroje Doxygen Má vlastní konvence, ale je možné používat styl JavaDoc /** **/ Podpora celé řady jazyků a výstupních formátů http://www.stack.nl/~dimitri/doxygen/

JavaDoc komentáře /** @author Michal Radecky" */ /* @version ZpProject1.2 */ /** @deprecated Tato metoda je zastarala, nahrada {@link #getvalue}*/ /** Další informace <a href={@docroot}/info.html></a>. */ /** tato metoda n-tou mocninu @param number cislo, které chceme umoznit @param power vyjadruje cislo mocniny @return vraci cislo na n-tou */ public static float getpower(float number, int power) {... } /** odkaz v textu: * Text... {@see <a href="http://java.sun.com/">java Sun</a>}... * odkaz za textem: @see java.lang.object */

Týmová práce Přímá komunikace v týmu email, ICQ, Live Messenger, apod. Kolektivní komunikace diskusní skupiny, fóra, konferenční hovory, apod. Řízení týmové spolupráce a reportování workflow systémy, projektový management, správa chyb, apod. Spolupráce při vytváření obsahu SVN, CSV, TFS, Google Docs, Live, apod. Dodržování stejných pravidel a konvencí napříč týmem Cílem je vytvoření prostředí pro komunikaci a spolupráci jednotlivých subjektů nad jedním projektem/úkolem/aplikací, atd. Často je využití těchto nástrojů efektivní také pro aplikací v netýmovém prostředí

Nástroje pro team work Správa zdrojových kódů verzování a historie mergování a správa úprav víceuživatelský přístup nezávislost na platformě a možnost multiplatformního přístupu využívá se tzv. repository nástroje: TFS, VSS (SourceSafe), CVS, SVN (http://tortoisesvn.net/, http://svn1clicksetup.tigris.org/) existují volně dostupné systémy pro hostování zdrojových kódů projektů (Sourceforge, CodePlex, Google Code, atd.)

Nástroje pro team work Správa projektů a úkolů správa členů vývojového týmu správa úkolů a chyb pro jednotlivé členy nebo skupiny v týmu (bug tracking, issue tracking) podpora testování reportování činností v týmu a vyhodnocování projektů správa a toky činností a dokumentů správa zdrojů nástroje: Office Project, OpenProj, BugZilla