* [2 - Guessing Game Tutorial](https://doc.rust-lang.org/book/second-edition/ch02-00-guessing-game-tutorial.html), and
* [2 - Guessing Game Tutorial](https://doc.rust-lang.org/book/second-edition/ch02-00-guessing-game-tutorial.html), and
* [3 - Common Programming Concepts](https://doc.rust-lang.org/book/second-edition/ch03-00-common-programming-concepts.html).
* [3 - Common Programming Concepts](https://doc.rust-lang.org/book/second-edition/ch03-00-common-programming-concepts.html).
* Assignment 1
* Assignment 1
Extend the guessing game application such to give an error message on ill formated input,(use the Restult::Err type). Add a counter to the number of tries and write the number of tries for each iteration and on "winning".
Extend the guessing game application such to give an error message on ill formated input,(use the Restult::Err type). Add a counter to the number of tries and write the number of tries for each iteration and on "winning".
...
@@ -95,8 +93,6 @@ Seminars
...
@@ -95,8 +93,6 @@ Seminars
* Preparation
* Preparation
Solve and be prepared to present Assignment 1.
Solve and be prepared to present Assignment 1.
* Topic
* Topic
Using the Rust ownership model.
Using the Rust ownership model.
...
@@ -113,7 +109,6 @@ Seminars
...
@@ -113,7 +109,6 @@ Seminars
* [8 - Common Collections](https://doc.rust-lang.org/book/second-edition/ch08-00-common-collections.html), and
* [8 - Common Collections](https://doc.rust-lang.org/book/second-edition/ch08-00-common-collections.html), and
a. Extend the guessing game with a tuple holding `(u32, String)`, store each input `(counter, guess)` in a vector. Iterate (`for`) to print the history at exiting.
a. Extend the guessing game with a tuple holding `(u32, String)`, store each input `(counter, guess)` in a vector. Iterate (`for`) to print the history at exiting.
...
@@ -134,11 +129,9 @@ Seminars
...
@@ -134,11 +129,9 @@ Seminars
* Preparation
* Preparation
Finish Assignment 2.
Finish Assignment 2.
* Topic
* Topic
In deapth discussion of underlying theory, linear types (relation to functional programming). The *Affine* type system of Rust, requirements on the programmer, and guarantees offered by the compiler. Lifetimes, of stack allocated and global variables. Relation to C++ `unique pointers`.
In deapth discussion of underlying theory, linear types (relation to functional programming). The *Affine* type system of Rust, requirements on the programmer, and guarantees offered by the compiler. Lifetimes, of stack allocated and global variables. Relation to C++ `unique pointers`.
* Assignment
* Assignment
a. Recall the D0013E course lab2/4, where you decrypted an message in assembler (lab2) and C (lab 4). Now, let's re-implement the lab in Rust (base your development on group number [1's](www.sm.luth.se/csee/courses/smd/D0013E/labs/lab1underlag/grupp_01.lab1_underlag.s ) lab assignment).
a. Recall the D0013E course lab2/4, where you decrypted an message in assembler (lab2) and C (lab 4). Now, let's re-implement the lab in Rust (base your development on group number [1's](www.sm.luth.se/csee/courses/smd/D0013E/labs/lab1underlag/grupp_01.lab1_underlag.s ) lab assignment).
...
@@ -159,7 +152,6 @@ Seminars
...
@@ -159,7 +152,6 @@ Seminars
* Preparation
* Preparation
Finish assignment 3. Bring a USB mini cable.
Finish assignment 3. Bring a USB mini cable.
* Topic
* Topic
Embedded programming in Rust.
Embedded programming in Rust.
...
@@ -170,7 +162,6 @@ Seminars
...
@@ -170,7 +162,6 @@ Seminars
* ([bluepill/nucleo] crates)
* ([bluepill/nucleo] crates)
* Building and debugging your first application.
* Building and debugging your first application.
* Assignment
* Assignment
a. Backport assignment `3b` to your choosen target. Use semihosting in order to `write` the resulting string to the host. You may need to use `--release` for decoding the long (`coded`) message, as being deeply recursive unoptimized code may run out of stack memory.
a. Backport assignment `3b` to your choosen target. Use semihosting in order to `write` the resulting string to the host. You may need to use `--release` for decoding the long (`coded`) message, as being deeply recursive unoptimized code may run out of stack memory.
...
@@ -186,14 +177,12 @@ Seminars
...
@@ -186,14 +177,12 @@ Seminars
* Preparation
* Preparation
Bring a USB mini cable and your dev board. Be prepared to present the progress on assignment 3.
Bring a USB mini cable and your dev board. Be prepared to present the progress on assignment 3.
* Topic
* Topic
Advanced Rust features, trait system and closures.
Advanced Rust features, trait system and closures.
* [10 - Generic Types, Traits, and Lifetimes](https://doc.rust-lang.org/book/second-edition/ch10-00-generics.html), and
* [10 - Generic Types, Traits, and Lifetimes](https://doc.rust-lang.org/book/second-edition/ch10-00-generics.html), and
* [13 - Functional Language Features in Rust](https://doc.rust-lang.org/book/second-edition/ch13-00-functional-features.html).
* [13 - Functional Language Features in Rust](https://doc.rust-lang.org/book/second-edition/ch13-00-functional-features.html).
* Assignment
* Assignment
Continue working on assignment 3.
Continue working on assignment 3.
...
@@ -202,7 +191,6 @@ Seminars
...
@@ -202,7 +191,6 @@ Seminars
* Preparation
* Preparation
* Finish lab 3 and be prepared to show your solution.
* Finish lab 3 and be prepared to show your solution.
* Topic
* Topic
* UnsafeCell, and synchronization in the RTFM model.
* UnsafeCell, and synchronization in the RTFM model.
...
@@ -212,7 +200,6 @@ Seminars
...
@@ -212,7 +200,6 @@ Seminars
* [cortex-m-rtfm](https://github.com/japaric/cortex-m-rtfm) The RTFM-core (task and resource model) in Rust for the Cortex-M family
* [cortex-m-rtfm](https://github.com/japaric/cortex-m-rtfm) The RTFM-core (task and resource model) in Rust for the Cortex-M family