PB138 Basics of web development and markup languages

Faculty of Informatics
Spring 2024
Extent and Intensity
2/2/0. 3 credit(s) (plus extra credits for completion). Recommended Type of Completion: zk (examination). Other types of completion: z (credit).
Taught in person.
Teacher(s)
prof. RNDr. Tomáš Pitner, Ph.D. (lecturer)
Mgr. Luděk Bártek, Ph.D. (lecturer)
Ing. Lukáš Grolig (lecturer)
Filip Kaštovský (lecturer)
Bc. Daniel Plakinger (lecturer)
Bc. Tomáš Sedláček (lecturer)
Bc. Petr Wehrenberg (lecturer)
Bc. Martin Bednárik (seminar tutor)
Branislav Bubán (seminar tutor)
Bc. Matej Hakoš (seminar tutor)
Bc. Radovan Hančuľák (seminar tutor)
Bc. Otakar Hirš (seminar tutor)
Ondřej Hrdlička (seminar tutor)
Bc. David Konečný (seminar tutor)
Ivan Kushpel (seminar tutor)
Bc. Daniel Múčka (seminar tutor)
Bc. Ondřej Planer (seminar tutor)
Bc. Daniel Puchala (seminar tutor)
Martin Ragan (seminar tutor)
Bc. Daniel Rozehnal (seminar tutor)
Samuel Wittlinger (seminar tutor)
Bc. Adam Zálešák (seminar tutor)
Radmila Čermáková (assistant)
Bc. Marek Mišík (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
Mon 19. 2. to Thu 9. 5. Thu 18:00–19:50 D1
  • Timetable of Seminar Groups:
PB138/01: Tue 18:00–19:50 A319, F. Kaštovský
PB138/02: Mon 16:00–17:50 B311, M. Bednárik
PB138/03: Mon 16:00–17:50 B011, B. Bubán, I. Kushpel
PB138/04: Tue 18:00–19:50 A215, P. Wehrenberg
PB138/05: Mon 10:00–11:50 B311, O. Planer
PB138/06: Wed 16:00–17:50 B130, R. Hančuľák
PB138/07: Mon 18:00–19:50 B311, D. Múčka
PB138/08: Mon 14:00–15:50 A215, M. Hakoš, T. Sedláček
PB138/09: Mon 12:00–13:50 A215, T. Sedláček, A. Zálešák
PB138/10: Wed 18:00–19:50 A218, S. Wittlinger
PB138/11: Tue 10:00–11:50 A319, O. Hrdlička, D. Rozehnal
PB138/12: Wed 10:00–11:50 A215, M. Ragan
PB138/13: Wed 18:00–19:50 A215, D. Konečný, D. Puchala
PB138/14: Tue 14:00–15:50 B311, O. Hirš
PB138/15: Tue 12:00–13:50 A219, 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: 207/200, only registered: 8/200, only registered with preference (fields directly associated with the programme): 7/200
fields of study / plans the course is directly associated with
there are 62 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 five iterations (max. 40 points in total, minimum of 20 points is required), continuous work and presentation/defence of a team project (max. 40 points for the project) and theoretical exam, organized as a ROPOT in the Information System (max. 20 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. 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 2023.
  • Enrolment Statistics (recent)
  • Permalink: https://is.muni.cz/course/fi/spring2024/PB138