Skip to main content

Jupyter Lecture Studio

Premium, bilingual teaching components for Jupyter — one design for every course.

Build lectures in Python or JSON: covers, concept slides, execution traces, code comparisons, quizzes, exercises and callouts, plus formulas, charts, neural networks, trees, graphs, memory diagrams and database schemas. Present them in Jupyter, share them as one offline HTML file, project them as a slideshow, or print them as PDF. Arabic and English are both first-class.

python -m pip install "jupyter-lecture-studio[notebook,highlight]"

A lecture in one cell

from jupyter_lecture_studio import LectureDeck

deck = LectureDeck(course="Introduction to Programming", series="CS 101", lesson="03", locale="en")

deck.cover("Loops and iteration", "Repeat work without repeating code.",
           tags=["Understand", "Trace", "Practice"], hero_code=">>> for x in [1, 2]: print(x)")
deck.agenda(["Write a `for` loop over a list", "Trace an **accumulator** step by step"])
deck.slide("A running total", cards=[
    {"title": "The idea", "explanation": "Start with `total = 0`, then add each item.",
     "code": "total = 0\nfor g in grades:\n    total += g"},
], activity={"question": "What is `total` after the loop?", "answer": "The sum of all grades."})
deck.trace("total = 0\nfor g in [70, 80]:\n    total += g", [
    {"line": 1, "variables": {"total": 0}},
    {"line": 3, "variables": {"total": 70, "g": 70}},
    {"line": 3, "variables": {"total": 150, "g": 80}},
])
deck.compare("Resetting inside the loop", "for g in grades:\n    total = 0", "total = 0\nfor g in grades:")
deck.quiz("How many times does `range(3)` loop?", ["2", "3", "4"], answer=1)
deck.recap(["Initialise before the loop", "Trace variables to explain output"])

deck.export("lecture.html")                                # teacher copy
deck.export("lecture-student.html", include_answers=False)  # no answers or solutions
deck.export("lecture-slides.html", present=True)            # slideshow with speaker notes

Why Lecture Studio

Teaching components Cover, agenda/recap, slide, code + output, execution trace, compare, quiz, exercise, callout, figure, divider, note, table
Subject visuals LaTeX formulas ($...$ inline too), arrays with pointers and slices, matrices and confusion matrices, line/bar/scatter charts, neural networks, trees, graphs, memory diagrams and database schemas, drawn as MathML and SVG
Every programming course Built-in highlighting for Python, C, C++, Java, C#, JavaScript, TypeScript, Kotlin, Go, Rust, Dart, Swift, SQL, Bash, R, MATLAB, JSON, HTML and CSS, identical on every machine
Interactive without JavaScript Quizzes grade the chosen answer, traces step through code, answers and hints reveal — in notebooks and offline files
Arabic and English Interface labels and direction follow the locale; layouts mirror; Arabic is never letter-spaced; C++ stays readable in Arabic text
Themes gold, emerald, ocean, violet, ruby and the light paper; every color is a design token; register your institution's theme
Notebook-native Re-running a cell replaces its slide; fonts are sent once (~80% smaller notebooks); identical content gives identical HTML
Share anywhere Single-file offline HTML, student copies, presentation mode (keyboard, fullscreen, notes), PDF
Content as data Every component maps to JSON; deck.save() and LectureDeck.from_file() round-trip; a CLI validates and exports
Extensible Add components, themes and languages; distribute components as plugins via entry points
Safe and dependency-free Text is escaped by default; the core needs only the standard library; typed and tested

Arabic quick start — بداية سريعة

from jupyter_lecture_studio import LectureDeck

deck = LectureDeck(course="الذكاء الاصطناعي", series="AI SERIES", lesson="01")
deck.cover("من البيانات إلى القرار", "نفهم الفكرة من مثال واضح.\nثم نجرّب ونفسّر النتيجة.",
           tags=["افهم", "توقّع", "جرّب"])
deck.slide("الفكرة الأساسية", cards=[
    {"title": "نفهم", "explanation": "نربط المفهوم بخبرة الطالب السابقة."},
    {"title": "نطبّق", "code": "print('Hello')"},
], activity={"question": "ما الناتج المتوقع؟", "answer": "تظهر كلمة Hello؛ اشرح لماذا قبل التنفيذ."})
deck.quiz("ما ناتج `len('AI')`؟", ["1", "2", "3"], answer=1)
deck.export("lecture.html")

اللغة الافتراضية العربية واتجاه الكتابة من اليمين. الخط Cairo للنص وJetBrains Mono للكود مضمّنان ويعملان دون اتصال. إعادة تشغيل الخلية تستبدل شريحتها بدل تكرارها. للنسخة الإنجليزية: locale="en". الدليل العربي الكامل مرفق مع الحزمة: jupyter-lecture-studio docs.

Command line

jupyter-lecture-studio init my-lecture --course "Artificial Intelligence" --locale en
jupyter-lecture-studio validate my-lecture/lecture.json
jupyter-lecture-studio export my-lecture/lecture.json lecture.html --student
jupyter-lecture-studio export my-lecture/lecture.json slides.html --present
jupyter-lecture-studio docs

Extras

Extra Adds
notebook IPython display in Jupyter
highlight Pygments syntax colors for SQL, Java, C++, JavaScript and hundreds more (Python is built in)
pdf Offline PDF export with Chromium (jupyter-lecture-studio setup-pdf)

Documentation

The complete English and Arabic documentation — components, themes, languages, presenting, JSON, API reference, extending and migration — ships with the package and works offline:

jupyter-lecture-studio docs

Compatibility

Python 3.10+. Verified in JupyterLab 4 and modern browsers. from lecture_studio import ..., the lecture-studio command and the LuxurySlideDeck bridge keep working. Upgrading from 0.x keeps the gold design identical; HTML class names now use the ls- prefix (see the migration guide).

License

Library code is MIT. Bundled Cairo and JetBrains Mono fonts are SIL Open Font License 1.1; documentation assets retain their upstream notices. See THIRD_PARTY_NOTICES.md.

Maintained by aoos101 · PyPI project · Contributions welcome: see CONTRIBUTING.md.

Metadata

Release files for jupyter-lecture-studio 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jupyter-lecture-studio 1.0.2
File Size Uploaded Provenance
jupyter_lecture_studio-1.0.2.tar.gz 855.7 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for jupyter-lecture-studio 1.0.2
File Interpreter ABI Platform
jupyter_lecture_studio-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 1.5 MB

Release files / jupyter_lecture_studio-1.0.2.tar.gz

Download URL jupyter_lecture_studio-1.0.2.tar.gz
Size 855.7 kB
Tags Source
SHA-256 checksum
How to use checksums
47a752eae6e145d0f8114783f26ce3326c4f0c79789cd973e0af25f97d842fa0
BLAKE2b-256 checksum
How to use checksums
d3eaf21e24630492bf095622251039967369b984999e4877a0a0144564db8636
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.5

Release files / jupyter_lecture_studio-1.0.2-py3-none-any.whl

Download URL jupyter_lecture_studio-1.0.2-py3-none-any.whl
Size 694.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
09fbe656eb1999bc63f629ee98016505d8587231e8133ae4eb611df1f7746a16
BLAKE2b-256 checksum
How to use checksums
dae912579899e4ae5c2bf6933a7164f59c27d09effedfc552b9c5a4176bba683
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.5

Security for jupyter-lecture-studio 1.0.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page