Please note:
On this page you will only see the English-language presentations of the conference. You can find all conference sessions, including the German speaking ones, here.
The times given in the conference program of OOP 2024 correspond to Central European Time (CET).
By clicking on "VORTRAG MERKEN" within the lecture descriptions you can arrange your own schedule. You can view your schedule at any time using the icon in the upper right corner.
Track: C++ and possible Alternatives
- Dienstag
30.01.
How can a deterministic function possibly give random results? We will find out and learn how to use various random number distributions.
Random numbers haven't changed much since C++11, though new features can make these easier to use. Card games and similar need randomness to be fun and make good teaching examples. We will also discover a way to code ourselves (or blobs at least) out of a paper bag in the process.
Target Audience: intermediate. There will be some code and simulations of blobs escaping paper bags
Prerequisites: None but there will be some algorithms and C++
Level: Advanced
Extended Abstract:
Most of us need a random number at some point if we write code. We will discover how they are generated. We will see how to ensure simulating a dice roll makes the numbers 1 to 6 equally likely, and note some pitfalls to be aware of in some programming languages.
We will have a brief aside into stochastic outcomes from deterministic models, also known as chaos. Applying a function iteratively can’t possibly give non-deterministic results, right? We shall see.
After this aside, we will return to using random numbers. We will consider common mistakes and how to think clearly about "random" code. To round off, we will think about how to test code which uses random numbers.
By the end we’ll be familiar with terms like pseudorandom number generator (PRNG), linear congruential generator and random distribution. Finally, we’ll use various distributions to race some blobs out of a paper bag. Seeing a visual demonstration will solidify some the learning outcomes.
Frances Buontempo is currently editor of the ACCU’s Overload magazine and has written two books, one on Genetic Algorithms and Machine Learning and the other on Learning C++ for those who got left behind since C++11. She has worked as a programmer at various companies, mostly in London with a focus on finance. She enjoys testing and deleting code and tries to keep on learning.
Vortrag Teilen
This technical session aims to unravel the unique facets of Rust's memory management, including Ownership/Borrowing, Stack/Heap allocation, Reference Counting, and Lifetimes. Rainer Stropek aims to provide an in-depth understanding of these core elements and their interplay in providing memory safety, concurrency, and abstraction in Rust. This session, designed for developers with a strong programming background, will provide insight into the mechanisms that help Rust minimize common runtime errors.
Target Audience: Developers
Prerequisites: Strong development background
Level: Expert
Extended Abstract:
In the arena of systems programming, memory management is a fundamental concern. How a language approaches memory safety, concurrency, and performance has substantial implications for the efficacy of the programs it produces. Rust's unique approach to these concerns through its intricate yet robust memory management system is the focus of this technical session.
We will explore Rust's ownership rules which hinge on three key concepts: ownership, borrowing, and lifetimes. Rust's Ownership system is unique in its way of maintaining a clear distinction between mutable and immutable references and strictly enforces a single ownership policy to ensure safe memory access. We'll delve into the 'borrow checker' system, which keeps track of scopes to enforce these rules at compile-time, effectively minimizing runtime errors.
Next, we'll look at how Rust deals with memory allocation on the Stack and Heap, providing a safer and more explicit interface to these lower-level details. A clear understanding of these processes allows developers to write efficient, error-free code.
The session also takes an in-depth look at Reference Counting (Rc and Arc), Rust's form of memory management for data that has multiple owners. This approach ensures the automatic cleanup of resources, contributing to Rust's promise of memory safety.
Lastly, we'll dissect Lifetimes, a powerful concept Rust introduces to ensure references are always valid. By defining and enforcing Lifetimes, Rust ensures that memory safety is guaranteed without any cost to runtime performance.
This session is tailored for developers who already have a strong programming background and are considering delving deeper into Rust or are interested in the unique aspects of its memory management.
Mehr Inhalte dieses Speakers? Schaut doch mal bei sigs.de vorbei: https://www.sigs.de/autor/rainer.stropek
Rainer Stropek is co-founder and CEO of the company software architects and has been serving this role since 2008. At software architects Rainer and his team are developing the award-winning SaaS time tracking solution “time cockpit”. Previously, Rainer founded and led two IT consulting firms that worked in the area of developing software solutions based on the Microsoft technology stack.
Rainer is recognized as an expert concerning software development, software architecture, and cloud computing. He has written numerous books and articles on these topics. Additionally, he regularly speaks at conferences, workshops and trainings in Europe and the US. In 2010 Rainer has become one of the first MVPs for the Microsoft Azure platform. In 2015, Rainer also became a Microsoft Regional Director.
Rainer graduated from the Higher Technical School Leonding (AT) for MIS with honors and holds a BSc (Hons) Computer Studies of the University of Derby (UK).
Mehr Inhalte dieses Speakers? Schaut doch mal bei sigs.de vorbei: https://www.sigs.de/experten/rainer-stropek/
Vortrag Teilen