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.1

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.1
File Size Uploaded Provenance
jupyter_lecture_studio-1.0.1.tar.gz 855.1 kB Without provenance Details

Built distribution (wheel)

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

Total release size: 1.5 MB

Release files / jupyter_lecture_studio-1.0.1.tar.gz

Download URL jupyter_lecture_studio-1.0.1.tar.gz
Size 855.1 kB
Tags Source
SHA-256 checksum
How to use checksums
484df71c906b1481cc2d0652faf02116c0ac6af16624e7dba5ccdc9b92c3cf23
BLAKE2b-256 checksum
How to use checksums
117ce2349e191e6e07082fb35f1348381a7a3f1fd661df91ca3bf799e0cc509c
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.1-py3-none-any.whl

Download URL jupyter_lecture_studio-1.0.1-py3-none-any.whl
Size 693.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
95a63178cc8d7fec8b7b6dd04abce5c46526ed4ff6d39704d1a0ed0747f4f184
BLAKE2b-256 checksum
How to use checksums
f1000c59288644e83b744798a34b85f02db907bd8575c5a91c5e8e16e49e1c70
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.1

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