The course is intended for students who need programming as a useful tool for scientific and technical disciplines. The main orientation is towards the FOTRAN class, C, C++ languages. Beside gaining knowledge of program syntax and utilization of statements and data structures, the emphasis is given to application of a system in programming, usage of programming technologies, definition and utilization of algorithms together with the evaluation of their space and time severity. In an overview, other programming languages will be characterized with link to particular programming technologies. The practical part of this course comprises programming in various languages and integrated programming environments.
Last update: Vaněk Tomáš (02.10.2013)
Předmět je určen pro posluchače, kteří potřebují programování jako užitečný nástroj pro vědecko-technické a další obory. Hlavní zaměření je na jazyky třídy Fortran, C a C++. Kromě seznámení se se syntaxí a využitím příkazů i datových struktur je kladen důraz na systematičnost programování, používání programovacích technologií a programátorského rukopisu. Posluchači se také seznámí s teoretickým zázemím programovacích jazyků, definicí a využíváním algoritmů společně s hodnocením jejich časové a prostorové náročnosti. V přehledu budou charakterizovány i další proramovací jazyky, zejména v souvislosti s jednotlivými programovacími technologiemi. Praktická část tohoto předmětu je zaměřena na programování v uvedených jazycích s využitím integrovaných vývojových prostředí.
Last update: Vaněk Tomáš (21.11.2012)
Aim of the course -
Students will be able to:
Orientate themselves in the theoretical background of programming languages
Orientate themselves in the most important programming technologies and to use a programming scheme
Know the theory, characteristics and realization of algorithms for various purposes
Use programming languages of the FORTRAN class (FORTRAN 77, Fortran 90 and 95)
Use programming languages C and C++
Last update: Vaněk Tomáš (02.10.2013)
Student bude umět
Teoretické základy programovacích jazyků
Orientovat se v nejdůležitějších programovacích technologiích a používat programátorský rukopis
Teorii, charakteristiky a realizací algoritmů pro různé účely
Používat jazyky třídy Fortran (FORTRAN 77, Fortran 90 a 95)
Používat jazyky C a C++
Last update: Vaněk Tomáš (21.11.2012)
Literature -
R: Vaněk T.: Lectures on APAT (electronic form).
R: Chivers I, Sleightholme J.: Introduction to Programming with Fortran: With Coverage of Fortran 90, 95, 2003, 2008 and 77. 2nd ed., Springer, 2012. ISBN-13: 978-0857292322.
R: Compaq Visual Fortran Language Reference. Visual Fortran Version 6.6 (electronic publication). Compaq Computer Corporation, 2001.
R: King K.N.: C Programming: A Modern Approach. 2nd ed., W.W. Norton & Co., 2008. ISBN-13: 978-0393979503.
R: Stroustrup B: The C++ Programming Language. 4th ed., Adison Wesley, 2013. ISBN-13: 978-0321958327.
A: Walraet Bob: Programming, the impossible challenge. North-Holland, 1989.
A: Wrox Press C++ tutorial (electronic publication). Wrox Press, 1998.
A: Horton I.: Introduction to Visual C++ 6.0 Standard Edition. Wrox Press, 1998.
A: Other sources will be recommended according to actual possibilities.
Last update: SEK409 (08.10.2013)
Vaněk T.: Přednášky pro předmět PPA (elektronická forma).
Walraet B.: Programming, the impossible challenge. North-Holland, 1989.
Töpfer P.: Algoritmy a programovací techniky. PROMETHEUS, Praha 1995 (ISBN: 80-85849-83-6).
Wróblewski P.: Algoritmy – datové struktury a programovací techniky. Computer Press, Brno 2004 (ISBN: 80-251-0343-9).
Čada O.: Objektové programování - naučte se pravidla objektového myšlení. Grada Publishing, Praha 2009 (ISBN: ISBN 978-80-247-2745-5, elektronická verze ISBN: 978-80-247-6699-7).
Hřebíček J. a kol.: Programovací jazyk FORTRAN 77 a vědeckotechnické výpočty. Academia Praha, 1989.
Davies R., Rea A., Tsaptsinos D.: Introduction to Fortran 90. An introduction course for novice students. Version 1. Cardiff HPC Training & Education Centre, 2000? (elektronická podoba).
Sandu A.: Introduction to Fortran 95 and Numerical Computing. A Jump-Start for Scientists and Engineers. Lecture Notes. Computer Science Department, Michigan Technological University, 2001 (elektronická forma).
Compaq Visual Fortran Language Reference. Visual Fortran Version 6.6 (elektronická forma). Compaq Computer Corporation, 2001.
ISO/IEC: Normy pro jazyky třídy Fortran (elektronická forma).
Virius M.: Jazyky C a C++. Kompletní kapesní průvodce programátora. Grada Publishing, Praha 2005/2010.
Virius M.: Pasti a propasti jazyka C++. Grada Publishing, 1997.
Eckel B.: Myslíme v jazyku C++. Grada Publishing, 2000.
Kruglinski D.J.: Mistrovství ve Visual C++. Computer Press, 1999.
Horton I.: Introduction to Visual C++ 6.0 Standard Edition. Wrox Press, 1998.
Jinoch J., Müller K., Vogel J.: Programování v jazyku Pascal. SNTL, Praha, 1986.
Jirků P. a kol.: Programování v jazyku Prolog. SNTL, Praha 1991.
Last update: Vaněk Tomáš (10.08.2016)
Syllabus -
Introduction. General aspects of software development. Software life cycle. Categorisation of software. Software engineering.
Theory of formal systems. Abstract alphabet. Symbols. Post production systems. Axioms and sentences.
Theory of programming languages, their types. Syntactic and semantic description.
Programming technologies and their relation to programming languages. Structured and object oriented programming. Individual programming styles.
Algorithms, formal description and realisation in a program. Time and space characteristics of algorithms. Data structures used in algorithms. Selected often used algorithms.
Languages of the FORTRAN type. Advanced programming constructions in FORTRAN 77. Obsolete and deprecated features of FORTRAN 77.
Languages Fortran 90 a 95 and comparison with FORTRAN 77. Flexibility of data types. New structured constructions and object-oriented features.
Language C. Basic characteristics, structure of a program, data types and operators. Statements. Directives for the compiler.
Language C. Functions (subprograms). Utilisation of pointers, structures, derived data types and other advanced features of C language.
Selected standard C runtime libraries. Input and output operations in C. String operations.
Language C++, its purpose and basic properties. Differences between C and C++.
Object oriented and visual programming in C++. Declaration of object classes and their utilisation. Polymorphism, inheritance, overloading. Principles for the development of Windows applications in C++.
Language BASIC and its higher generations. Visual Basic and visual programming. Development of Windows applications with standard visual and other objects.
Other frequently used programming languages. Pascal and structured programming. Java and object oriented programming. Prolog and logical programming. LISP and functional programming. Languages for the development of Internet applications.
Last update: Vaněk Tomáš (18.09.2007)
Úvod - obecná problematika vytváření programového vybavení. Životní cyklus a kategorizace softwaru. Teorie formálních systémů a jejich použití pro programovací jazyky. Syntaktický a sémantický popis, formy zápisu syntaxe jazyka. Přehled vybraných aktuálních programovacích jazyků.
Programovací technologie (metodiky) a jejich vztah k programovacím jazykům. Přehled používaných programovacích technologií. Principy strukturovaného programování. Programátorský rukopis.
Algoritmy, jejich formální zápis a programová realizace. Časové a prostorové charakteristiky algoritmů. Datové struktury využívané v algoritmech. Některé obecně využitelné algoritmy.
Jazyky kategorie Fortran - obecné charakteristiky a přehled verzí. Struktura programu, pevný a volný způsob zápisu. Datové typy, deklarace, operátory, standardní funkce, výrazy.
Výkonné příkazy jazyka Fortran. Podprogramy. Vstupy a výstupy v jazyku Fortran.
Pokročilejší prvky a konstrukce jazyka Fortran. Efektivní využívání polí a specifické operace s nimi. Ukazatelé a dynamická alokace. Moduly. Různé.
Jazyk C. Základní charakteristiky a využití. Stavba programu, datové typy a operátory. Priorita operátorů.
Jazyk C. Příkazy jazyka. Direktivy kompilátoru, symbolické konstanty a makra.
Jazyk C. Definice a využití ukazatelů, struktur a odvozených datových typů. Další pokročilejší prvky jazyka.
Jazyk C. Funkce (podprogramy), využívání funkční hodnoty a parametrů funkce.
Jazyk C. Vybrané funkce ze standardních knihoven. Vstupní a výstupní operace. Operace s řetězci znaků. Vybrané matematické funkce. Operace s kalendářními daty. Funkce pro dynamickou alokaci a dealokaci paměti.
Jazyk C++. Účel a základní vlastnosti. Rozdíly mezi C a C++.
Jazyk C++. Objektově orientované a vizuální programování. Deklarace objektových tříd a jejich využití. Polymorfismus, dědičnost, přetěžování.
Jazyk C++. Základní principy tvorby aplikací pro Windows.
Last update: Vaněk Tomáš (10.08.2016)
Learning resources -
None.
Last update: TAJ409 (07.10.2013)
žádné
Last update: Vaněk Tomáš (02.10.2013)
Entry requirements -
Common knowledge of programming in at least one higher programming language, preferably FORTRAN 77, C, C++ or Pascal. Good knowledge of the Windows operating system environment.
Last update: Vaněk Tomáš (18.09.2007)
Znalost práce v prostředí operačních systémů typu Windows.
Výhodou je znalost programování v některém vyšším programovacím jazyku, přednostně FORTRAN 77/90/95, C, C++, a znalost některé programovací technologie, přednostně strukturovaného a objektového programování.
Last update: Vaněk Tomáš (21.11.2012)
Registration requirements -
None.
Last update: TAJ409 (07.10.2013)
Nejsou.
Last update: TAJ409 (07.10.2013)
Teaching methods
Activity
Credits
Hours
Účast na přednáškách
1
28
Práce na individuálním projektu
1.5
42
Příprava na zkoušku a její absolvování
0.5
15
Účast na seminářích
1
28
4 / 4
113 / 112
Coursework assessment
Form
Significance
Regular attendance
10
Report from individual projects
40
Continuous assessment of study performance and course -credit tests