Lorsque vous vous inscrivez à ce cours, vous êtes également inscrit(e) à cette Spécialisation.
Apprenez de nouveaux concepts auprès d'experts du secteur
Acquérez une compréhension de base d'un sujet ou d'un outil
Développez des compétences professionnelles avec des projets pratiques
Obtenez un certificat professionnel partageable
Il y a 10 modules dans ce cours
Build native desktop applications in Rust on Linux. This hands-on course walks you through five GUI frameworks — iced, FLTK, GTK4, relm4, and egui — on Kubuntu, building a portfolio of working applications: a counter, a calculator with unit tests, a to-do list, a Pong game, a password generator, Simon Says, and a quiz app. You will install Rust with rustup, configure Kate as a Rust editor with embedded terminal, and use cargo and clippy to build and lint each project. The course closes with patterns for production: choosing the right framework, persisting state to disk, keeping the UI responsive while data loads, and shipping a binary that runs on every Linux desktop. Every demo is recorded in real time on a Kubuntu 24.04 workstation, so you see the full edit-compile-run loop, including dependency wiring and clippy warnings. By the end, you will have built eight working GUIs in Rust and know which framework to reach for when the browser is the wrong surface.
Frame why a native Rust GUI is the right surface when the browser is the wrong one — offline-first ingestion, microsecond latency, and data that must never leave the machine. Read CSV and query SQLite from a desktop app, plot with egui_plot and plotters, and trace the state-message-update-view loop common to retained-mode frameworks.
Inclus
2 vidéos4 lectures1 devoir
Afficher les informations sur le contenu du module
2 vidéos•Total 4 minutes
Course Introduction•1 minute
Why a Rust Native GUI for Data•3 minutes
4 lectures•Total 40 minutes
Key Terms•10 minutes
Reading CSV and SQLite in a Desktop App•10 minutes
The State, Message, Update, View Loop•10 minutes
Reflection•10 minutes
1 devoir•Total 5 minutes
GUIs for Data Engineering — Why and How•5 minutes
Environment Setup and Iced Hello World
Module 2•1 heure à terminer
Détails du module
Stand up a Kubuntu Rust development environment from scratch — install rustup and the toolchain, switch from Bash to Zsh, and configure Kate with an embedded terminal for tight edit/build cycles. Then implement the iced Sandbox trait to write a Hello World and a counter button that updates state in response to messages.
Inclus
5 vidéos4 lectures1 devoir
Afficher les informations sur le contenu du module
5 vidéos•Total 27 minutes
Installing Rust on Kubuntu•6 minutes
Switching from Bash to Zsh•5 minutes
Configuring Kate for Rust•8 minutes
An iced Hello World•4 minutes
An iced Counter Button•4 minutes
4 lectures•Total 40 minutes
Key Terms•10 minutes
Reflection•10 minutes
Key Terms•10 minutes
Reflection•10 minutes
1 devoir•Total 5 minutes
Environment Setup and iced Hello World•5 minutes
Building an iced Calculator
Module 3•1 heure à terminer
Détails du module
Build a 150-line iced calculator with a state struct, a message enum, and a view function — then add unit tests that exercise the calculator's update logic without launching a window. Walk through the core iced widgets (button, text, column, row, container) and modify each to extend the calculator's behavior.
Inclus
4 vidéos2 lectures
Afficher les informations sur le contenu du module
4 vidéos•Total 17 minutes
Building an iced Calculator•5 minutes
Core iced Components Explained•5 minutes
Unit Testing the Calculator•4 minutes
Modifying Core iced Components•4 minutes
2 lectures•Total 20 minutes
Key Terms•10 minutes
Reflection•10 minutes
An iced To-Do List
Module 4•25 minutes à terminer
Détails du module
Extend the iced patterns from Week 3 into a list-driven application. Back the to-do list with a Vec of TodoItem values in state, wire up the iced text_input widget for new-item entry, and route per-row toggle and delete actions through the message enum so each item mutates independently.
Inclus
1 vidéo2 lectures
Afficher les informations sur le contenu du module
1 vidéo•Total 5 minutes
An iced To-Do List•5 minutes
2 lectures•Total 20 minutes
Key Terms•10 minutes
Reflection•10 minutes
A Pong Game with FLTK
Module 5•1 heure à terminer
Détails du module
Walk through the official FLTK Pong example, then extend it across four iterations: add a pause button that halts the game loop, a slider that varies paddle speed at runtime, and a high-score file written to disk between sessions. Each step is a concrete state-and-message extension to a working game.
Inclus
4 vidéos2 lectures
Afficher les informations sur le contenu du module
4 vidéos•Total 16 minutes
FLTK Pong — Walking the Official Example•4 minutes
Stop and Pause•3 minutes
FLTK Pong Step 3 — Variable Speed•4 minutes
FLTK Pong Step 4 — High Score•4 minutes
2 lectures•Total 20 minutes
Key Terms•10 minutes
Reflection•10 minutes
A Password Generator with GTK4
Module 6•27 minutes à terminer
Détails du module
Build a GTK4 password generator using the gtk4 crate's ApplicationWindow, Entry, and Button widgets, with the rand crate generating random ASCII characters. Add a ToggleButton that flips the Entry's visibility property to mask or reveal the generated password.
Inclus
2 vidéos2 lectures
Afficher les informations sur le contenu du module
Build a Simon Says game with relm4 — a Rust GUI framework that layers an ELM-style Component trait on top of GTK4. Lay out four colored buttons in a 2 by 2 grid, then add a Vec of Color values as the sequence and a playback timer that lights each button in turn before the player has to repeat the pattern.
Inclus
2 vidéos
Afficher les informations sur le contenu du module
2 vidéos•Total 6 minutes
relm4 Simon Says — Foundations•3 minutes
relm4 Simon Says Step 2 — Sequence•3 minutes
A Quiz Application with egui
Module 8•27 minutes à terminer
Détails du module
Build a quiz application in egui — an immediate-mode framework where the entire UI is redrawn every frame from current state. Define a Question struct, run a frame-counted timer that ticks down each draw, and accumulate a score across a multi-question quiz with a restart flow at the end.
Inclus
2 vidéos2 lectures
Afficher les informations sur le contenu du module
2 vidéos•Total 7 minutes
An egui Quiz with a Timer•3 minutes
Multi-Question egui•4 minutes
2 lectures•Total 20 minutes
Key Terms•10 minutes
Reflection•10 minutes
Patterns and Production
Module 9•1 heure à terminer
Détails du module
Compare iced, egui, GTK4, FLTK, and relm4 head-to-head — ergonomics, platform reach, async story, theming. Add provable contracts to GUI state with the assert_invariant macro so impossible UI states fail loudly at runtime, then ship a release with cargo-dist for cross-platform binaries, Flatpak for sandboxed Linux, and AppImage for portable distribution.
Inclus
1 vidéo4 lectures
Afficher les informations sur le contenu du module
1 vidéo•Total 3 minutes
Choosing a Rust GUI Framework•3 minutes
4 lectures•Total 40 minutes
Key Terms•10 minutes
Keeping the UI Responsive While Data Loads•10 minutes
Reflection•10 minutes
Reflection•10 minutes
Capstone — Build and Ship a Rust Desktop Application
Module 10•1 heure à terminer
Détails du module
A culminating practice assignment that synthesizes every framework and pattern from Weeks 1 through 9 into one shippable desktop application.
Inclus
3 lectures1 devoir
Afficher les informations sur le contenu du module
3 lectures•Total 30 minutes
Capstone•10 minutes
Before You Go•10 minutes
Next Steps•10 minutes
1 devoir•Total 15 minutes
Final Graded Quiz•15 minutes
Obtenez un certificat professionnel
Ajoutez ce titre à votre profil LinkedIn, à votre curriculum vitae ou à votre CV. Partagez-le sur les médias sociaux et dans votre évaluation des performances.
Pour quelles raisons les étudiants sur Coursera nous choisissent-ils pour leur carrière ?
Felipe M.
Étudiant(e) depuis 2018
’Pouvoir suivre des cours à mon rythme à été une expérience extraordinaire. Je peux apprendre chaque fois que mon emploi du temps me le permet et en fonction de mon humeur.’
Jennifer J.
Étudiant(e) depuis 2020
’J'ai directement appliqué les concepts et les compétences que j'ai appris de mes cours à un nouveau projet passionnant au travail.’
Larry W.
Étudiant(e) depuis 2021
’Lorsque j'ai besoin de cours sur des sujets que mon université ne propose pas, Coursera est l'un des meilleurs endroits où se rendre.’
Chaitanya A.
’Apprendre, ce n'est pas seulement s'améliorer dans son travail : c'est bien plus que cela. Coursera me permet d'apprendre sans limites.’
When will I have access to the lectures and assignments?
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
What will I get if I subscribe to this Specialization?
When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.
Is financial aid available?
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.