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 5 modules dans ce cours
TUI from Zero teaches you to build a pure-Rust terminal-UI framework from first principles to a working ptop-mini process monitor. Across five modules, you'll learn the wire format of a terminal — cells, ANSI escape sequences, Unicode block elements, and Braille code points — and how CellBuffer and DiffRenderer turn those primitives into a zero-allocation steady state. You'll master the Elm-style init/update/view shape, composite layout with Container/Row/Column, the .prs declarative scene format, and probar snapshot testing so every render byte is deterministic in CI.
The capstone is ptop-mini, a Rust process monitor whose production binary swaps a Snapshot fixture for a live /proc reader without changing one line of the view function. Every widget is gated by a YAML contract and a probar snapshot test, so the framework you build is provable, not merely working. You should be comfortable with intermediate Rust — ownership and borrowing, traits and generics, Result and the ? operator. No prior terminal-UI experience is required.
Build the rendering core of a Rust TUI from first principles. Learn how a terminal is a 2D grid of cells, how double-width Unicode is kept safe, why ANSI escape sequences are the wire format, and how CellBuffer and the Widget trait give you one paint(rect) method that composes everything else.
Inclus
6 vidéos6 lectures
Afficher les informations sur le contenu du module
6 vidéos•Total 10 minutes
1.1.1 The Terminal Is A Grid•2 minutes
1.1.2 Presentar Cellbuffer•2 minutes
1.1.3 Diffrenderer Emits Only Changes•2 minutes
1.2.1 The Widget Trait•2 minutes
1.2.2 Container Row Column•2 minutes
1.2.3 Block And Label•1 minute
6 lectures•Total 51 minutes
About This Course•10 minutes
Key Terms: The Terminal Is a Grid of Cells•10 minutes
ELI5 Pixel Graphics•1 minute
Reflection: The Terminal Is a Grid of Cells•10 minutes
Key Terms: The Widget Trait — One Method, paint(rect)•10 minutes
Reflection: The Widget Trait — One Method, paint(rect)•10 minutes
React — Elm-style Event Loop
Module 2•1 heure à terminer
Détails du module
Wire user input to state through the Elm Architecture's three pure functions: init, update, and view. Model the counter app as a struct, define Msg as an exhaustive enum, and run crossterm's poll/read loop with raw mode. Map every KeyEvent through a total dispatch function so update never sees noise, and exit cleanly on Esc, Ctrl-C, or q.
Inclus
6 vidéos4 lectures
Afficher les informations sur le contenu du module
6 vidéos•Total 9 minutes
2.1.1 Init Update View•2 minutes
2.1.2 Counter App•1 minute
2.1.3 Replay Determinism•1 minute
2.2.1 Crossterm Event Loop•2 minutes
2.2.2 Keyevent To Msg•2 minutes
2.2.3 Ctrl C And Quit•1 minute
4 lectures•Total 40 minutes
Key Terms: init / update / view — the Elm Shape•10 minutes
Reflection: init / update / view — the Elm Shape•10 minutes
Key Terms: crossterm's Event Loop•10 minutes
Reflection: crossterm's Event Loop•10 minutes
Compose — Widgets in Anger
Module 3•1 heure à terminer
Détails du module
Compose widgets that do real work — Sparklines from eight Unicode block glyphs, BrailleGraphs at 4x resolution, a CpuGrid that wraps one cell per core, a ProcessTable that scrolls, and a MemoryBar that fills. Each widget is one paint(rect) call; together they form a live system-monitor TUI.
Inclus
6 vidéos4 lectures
Afficher les informations sur le contenu du module
Move from imperative paint calls to declarative scenes. Write .prs files that describe layout, then watch a 200-line recursive-descent compiler reconcile them against your widgets. Lock the look with probar snapshot tests — stringified CellBuffers, inline or file-backed goldens, byte-identical between runs, all running in CI without a TTY.
Inclus
6 vidéos4 lectures
Afficher les informations sur le contenu du module
6 vidéos•Total 9 minutes
4.1.1 Why Declarative TUI•1 minute
4.1.2 Prs Format•1 minute
4.1.3 Compile To Widget Tree•1 minute
4.2.1 Snapshot As String•2 minutes
4.2.2 Golden Diff•2 minutes
4.2.3 Probar Pattern•2 minutes
4 lectures•Total 40 minutes
Key Terms: Declarative TUI and the .prs Format•10 minutes
Reflection: YAML Scenes and the .prs Compiler•10 minutes
Key Terms: Snapshot Testing with probar•10 minutes
Reflection: probar Snapshot Testing•10 minutes
Untitled Module
Module 5•2 heures à terminer
Détails du module
Bring everything together: a deterministic Snapshot fixture feeds a single pure view that composes CpuGrid, Sparkline, MemoryBar, and ProcessTable into one ptop-mini dashboard, then swap the fixture for a /proc reader to run the same view live.
Inclus
4 vidéos6 lectures1 devoir
Afficher les informations sur le contenu du module
4 vidéos•Total 9 minutes
Snapshot Fixture•1 minute
View Composes•1 minute
Live Loop vs CI•2 minutes
Demo ptop-mini•4 minutes
6 lectures•Total 60 minutes
Key Terms: The ptop-mini Snapshot Fixture•10 minutes
Reflection: The ptop-mini Snapshot Fixture•10 minutes
Key Terms: ptop-mini Demo over /proc•10 minutes
Reflection: ptop-mini Demo over /proc•10 minutes
Before You Go•10 minutes
Next Steps•10 minutes
1 devoir•Total 30 minutes
Final Graded Quiz — TUI from Zero•30 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.