00:51 🔍 Understanding Rust goes beyond simple questions; difficult scenarios challenge true comprehension. 02:09 📊 Gathering fine-grained data on learners' struggles with Rust through quiz questions helps pinpoint specific areas for improvement. 04:28 🎓 Identifying easy and hard parts of the Rust book enables targeted interventions to enhance learning outcomes. 09:34 🛠 Interventions in the Rust book significantly improved learners' accuracy on targeted questions, demonstrating the effectiveness of a scientific approach. 14:42 🧠 Understanding complex Rust concepts like ownership requires a solid foundation in memory management and runtime behavior. 22:43 📚 Developing alternative pedagogy with visualizations in the Rust book enhances learners' understanding of ownership, borrow checking, and system states. 23:11 📈 Scientific evaluation reveals that the permissions pedagogy enhances understanding of ownership in Rust. 25:41 🎓 Combining science and art, the pedagogical improvements in Rust learning materials demonstrate positive outcomes, although interpretation requires nuance. 26:52 🧠 Quizzes in the Rust book have been highly successful, offering readers valuable learning experiences and providing crucial data for understanding the language's learning curve.
@19:10 it would make it clearer if the Heap in L2 and L3 was lower, representing the new address in memory that was allocated, perhaps leaving num pointed at the blank space above. Great talk by the way, as a learner of Rust as the first language, i appreciate the effort.
@@supervaka9584 I started with Python 20 years ago, and that gave me something of a basis for understanding what I am learning as a I learn Rust. That said, Rust could be a great first language if The Book and other resources are changed to introduce systems programming.
Great talk. There is a lot of mixup between percent and percentage points. If the baseline is 2% and the improved score is 4% the increase is not 2% (but 2%pt) or 100%. From 47% to 56% is 19% increase or 9%pt.
Honestly on the first struct/impl part I was assuming it was going to be some overwrite/hoisting type trick but it was simpler in that it just tells you to stop doing stupid things haha.
The second example does not compile if you desugar the indexing into calls to `index` and `index_mut`. So some of those 33% are probably just not realizing the array index syntax gets special treatment.
That's not true. After desugaring into: **v2.index_mut(0) = 5; let a = **v2.index(0); let b = *v.index(0); It'll all work exactly the same, compiling just fine, and printing "5 5". The reason it works is because of non-lexical lifetimes. Because v2 isn't used after the statement let a = *v2[0];. For example, if you were to add println!("{v2:?}"); at the end of the method, it would no longer compile, because v2 is still used. The only "special" thing about array syntax sugar is that it implicitly dereferences the result of invoking the Index::index, and IndexMut::index_mut methods.
Another wonderful talk, I was not aware of this resource but now that I do I will give it a go. My experience with Rustlings was amazing and Test driven development was really new experience for me to try out. It was practical and theoretical in the same time.
00:51 🔍 Understanding Rust goes beyond simple questions; difficult scenarios challenge true comprehension.
02:09 📊 Gathering fine-grained data on learners' struggles with Rust through quiz questions helps pinpoint specific areas for improvement.
04:28 🎓 Identifying easy and hard parts of the Rust book enables targeted interventions to enhance learning outcomes.
09:34 🛠 Interventions in the Rust book significantly improved learners' accuracy on targeted questions, demonstrating the effectiveness of a scientific approach.
14:42 🧠 Understanding complex Rust concepts like ownership requires a solid foundation in memory management and runtime behavior.
22:43 📚 Developing alternative pedagogy with visualizations in the Rust book enhances learners' understanding of ownership, borrow checking, and system states.
23:11 📈 Scientific evaluation reveals that the permissions pedagogy enhances understanding of ownership in Rust.
25:41 🎓 Combining science and art, the pedagogical improvements in Rust learning materials demonstrate positive outcomes, although interpretation requires nuance.
26:52 🧠 Quizzes in the Rust book have been highly successful, offering readers valuable learning experiences and providing crucial data for understanding the language's learning curve.
As a rust learner I appreciate the effort of improving the learning material in such a thoughtful way 👏
@19:10 it would make it clearer if the Heap in L2 and L3 was lower, representing the new address in memory that was allocated, perhaps leaving num pointed at the blank space above. Great talk by the way, as a learner of Rust as the first language, i appreciate the effort.
rust is your first programming language?
I like rust too but I think the vast majority of people should start with python or javascript.
@@supervaka9584 I started with Python 20 years ago, and that gave me something of a basis for understanding what I am learning as a I learn Rust. That said, Rust could be a great first language if The Book and other resources are changed to introduce systems programming.
Great talk. There is a lot of mixup between percent and percentage points. If the baseline is 2% and the improved score is 4% the increase is not 2% (but 2%pt) or 100%. From 47% to 56% is 19% increase or 9%pt.
Honestly on the first struct/impl part I was assuming it was going to be some overwrite/hoisting type trick but it was simpler in that it just tells you to stop doing stupid things haha.
21:11 single most important statement of the whole talk? (which is excellent in its entirety)
The second example does not compile if you desugar the indexing into calls to `index` and `index_mut`. So some of those 33% are probably just not realizing the array index syntax gets special treatment.
That's not true. After desugaring into:
**v2.index_mut(0) = 5;
let a = **v2.index(0);
let b = *v.index(0);
It'll all work exactly the same, compiling just fine, and printing "5 5".
The reason it works is because of non-lexical lifetimes. Because v2 isn't used after the statement let a = *v2[0];. For example, if you were to add println!("{v2:?}"); at the end of the method, it would no longer compile, because v2 is still used.
The only "special" thing about array syntax sugar is that it implicitly dereferences the result of invoking the Index::index, and IndexMut::index_mut methods.
great talk!
Another wonderful talk, I was not aware of this resource but now that I do I will give it a go. My experience with Rustlings was amazing and Test driven development was really new experience for me to try out. It was practical and theoretical in the same time.
Are the slides available somewhere?
This needs to be the way we teah all computer science subjects, in all languages
Great work 👍
fantastic talk!
🦾