FI:PB138 Modern markup languages - Course Information
PB138 Modern Markup Languages and Their Applications
Faculty of InformaticsSpring 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/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: 49/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.
- Enrolment Statistics (Spring 2023, recent)
- Permalink: https://is.muni.cz/course/fi/spring2023/PB138