PV281 Programming in Rust

Faculty of Informatics
Autumn 2024
Extent and Intensity
2/2/1. 4 credit(s) (plus extra credits for completion). Type of Completion: k (colloquium).
In-person direct teaching
Teacher(s)
Ing. Lukáš Grolig (lecturer)
Bc. Miloš Hegr (seminar tutor)
Bc. Otakar Hirš (seminar tutor)
Bc. Ondřej Hrdlička (seminar tutor)
Bc. Lukáš Chudíček (seminar tutor)
Mgr. Petr Kadlec (seminar tutor)
Ing. Marek Mišík (seminar tutor)
Bc. Tomáš Sedláček (seminar tutor)
Mgr. Marek Vrbka (seminar tutor)
Ing. Petr Wehrenberg (seminar tutor)
Bc. Stanislav Zeman (seminar tutor)
Bc. Roman Alexander Mariančík (assistant)
Lukáš Vacek (assistant)
Adam Valt (assistant)
Guaranteed by
Ing. Lukáš Grolig
Department of Computer Systems and Communications – Faculty of Informatics
Supplier department: Department of Computer Systems and Communications – Faculty of Informatics
Timetable
Mon 23. 9. to Mon 16. 12. Mon 18:00–19:50 D3
  • Timetable of Seminar Groups:
PV281/01: Wed 25. 9. to Wed 18. 12. Wed 18:00–19:50 B411, P. Wehrenberg
PV281/02: Wed 25. 9. to Wed 20. 11. Wed 18:00–19:50 C511, Wed 27. 11. to Wed 18. 12. Wed 18:00–19:50 S209, M. Mišík
PV281/03: Tue 24. 9. to Tue 17. 12. Tue 12:00–13:50 B204, O. Hrdlička
PV281/04: Tue 24. 9. to Tue 17. 12. Tue 10:00–11:50 C416, M. Vrbka
PV281/05: Wed 25. 9. to Wed 18. 12. Wed 16:00–17:50 A219, P. Kadlec
PV281/06: Mon 23. 9. to Mon 16. 12. Mon 16:00–17:50 A218, L. Chudíček
PV281/07: Tue 24. 9. to Tue 17. 12. Tue 14:00–15:50 B411, M. Hegr
PV281/08: Mon 23. 9. to Mon 16. 12. Mon 14:00–15:50 A215, O. Hirš
Prerequisites
PB006 Princ. of Prog Lang. and OOP
Basic knowledge of databases, REST interfaces, and web application development is also expected - this can be self-studied from the study materials or the interactive syllabus of the PB138 Basics of web development and markup languages course.
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 112 student(s).
Current registration and enrolment status: enrolled: 103/112, only registered: 1/112, only registered with preference (fields directly associated with the programme): 1/112
fields of study / plans the course is directly associated with
Course objectives
The goal of this course is to introduce students to the Rust programming language and the benefits it brings to the system programming or to the development of reliable, secure and efficient services. In addition to the syntax of the language itself, the course will introduce students to the commonly used libraries used in Rust and the best practices for development.
Learning outcomes
Students that pass this course will be able to:
- Utilize the syntax of the Rust programming language.
- Write idiomatic Rust code.
- Understand the benefits of system programming in Rust.
- Use the Rust standard library.
- Familiarize themselves with any rustdoc documentation.
- Use common Rust libraries for developing backend and frontend applications.
Syllabus
  • 1. Language features and benefits, introduction to the ecosystem and tools.
  • 2. Basic syntax, memory management, rudimentary data structures, and the borrow-checker.
  • 3. CLI applications, lifetimes, and error management.
  • 4. I/O, generics, iterators and standard library data structures.
  • 5. Smart pointers, module system, documentation and testing.
  • 6. Parallel and asynchronous programming.
  • 7. Serialization and network programming.
  • 8. Databases and working with datetimes.
  • 9. Web applications, backend, the Actix framework.
  • 10. Web applications, frontend.
  • 11. Desktop applications, the Tauri framework.
  • 12. Hardware.
  • 13. Macros.
Teaching methods
The course takes the form of lectures and practical seminars. Homework is in the form of self-paced programming assignments along with a team project towards the end of the semester.
Assessment methods
Seminar activity, homework assignments and a team project.
Language of instruction
Czech
Further Comments
Study Materials
The course is taught annually.
Teacher's information
https://gitlab.fi.muni.cz/pv281
The course is also listed under the following terms Autumn 2021, Autumn 2022, Autumn 2023.
  • Enrolment Statistics (recent)
  • Permalink: https://is.muni.cz/course/fi/autumn2024/PV281