<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>flashcards | Dhafer Malouche</title><link>https://dhafermalouche.net/tag/flashcards/</link><atom:link href="https://dhafermalouche.net/tag/flashcards/index.xml" rel="self" type="application/rss+xml"/><description>flashcards</description><generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><copyright>Dhafer Malouche © 2026</copyright><lastBuildDate>Sun, 23 Aug 2026 00:00:00 +0000</lastBuildDate><image><url>https://dhafermalouche.net/media/icon_hu294da7f24af66942b94b8e240e33fe59_2153342_512x512_fill_lanczos_center_3.png</url><title>flashcards</title><link>https://dhafermalouche.net/tag/flashcards/</link></image><item><title>STAT 481 Revision — Multivariate Analysis</title><link>https://dhafermalouche.net/apps/stat481revision/</link><pubDate>Sun, 23 Aug 2026 00:00:00 +0000</pubDate><guid>https://dhafermalouche.net/apps/stat481revision/</guid><description>&lt;p>An offline-first revision web app (PWA) for &lt;strong>STAT 481 — Multivariate Analysis&lt;/strong>, Qatar University, Fall 2026. It is the multivariate companion to the &lt;a href="https://stat312-revision.netlify.app/" target="_blank" rel="noopener">STAT 312 revision app&lt;/a>, built on the same principle: a student should be able to revise the whole course from a phone, on a plane, with no account and no network.&lt;/p>
&lt;h2 id="content-is-extracted-not-rewritten">Content is extracted, not rewritten&lt;/h2>
&lt;p>The distinguishing feature of this app is that &lt;strong>no content is authored inside it&lt;/strong>. A build-time extractor walks the course&amp;rsquo;s own LaTeX sources and pulls out every definition, theorem, fact, formula, R chunk and exam question. Each item carries the file, the environment and the line it came from, and prints a short stable reference such as &lt;code>L11-fact-01&lt;/code> that resolves straight back to that line in the notes. R output is copied verbatim from the session that produced the notes; a chunk that printed nothing ships without output rather than with invented output.&lt;/p>
&lt;p>An editorial override layer sits on top of the extractor for the cases where the notes need a gloss, and a content-fingerprint identity map keeps item ids stable across re-extraction, so a student&amp;rsquo;s progress survives a rebuild of the bank. A validation gate refuses to deploy on any failure — a broken KaTeX macro fails at build time, with a file and a line, instead of reaching a phone as raw &lt;code>\bSigma&lt;/code>.&lt;/p>
&lt;h2 id="what-the-app-does">What the app does&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Revise by stage.&lt;/strong> The course is divided into seven stages, each with a hand-drawn plate, grouping the lectures into coherent study blocks.&lt;/li>
&lt;li>&lt;strong>Flashcards with spaced repetition.&lt;/strong> A Leitner scheduler drives the review queue, weighted by how near the next assessment is.&lt;/li>
&lt;li>&lt;strong>Formula index.&lt;/strong> Every formula in the course, searchable, rendered with KaTeX at build time.&lt;/li>
&lt;li>&lt;strong>R lab.&lt;/strong> The R snippets of the course with their verbatim output, so the code a student revises is the code that produced the figures in the notes.&lt;/li>
&lt;li>&lt;strong>Timed practice exams.&lt;/strong> Past quizzes and the midterm, gated by date: a paper becomes available the day after it is administered, enforced independently at both the curation and the validation step.&lt;/li>
&lt;li>&lt;strong>Figures.&lt;/strong> The 56 figures of the course, converted from the LaTeX PDFs to whichever of SVG or WebP is smaller over the wire.&lt;/li>
&lt;li>&lt;strong>Progress.&lt;/strong> Per-item and per-stage progress, stored in IndexedDB on the device.&lt;/li>
&lt;/ul>
&lt;h2 id="privacy-and-technical-notes">Privacy and technical notes&lt;/h2>
&lt;p>Nothing leaves the device: no account, no server, no analytics, no third-party request of any kind. Type and mathematics are self-hosted, so the app renders identically offline.&lt;/p>
&lt;p>The build is &lt;strong>Vite + TypeScript&lt;/strong> with &lt;strong>no UI framework at run time&lt;/strong> — a hand-rolled hash router, a small signal store, and template-literal rendering, giving an app shell of about 12 KB gzipped. A hand-written service worker caches the shell and the generated content bank, which is committed and deployed alongside the app because the build host has no access to the course LaTeX repository. Deployed on Netlify.&lt;/p></description></item><item><title>STAT 312 Revision — Stochastic Processes</title><link>https://dhafermalouche.net/apps/stat312revision/</link><pubDate>Wed, 05 Aug 2026 00:00:00 +0000</pubDate><guid>https://dhafermalouche.net/apps/stat312revision/</guid><description>&lt;p>An offline-first revision web app (PWA) for &lt;strong>STAT 312 — Stochastic Processes&lt;/strong>, Qatar University, Fall 2026. It gathers everything a student needs to revise the course into a single installable app that works with no network connection after first load.&lt;/p>
&lt;h2 id="what-the-app-does">What the app does&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Semester timeline.&lt;/strong> A live countdown to each quiz and to the midterm, and a 14-week timeline of the syllabus with the assignment and quiz milestones marked on each week.&lt;/li>
&lt;li>&lt;strong>Revise by stage.&lt;/strong> Per-stage revision hubs that group the material of the course into focused study units, each linking out to the relevant flashcards, worked examples, and formulas.&lt;/li>
&lt;li>&lt;strong>Flashcards.&lt;/strong> A spaced-repetition flashcard deck for the definitions, theorems, and key results of the course.&lt;/li>
&lt;li>&lt;strong>Practice quizzes.&lt;/strong> An interactive quiz engine built from the Fall 2026 sample quizzes and practice material, with instant feedback and worked solutions.&lt;/li>
&lt;li>&lt;strong>Formula sheet.&lt;/strong> A searchable, KaTeX-rendered formula sheet covering the whole course.&lt;/li>
&lt;li>&lt;strong>Worked examples &amp;amp; FAQ.&lt;/strong> Step-by-step solved problems and answers to the questions students ask most often.&lt;/li>
&lt;/ul>
&lt;h2 id="technical-notes">Technical notes&lt;/h2>
&lt;p>The app is a fully static, backend-free Progressive Web App built with vanilla HTML/CSS/JS (ES modules) — no framework and no build step. Mathematics is rendered with &lt;strong>KaTeX&lt;/strong>, self-hosted so it renders offline. A service worker caches the app shell and all content, so the whole app (about 1 MB) installs on a student&amp;rsquo;s phone and works completely offline. It follows the Qatar University maroon (&lt;code>#8A1538&lt;/code>) visual identity, is mobile-first with light and dark modes, and stores all student progress locally in the browser — no accounts and no data leaving the device. The static bundle is deployed on Netlify.&lt;/p></description></item></channel></rss>