PB138 Modern Markup Languages and Their Applications

Faculty of Informatics
Spring 2023
Extent and Intensity
2/2. 3 credit(s) (plus extra credits for completion). Recommended Type of Completion: zk (examination). Other types of completion: z (credit).
Teacher(s)
prof. RNDr. Tomáš Pitner, Ph.D. (lecturer)
Mgr. Luděk Bártek, Ph.D. (lecturer)
Ing. Lukáš Grolig (lecturer)
Ing. Jakub Oršula (lecturer)
Bc. Tomáš Sedláček (lecturer)
Bc. Radovan Hančuľák (seminar tutor)
Bc. Ondřej Hrdlička (seminar tutor)
Filip Kaštovský (seminar tutor)
Bc. David Konečný (seminar tutor)
Ing. Marek Mišík (seminar tutor)
Bc. Daniel Múčka (seminar tutor)
Bc. Daniel Puchala (seminar tutor)
Martin Ragan (seminar tutor)
Bc. Martin Šepeľa (seminar tutor)
Ing. Jakub Vanko (seminar tutor)
Ing. Petr Wehrenberg (seminar tutor)
Radmila Čermáková (assistant)
Ing. Milan Kubík (assistant)
Bc. Juraj Marcin (assistant)
Bc. Katarína Pitoňáková (assistant)
Bc. Ondřej Planer (assistant)
Bc. Róbert Zvara (assistant)
Guaranteed by
prof. RNDr. Tomáš Pitner, Ph.D.
Department of Computer Systems and Communications – Faculty of Informatics
Contact Person: prof. RNDr. Tomáš Pitner, Ph.D.
Supplier department: Department of Computer Systems and Communications – Faculty of Informatics
Timetable
Thu 16. 2. to Thu 11. 5. Thu 8:00–9:50 D1
  • Timetable of Seminar Groups:
PB138/01: Thu 16. 2. to Thu 11. 5. Thu 16:00–17:50 C511, R. Hančuľák, T. Sedláček
PB138/02: Thu 16. 2. to Thu 11. 5. Thu 18:00–19:50 B011, R. Hančuľák, T. Sedláček
PB138/03: Tue 14. 2. to Tue 9. 5. Tue 16:00–17:50 B204, O. Hrdlička
PB138/04: Tue 14. 2. to Wed 10. 5. Tue 18:00–19:50 A218, O. Hrdlička
PB138/05: Thu 16. 2. to Thu 11. 5. Thu 10:00–11:50 A215, J. Vanko
PB138/06: Wed 15. 2. to Wed 10. 5. Wed 10:00–11:50 B311, M. Šepeľa
PB138/07: Tue 14. 2. to Tue 9. 5. Tue 12:00–13:50 A215, M. Ragan
PB138/08: Thu 16. 2. to Thu 11. 5. Thu 12:00–13:50 A319, D. Puchala
PB138/09: Wed 15. 2. to Wed 10. 5. Wed 18:00–19:50 B410, F. Kaštovský
PB138/10: Wed 15. 2. to Wed 10. 5. Wed 14:00–15:50 A215, D. Konečný
PB138/11: Thu 16. 2. to Thu 11. 5. Thu 14:00–15:50 A217, M. Mišík, D. Múčka
PB138/12: Mon 13. 2. to Mon 15. 5. Mon 18:00–19:50 B411, P. Wehrenberg
PB138/13: Tue 14. 2. to Tue 9. 5. Tue 14:00–15:50 A219, L. Bártek
PB138/14: Mon 13. 2. to Mon 15. 5. Mon 10:00–11:50 B011, L. Bártek
Prerequisites
Basic knowledge of formal languages and some experience in OO programming, such as in Java, C++, C# or ECMAScript, as well as experience with a functional programming language, such as Haskell, and basic knowledge of database systems (SQL, DBMS) is required. Moreover, basic orientation in a markup language (HTML) and Internet services is also required.
Course Enrolment Limitations
The course is also offered to the students of the fields other than those the course is directly associated with.
The capacity limit for the course is 200 student(s).
Current registration and enrolment status: enrolled: 56/200, only registered: 0/200, only registered with preference (fields directly associated with the programme): 0/200
fields of study / plans the course is directly associated with
there are 59 fields of study the course is directly associated with, display
Course objectives
The subject acquaints students with basic standards and principles of working with technologies of modern markup languages mainly based on XML, HTML and YAML. Students will also learn about data representation in JSON format. Upon successful completion of this course, students will create modern applications written in TypeScript using React and modern markup languages that retrieve data from the backend using REST interfaces or GraphQL.
Learning outcomes
Students will be able to:
Explain the advantages, disadvantages and purpose of tagged data and documents
Actively use the terminology of markup languages
Choose the appropriate markup language for the application
Actively use XML
Describe the characteristics of Internet technologies such as HTML 5, JavaScript, React, JSON, GraphQL and other modern web standards and use them in real applications
Describe the principles of Single Page applications
Syllabus
  • Structure and terminology of marked documents. XML: standards, analysis and processing of XML documents.
  • Document Object Model, Event-Driven XML processing, navigating and querying XML data with XPath, XML Transformations.
  • HTML documents, HTML 5 standard and modern web page markup.
  • CSS: styling, layouts and responsive web design.
  • Basics of modern JavaScript and TypeScript applications, Node.js ecosystem, dependency management via NPM.
  • JSON: syntax, data types, fields, and data objects. Working with databases in TypeScript, principles and implementation of REST APIs in TypeScript.
  • GraphQL: schema, queries, mutations, types, validation.
  • React: JSX/TSX markup language, React component definition and composition, component lifecycle, app state, list processing.
  • React: forms processing and validation, fetching data from REST APIs.
  • React: routing, react-query and client-side mutations.
  • React: State management, global state, reducers.
  • YAML: syntax and use-case. Docker: containerization and application deployment.
