Semester: winter 2021/22
Labs: Monday 9:00 - 10:30, S1 (every two weeks) (Pavel Šimerda)
Page in SIS: NPRG073
Grading: Credit

About

Rust is a modern programming language that comes with extensive safety features built right into the compilation process. It is suitable for safety-critical libraries and industrial applications while providing a relatively friendly way to develop any type of software.

Schedule

Date Content
2021-10-11 Introduction
Example program in Rust - Tools and project structure - How simple things are done - Using libraries
2021-10-25 Basic features
Documentation and best practices - Printing, formatting and debugging - Mutable and imutable variables - Value and reference passing
2021-11-08 Data structures
Structured data types - Algebraic data types - Pattern matching - Error handling
2021-11-22 Object life cycle
Object construction - Builder pattern - Moving, borrowing, copying, cloning - Boxed objects - Memory safety
2021-12-06 Polymorphic programming
Simple templates - Traits and boxes - Practical applications
2021-12-20 Concurrency
Thread safety - Ownership passing - Mutual exclusion
2022-01-03 Conclusion
Questions and answers - Code from students - What next?

Grading

Credit is awarded for reasonable amount of activity in all homework projects. After each lecture, a homework assignment is published in the course upstream repository. The solution must be submitted by the deadline noted in the assignment by pushing it into the individual student repository. Each solution will be assigned 0-10 points, course credit requires a minimum of 60% point average across all assignments.

As an alternative, a reasonably sized individual project can be proposed on an individual basis.