Interactive textbook for Data Science

Excited to share my new project - interactive textbooks for data science. :nerd_face:

After returning back from industry to academia for a PhD, I realized that the way data science is taught is lagging way behind its potential.

So I spent some time brainstorming, exploring Streamlit functionality and existing apps, and decided that this must be the future of education for all things data science and beyond.

My current plan is:
:books: Take these giant PhD textbooks one-by-one
:mag: Summarize key concepts in a cheat sheet style
:bar_chart: Add interactive visualizations
:mortar_board: Make the knowledge accessible to everyone

Let me know your thoughts on my MVP and let’s chat if you’re equally excited about it as I am!

Also, let’s connect on LinkedIn or GitHub.

Thank you,
Justinas

2 Likes

Hi @justgri, your textbooks look great. I see that you have created a textbook (code + content) for each different topic. What if you could think of a way to make your code common and your content different? And you push your (changing) content into the (common) textbook code as required by a student? Just a thought. :slight_smile:

Cheers

1 Like

Hi @Shawn_Pereira,

Thank you for your comment! Just to clarify, are you thinking of a chatbot interface where a student describes the topic and the content is generated automatically? If that’s the case, I actually had thought of it and might try to implement in the future, but it would require quite a bit of engineering to make it seemless and also, might still need to wait for some improvements in LLMs themselves.

Or is your idea a simpler one, to have built-in common code for a chart template and then let students enter their own formulas for visualization? That’s also an interesting route - need to think in what ways that would be different from tools like Desmos or WolframAlpha.

Thanks again.

Hi @justgri,

No, not chatbots.

1.Let’s say your code starts with a blank page. It lists all the available textbooks in the sidebar (because your code scanned all your textbook (content) files in your folder and added it to a list, which it displayed in the sidebar though a radio widget)
2. When you choose a certain textbook (content file, which can be a CSV / json dictionary, etc. that contains all information on how to display your content), your code reads and parses it.
3. During parsing, it reads that you require to get an x-coordinate from the user, it dynamically creates a number input on your screen. Same for the y coordinate. Your content can either specify what graph you want to display basis the x & y coordinates (only if the user has entered both), or it creates a drop down that a user can choose the graph type from
4. And so other content data is read in by your code and the entire textbook is displayed

This way you can create your code (to handle all types of widgets) only once, and the textbook content can be created as time permits and viewed by anyone on demand.

Cheers