Teaching methods
The course is split into lectures, seminars, and individual work on iterations and team projects. The lecture presents terms and principles from markup languages and modern web development. Seminars in computer schoolrooms demonstrate correct procedures and tools for developing modern applications and solving demo assignments similar to iterations. They also serve as a platform for students to consult iteration assignments and team project solutions.
Assessment methods
Course evaluation is based on continuous evaluation of eleven iterations (max. 33 points in total), continuous work and presentation/defence of a team project (max. 42 points for the project) and theoretical exam, organized as a ROPOT in the Information System (max. 25 points). Students must score at least 70 out of 100 points to pass the subject if they choose the "exam" course completion. To pass the subject with "credit" course completion, 60 out of 100 points are necessary. Seminar attendance is mandatory and is checked by weekly ROPOTs, which can provide extra 5.2 points. With "exam" course completion, these points count towards a better grade after achieving at least 70 points from iterations, team project, and exam. With "credit" course completion, these points count as regular points towards the 60 out of 100 points goal. To meet the 60 out of 100 points goal, students with "credit" course completion can also attend the exam.
Language of instruction
Czech
Follow-Up Courses
Further comments (probably available only in Czech)
Study Materials
The course is taught annually.
Listed among pre-requisites of other courses
Teacher's information
The subject requires substantial work beyond seminars while learning the used technologies, their specifications and other learning sources. Most of the course materials, as well as the Interactive syllabus, are written in English. Evaluation of iterations in the form of code reviews also increases this subject's time/effort load.
The course is also listed under the following terms Spring 2003, Spring 2004, Spring 2005, Spring 2006, Spring 2007, Spring 2008, Spring 2009, Spring 2010, Spring 2011, Spring 2012, Spring 2013, Spring 2014, Spring 2015, Spring 2016, Spring 2017, Spring 2018, Spring 2019, Spring 2020, Spring 2021, Spring 2022, Spring 2024, Spring 2025.
  • Enrolment Statistics (Spring 2023, recent)
  • Permalink: https://is.muni.cz/course/fi/spring2023/PB138