FI:PV281 Programming in Rust - Course Information
PV281 Programming in Rust
Faculty of InformaticsAutumn 2024
- Extent and Intensity
- 2/2/1. 4 credit(s) (plus extra credits for completion). Type of Completion: k (colloquium).
- Teacher(s)
- Ing. Lukáš Grolig (lecturer)
prof. RNDr. Tomáš Pitner, Ph.D. (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)
Stanislav Zeman (seminar tutor)
Bc. Roman Alexander Mariančík (assistant)
Lukáš Vacek (assistant)
Adam Valt (assistant) - Guaranteed by
- prof. RNDr. Tomáš Pitner, Ph.D.
Department of Computer Systems and Communications – Faculty of Informatics
Supplier department: Department of Computer Systems and Communications – Faculty of Informatics - Timetable
- Mon 16. 9. to Mon 9. 12. Mon 18:00–19:50 D3
- Timetable of Seminar Groups:
PV281/02: Wed 18. 9. to Wed 11. 12. Wed 18:00–19:50 C511, M. Mišík
PV281/03: Tue 17. 9. to Tue 10. 12. Tue 12:00–13:50 B204, O. Hrdlička
PV281/04: Tue 17. 9. to Tue 10. 12. Tue 10:00–11:50 C416, M. Vrbka
PV281/05: Wed 18. 9. to Wed 11. 12. Wed 16:00–17:50 A219, P. Kadlec
PV281/06: Mon 16. 9. to Mon 9. 12. Mon 16:00–17:50 A218, L. Chudíček
PV281/07: Tue 17. 9. to Tue 10. 12. Tue 14:00–15:50 B411, M. Hegr
PV281/08: Mon 16. 9. to Mon 9. 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: 106/112, only registered: 61/112, only registered with preference (fields directly associated with the programme): 8/112 - fields of study / plans the course is directly associated with
- Deployment and operations of software systems (programme FI, N-SWE)
- Design and development of software systems (programme FI, N-SWE)
- 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
- Enrolment Statistics (recent)
- Permalink: https://is.muni.cz/course/fi/autumn2024/PV281