Semester: winter 2023/24
Labs: Thursday 14:00 - 15:30, S4 (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
2023-10-26 Introduction
Comparison to other languages - Value ownership and move semantics - Value borrowing and references - Mutable references - Tools
2023-11-09 Data structures
Enumerations - Tuples - Arrays - Structures - Pattern matching - Error handling - Chained control flow - Input and output - Debugging - Documentation
2023-11-23 Object ownership and life cycle
Object construction - Builder pattern - Ownership and moving - Copying and cloning - Boxed values - References and lifetimes
2023-12-7
2023-12-14
Polymorphic programming
Simple generics - Enum polymorphics - Trait polymorphism - Dynamic polymorphism
2023-12-21 Concurrency and parallelism
Multithreaded data model - Threads with moved values - Shared immutable data - Shared mutable data - Mutex wrapper - Channels
2024-01-11 Coroutine based multitasking
Asynchronous blocks - Asynchronous functions - Scheduler and communication

Grading

Credit is awarded for homework assignments in ReCodEx graded on a point scale. To pass the course, at least 60% of 60 points is required.

Contact

You are welcome to ask questions both during lectures and online, mail and Discord are the best options.