Course: Program Structures

« Back
Course title Program Structures
Course code KIV/PGS
Organizational form of instruction Lecture + Tutorial
Level of course Bachelor
Year of study not specified
Semester Summer
Number of ECTS credits 6
Language of instruction Czech
Status of course unspecified
Form of instruction Face-to-face
Work placements This is not an internship
Recommended optional programme components None
Lecturer(s)
  • Cmorej Vlastimil, Ing. Ph.D.
  • Rejšek Václav, Ing.
Course content
1. History of programming languages and typical features. Programming paradigms, description means for syntax and semantics. 2. Programming of concurrent activities - principles and problems. Concurrent programming tools of Java. 3. Thread synchronization, monitors. 4. Tools of the library java.util.concurrent. 5. Scripting languages, introduction into the Python programming language. 6. Python's tools for file processing. 7. Python's tools for XML and DB processing. 8. Logic programming, Prolog. 9. Principles of functional programming. 10. Lisp programming language. 11. Comparison of type systems, statements, and subroutines of modern programming languages. 12. Comparison of object-oriented constructs of the programming languages C, Python, and Java. 13. Principles of programming structures translation.

Learning activities and teaching methods
Lecture with practical applications, Task-based study method
  • Individual project (40) - 40 hours per semester
  • Contact hours - 65 hours per semester
  • Preparation for an examination (30-60) - 50 hours per semester
  • Preparation for formative assessments (2-20) - 20 hours per semester
prerequisite
Knowledge
využívat teoretické poznatky z datových struktur
využívat teoretické poznatky z diskrétní matematiky
prokázat znalosti základních pojmů a metod z matematiky, pravděpodobnosti a statistiky
rozumět principům objektově orientovaného programování v jazyce Java
Skills
správně rozhodnout, kdy použít jakou datovou strukturu
na základní uživatelské úrovni používat některé z běžných vývojových prostředí Javy
sekvenčně programovat v jazyce Java
popsat algoritmy složitější matematické výpočty
Competences
N/A
N/A
N/A
learning outcomes
Knowledge
charakterizovat principy a výhody či nevýhody programování v různých paradigmatech
rozumět možnostem tvorby paralelního programu v jazyce Java
rozumět problémům, které v paralelním programu mohou vzniknout
popsat základní konstrukce pro skriptovací, logické a funkcionální jazyky
Skills
napsat jednoduchý vícevláknový program v jazyce Java
řešit typické problémy při psaní paralelního programu
napsat jednoduché programy ve skriptovacím jazyce, v logickém jazyce a ve funkcionálním jazyce
vybrat vhodný jazyk pro řešení zadaného problému
Competences
N/A
N/A
teaching methods
Knowledge
Interactive lecture
Practicum
Individual study
assessment methods
Written exam
Skills demonstration during practicum
Recommended literature
  • Bieliková, Mária; Návrat, Pavol. Funkcionálne a logické programovanie. Slovenská technická univerzita, 2009. ISBN 978/80/227/3225-3.
  • Harms D., McDonald K. Začínáme programovat v jazyce Python. Computer Press, 2008.
  • Herout, Pavel. Java a XML. České Budějovice, 2007. ISBN 978-80-7232-307-4.
  • Pilgrim, Mark. Ponořme se do Python(u) 3. Edice CZ.NIC, 2010. ISBN 978-80-904248-2-1.
  • Scott, Michael L. Programming Language Pragmatics. Morgan Kaufmann, 2009. ISBN 9780123745149.
  • Sebesta, Robert W. Concepts of Programming Languages. 10. vydání. Addison Wesley, 2012. ISBN 978-0-13-139531-2.
  • Siebel, Peter. Practical Common Lisp. Apress, 2005. ISBN 978-1-59059-239-7.
  • Zakhour, Sharon. Java 6 : výukový kurz. Vyd. 1. Brno : Computer Press, 2007. ISBN 978-80-251-1575-6.


Study plans that include the course
Faculty Study plan (Version) Category of Branch/Specialization Recommended year of study Recommended semester