Firas Moosvi- Teaching an Active Learning class with Jupyter Book| JupyterCon 2020

JupyterCon · Intermediate ·🍎 Teaching & Learning Design ·5y ago

Key Takeaways

Teaches an active learning class using Jupyter Book

Full Transcript

hello welcome to jupitercon 2020. this talk is about teaching an active learning class with jupiter book let's get started a little bit about myself my name is ferraz moosvy i'm currently a lecturer in the cmps department at the university of british columbia on the okanagan campus i wanted to introduce you to the jupiter book project so jupiter book project is something that i've been using for the past few months when teachings went online and i was struggling to find a way to give my students a coherent and linear outline of what to do when when teaching my courses typically i like to teach my courses with an active learning strategy where that's learner centered and i try to make sure that there's enough activities inside the lecture to keep students engaged and also to have them engaged with the material at a deeper level during class and then before class they do all the pre-readings or the lecture video watches lecture video watching that they need to do so i was struggling with a way with my current learning management system to just figure out that structure for the students and so i've discovered the uh the jupiter book project which allows me to use notebook files and just plain md files and then version control them so that i can reuse it for future courses and also remember what i did last year so the jupiter book project has uh three main features uh the interface has three main features on the left hand side is the essentially the chapters of the textbook and you can break them up into different parts so this is a get started part this is the right book part make your book interactive so this is the table of contents of the entire book okay so this stays with you wherever you go in the book so if you let's say i want to go to references and citations you click on that link this table of contents stays with you you can collapse it by using this button here and then expand it again using the hamburger buttons on the right hand side you'll see the right sidebar which contains the headers for the current open page and each of these pages are built either using jupyter notebook files or just raw md files and you can access that by clicking on this page here this this git octocats logo click suggest edit and that will take you right to that md file that exists where you can edit it on your own jupyter book all right so let's take you to an example that i had for one of my classes this is for physics 111 the first thing i did was i had to create a syllabus that conformed to my university's guidelines so i had all sorts of information on the syllabus a message for mayans from the instructor a way to contact the teaching team learning outcomes for the course what they need to purchase for the course etc once you have your syllabus or any web text you can use popular tools like hypothesis to highlight and annotate your text and i actually applied this on my syllabus for uh for physics so i've got a bunch of annotations here from a bunch of students who've had questions about my syllabus and this is the popular annotate your syllabus movement so if i click introduction to python you'll see that i've got a video here embedded using an iframe from dr mike gelbart of university of vancouver who teaches in the master of data science program these are fantastic lectures that are that he posts completely open source and also there's associated with it notebooks that exist and the notebooks take you through everything you need to know about how to get started with python for data science um and the cool cool part about this is that these notebooks are actually runnable cells in a browser so there's no need for environments and setting up these setting up python on your computer or r on your computer you can just get started with a notebook get students motivated and interested in the content that you're teaching them and then work on setting them up locally on their computer later so in this particular case i have this cell that has x equals 42 i can change that to x equals 45 and then print out x and then i get the output there so this is a very important feature for me to get students that are just starting out with python or are interested and get get them you know right into coding on day one without having to spend a whole week setting up their environments that part is necessary and it does come but i can defer that to later and initially just get them started with coding right away so that's the first example i wanted to show the second example is let's say you're teaching something like platforms where you want to have where you have typical slide um typical slides and so this again this is a jupiter notebook that you can go through in class but it turns it ends up being quite text heavy so with the addition of a plug-in actually called jupiter rise by damien great project by the way it's fantastic clicking on this button here allows me to present this notebook as a series of slides so this is actually a really really cool feature of jupyter notebooks as an extension actually and now i can actually present this material bullet by bullet segment by segment and i can you know do all sorts of things like draw on my on my screen here or i can have just a a whiteboard that just clears everything and then i can draw on there so it's a really neat set of tools that exist that allow me to present notebooks as slides i can actually have embedded polls in my in my notebook so i can this question is from the 2020 stack overflow developer survey i asked my students what the most loved programming languages and most of them guessed python incorrectly but it was actually rust so when when they vote on these slides i can present this this view for them with just a question and then when when they submit their answer they can see what the result is from this from uh from from what their classmates believe on to the next example the next example is let's say you're teaching something that's a little bit more run-of-the-mill more traditional let's say something like microsoft excel and it doesn't lend itself well to be taught from notebooks well then you have your slides your pdf or your powerpoint or keynote slides and you can also embed those into a jupyter notebook or and then just go through them as you would normally each week i give them a summary of what they have to do that week i give them an introductory video for instance i want to explain to them the main concepts of the course this week and then what they need for the homework what they need for the test et cetera there i also assign them specific videos that are sort of smaller in length and these videos are from jonathan palmer of flipping physics and also from crash course physics these are several physics videos that are really really quite excellent in terms of their quality we have these sphinx panels that are drop downs that allow students to click on the ones that they want to watch watch the video and then once they're done close them up and go to the next one and on the sidebar here you've got some check boxes here that essentially are a way for them to keep track of what uh which videos they've already watched and which videos they still need to keep going i'm not a chemistry teacher myself however this idea of embedding videos is very transferable you can also have these phet simulations that allow you to interact with molecules and then essentially explore different uh you know different configurations of these molecules and and this is kind of you know these exist for biology for chemistry for all sorts of sciences and these are really really great uh really really great simulations that you can use to give students again a way to interact with the material at a deeper level in addition to that you can also draw molecules with marvin js which is an online chemistry drawing tool where you can ask all sorts of detailed questions about this what happens when i add an oh here what happens when i add another oh here and things like that so that sort of you can build questions around these these marvin js chemistry draw structures so you can imagine how useful this would be for for a lab or a class that's run online or even in person when you want to do a demo in class of how things work you want this interactivity to exist that is a quick tour of the jupiter book project as far as it applies for active learning in teaching i've got lots of stuff here that you're welcome to to explore the best part about this is that if you actually want to to try this out it's really easy i've created a template that just with a click a button you can with a click of a button you can just create your own site within you know a couple of minutes so here's my chrome window i go to github.com i'm now logged into my demo account and i've got this short link that i can give you uh so jb underscore course and this gets this takes you to my jupiter book course template there's some directions and uses instructions on how you want to do it but essentially it's very simple you clicked use this template you give your new repository a name let's call it new course 101 you make it public and it's important to check this box here include all branches to access your website you just need to go to the settings and then scroll down to github pages and then your site is and it'll tell you that your site is published all right thank you everybody for listening as promised i've got the links for how to get to the course template as well as some of my actively ongoing courses where you can check out see how i'm using jupiter book in my lab classes this year i look forward to seeing some of you on twitter bye

Original Description

Brief Summary "Jupyter Book is an open source project for building beautiful, publication-quality books and documents from computational material." This has opened up a whole world of possibilities for educators not just in computational sciences, but in any learning context. In this talk, I will share how Jupyter Book can be used to teach several university classes at the UBC Okanagan. Outline Jupyter Book may be considered the central place where many other learning tools can be integrated so students seamlessly transition between reading notes, doing exercises, and participating in instructor-led interactive activities. Specific examples and lesson plans from physics and data science will be discussed, as well as a few general applications to facilitate active learning in other disciplines. No prior knowledge of Jupyter Book will be required, but passing familiarity with Jupyter Notebooks and Markdown files may be helpful. The ideal audience for this talk are educators at almost any level, learning designers, developers of open education resources, and academic support staff at institutions of higher learning. Contributors to the Jupyter ecosystem may also find this talk interesting as it will present a range of use-cases and application, as well as a (short) list of things that would make it even more valuable. I have also prepared a Jupyter Book repository template that allows instructors to easily adopt Jupyter Book for teaching. The structure of the talk will be mostly interactive demos of the capabilities for Jupyter Book as a teaching tool! ---- JupyterCon brings together data scientists, business analysts, researchers, educators, developers, core Project contributors, and tool creators for in-depth training, insightful keynotes, networking, and practical talks exploring the Project Jupyter ecosystem. https://jupytercon.com/ JupyterCon is possible thanks to the generous support of our sponsors, and the labor of many volunteer organizers. https://
Watch on YouTube ↗ (saves to browser)
Sign in to unlock AI tutor explanation · ⚡30

Playlist

Uploads from JupyterCon · JupyterCon · 23 of 60

1 Interview   Joshua Patterson NVIDIA
Interview Joshua Patterson NVIDIA
JupyterCon
2 Dave Stuart - Jupyter as an Enterprise “Do It Yourself” (DIY) Analytic Platform | JupyterCon 2020
Dave Stuart - Jupyter as an Enterprise “Do It Yourself” (DIY) Analytic Platform | JupyterCon 2020
JupyterCon
3 Jeffrey Mew - Supercharge your Data Science workflow | JupyterCon 2020
Jeffrey Mew - Supercharge your Data Science workflow | JupyterCon 2020
JupyterCon
4 Michelle Ufford- Supercharging SQL Users with Jupyter Notebooks | JupyterCon 2020
Michelle Ufford- Supercharging SQL Users with Jupyter Notebooks | JupyterCon 2020
JupyterCon
5 Alan Yu - What we learned from introducing Jupyter Notebooks to the SQL community  | JupyterCon 2020
Alan Yu - What we learned from introducing Jupyter Notebooks to the SQL community | JupyterCon 2020
JupyterCon
6 Chris Holdgraf- 2i2c: sustaining open source through hosted Jupyter infrastructure | JupyterCon 2020
Chris Holdgraf- 2i2c: sustaining open source through hosted Jupyter infrastructure | JupyterCon 2020
JupyterCon
7 Yiwen Li - Intro to Elyra - an AI centric extension for JupyterLab | JupyterCon 2020
Yiwen Li - Intro to Elyra - an AI centric extension for JupyterLab | JupyterCon 2020
JupyterCon
8 Luciano Resende - What's new on Elyra - A set of AI centric JupyterLab extensions | JupyterCon 2020
Luciano Resende - What's new on Elyra - A set of AI centric JupyterLab extensions | JupyterCon 2020
JupyterCon
9 Alan Chin - Explore and Extend AI Pipeline Runtimes with Elyra and JupyterLab | JupyterCon 2020
Alan Chin - Explore and Extend AI Pipeline Runtimes with Elyra and JupyterLab | JupyterCon 2020
JupyterCon
10 Eduardo Blancas- Streamline your Data Science projects with Ploomber | JupyterCon 2020
Eduardo Blancas- Streamline your Data Science projects with Ploomber | JupyterCon 2020
JupyterCon
11 Thorin Tabor - Democratizing the accessibility of computational workflows | JupyterCon 2020
Thorin Tabor - Democratizing the accessibility of computational workflows | JupyterCon 2020
JupyterCon
12 Simon Willison- Using Datasette with Jupyter to publish your data | JupyterCon 2020
Simon Willison- Using Datasette with Jupyter to publish your data | JupyterCon 2020
JupyterCon
13 Brendan O'Brien - Using Qri (“query”) to fetch, query, combine and publish datasets.|JupyterCon 2020
Brendan O'Brien - Using Qri (“query”) to fetch, query, combine and publish datasets.|JupyterCon 2020
JupyterCon
14 Georgiana Dolocan - Putting the JupyterHub puzzle pieces together | JupyterCon 2020
Georgiana Dolocan - Putting the JupyterHub puzzle pieces together | JupyterCon 2020
JupyterCon
15 Yuvi Panda- Running nonjupyter applications on JupyterHub with jupyter-server-proxy| JupyterCon 2020
Yuvi Panda- Running nonjupyter applications on JupyterHub with jupyter-server-proxy| JupyterCon 2020
JupyterCon
16 Richard Wagner- The Streetwise Guide to JupyterHub Security | JupyterCon 2020
Richard Wagner- The Streetwise Guide to JupyterHub Security | JupyterCon 2020
JupyterCon
17 TamNguyen- Handling Custom Jupyter Data Sources | JupyterCon 2020
TamNguyen- Handling Custom Jupyter Data Sources | JupyterCon 2020
JupyterCon
18 Immanuel Bayer- ipyannotator - the infinitely hackable annotation framework  | JupyterCon 2020
Immanuel Bayer- ipyannotator - the infinitely hackable annotation framework | JupyterCon 2020
JupyterCon
19 Rebecca Kelly- A shared Python, R and Q  Jupyter Notebook - A Quant Sandbox Dream |JupyterCon 2020
Rebecca Kelly- A shared Python, R and Q Jupyter Notebook - A Quant Sandbox Dream |JupyterCon 2020
JupyterCon
20 Itay Dafna - Leap of faith: Transitioning from Excel to Jupyter-based applications | JupyterCon 2020
Itay Dafna - Leap of faith: Transitioning from Excel to Jupyter-based applications | JupyterCon 2020
JupyterCon
21 Damián Avila - Using the Jupyterverse to power MADS | JupyterCon 2020
Damián Avila - Using the Jupyterverse to power MADS | JupyterCon 2020
JupyterCon
22 Chiin Rui Tan- From Zero to Hero | JupyterCon 2020
Chiin Rui Tan- From Zero to Hero | JupyterCon 2020
JupyterCon
Firas Moosvi- Teaching an Active Learning class with Jupyter Book| JupyterCon 2020
Firas Moosvi- Teaching an Active Learning class with Jupyter Book| JupyterCon 2020
JupyterCon
24 Daniel Mietchen- Jupyter in the Wikimedia ecosystem | JupyterCon 2020
Daniel Mietchen- Jupyter in the Wikimedia ecosystem | JupyterCon 2020
JupyterCon
25 Qiusheng Wu- How Jupyter and geemap enable interactive mapping and analysis | JupyterCon 2020
Qiusheng Wu- How Jupyter and geemap enable interactive mapping and analysis | JupyterCon 2020
JupyterCon
26 Stephanie Juneau- Jupyterenabled astrophysical analysis for researchers and students|JupyterCon 2020
Stephanie Juneau- Jupyterenabled astrophysical analysis for researchers and students|JupyterCon 2020
JupyterCon
27 Denton Gentry- The Care and Feeding of JupyterHub for Climate Solution Models| JupyterCon 2020
Denton Gentry- The Care and Feeding of JupyterHub for Climate Solution Models| JupyterCon 2020
JupyterCon
28 Tingkai Liu- FlyBrainLab: Interactive Computing in the Connectomic/Synaptomic Era  | JupyterCon 2020
Tingkai Liu- FlyBrainLab: Interactive Computing in the Connectomic/Synaptomic Era | JupyterCon 2020
JupyterCon
29 Kunal Bhalla- A Notebook Style Guide| JupyterCon 2020
Kunal Bhalla- A Notebook Style Guide| JupyterCon 2020
JupyterCon
30 Julia Wagemann - How to avoid 'Death by Jupyter Notebooks' | JupyterCon 2020
Julia Wagemann - How to avoid 'Death by Jupyter Notebooks' | JupyterCon 2020
JupyterCon
31 David Pugh - Best practices for managing Jupyter-based data science  | JupyterCon 2020
David Pugh - Best practices for managing Jupyter-based data science | JupyterCon 2020
JupyterCon
32 Karla Spuldaro - Debugging notebooks and python scripts in JupyterLab | JupyterCon 2020
Karla Spuldaro - Debugging notebooks and python scripts in JupyterLab | JupyterCon 2020
JupyterCon
33 Shreyas Dalia - assert browserTest == True # Frontend Testing JupyterLab  | JupyterCon 2020
Shreyas Dalia - assert browserTest == True # Frontend Testing JupyterLab | JupyterCon 2020
JupyterCon
34 Chris Holdgraf - The new Jupyter Book stack | JupyterCon 2020
Chris Holdgraf - The new Jupyter Book stack | JupyterCon 2020
JupyterCon
35 Hamel Husain - Fastpages - A new, open source Jupyter notebook blogging system | JupyterCon 2020
Hamel Husain - Fastpages - A new, open source Jupyter notebook blogging system | JupyterCon 2020
JupyterCon
36 Marc Wouts - Jupytext: Jupyter Notebooks as Markdown Documents | JupyterCon 2020
Marc Wouts - Jupytext: Jupyter Notebooks as Markdown Documents | JupyterCon 2020
JupyterCon
37 Sheeba Samuel- ProvBook |JupyterCon 2020
Sheeba Samuel- ProvBook |JupyterCon 2020
JupyterCon
38 Philipp Rudiger - To Jupyter and back again | JupyterCon 2020
Philipp Rudiger - To Jupyter and back again | JupyterCon 2020
JupyterCon
39 Jacob Tomlinson - What is my GPU doing? | JupyterCon 2020
Jacob Tomlinson - What is my GPU doing? | JupyterCon 2020
JupyterCon
40 Afshin Darian - A visual debugger in Jupyter | JupyterCon 2020
Afshin Darian - A visual debugger in Jupyter | JupyterCon 2020
JupyterCon
41 Eric Charles - Jupyter Real Time Collaboration| JupyterCon 2020
Eric Charles - Jupyter Real Time Collaboration| JupyterCon 2020
JupyterCon
42 Devin Robison - Optimizing model performance | JupyterCon 2020
Devin Robison - Optimizing model performance | JupyterCon 2020
JupyterCon
43 Junhua zhao - PayPal Notebooks: ML & Data Science experience | JupyterCon 2020
Junhua zhao - PayPal Notebooks: ML & Data Science experience | JupyterCon 2020
JupyterCon
44 April Wang - Redesigning Notebooks for Better Collaboration | JupyterCon 2020
April Wang - Redesigning Notebooks for Better Collaboration | JupyterCon 2020
JupyterCon
45 Bryan Weber - Distributing and Collecting Jupyter Notebooks for Manual Grading| JupyterCon 2020
Bryan Weber - Distributing and Collecting Jupyter Notebooks for Manual Grading| JupyterCon 2020
JupyterCon
46 Georgiana Dolocan - The Littlest JupyterHub distribution | JupyterCon 2020
Georgiana Dolocan - The Littlest JupyterHub distribution | JupyterCon 2020
JupyterCon
47 Tim Metzler - Electronic Examination using Jupyter Notebook | JupyterCon 2020
Tim Metzler - Electronic Examination using Jupyter Notebook | JupyterCon 2020
JupyterCon
48 Blaine Mooers - Why develop a snippet library for Jupyter in your subject domain? | JupyterCon 2020
Blaine Mooers - Why develop a snippet library for Jupyter in your subject domain? | JupyterCon 2020
JupyterCon
49 Ryan Abernathey - Cloud Native Repositories for Big Scientific Data | JupyterCon 2020
Ryan Abernathey - Cloud Native Repositories for Big Scientific Data | JupyterCon 2020
JupyterCon
50 Tanya Rai - Introducing Bento: Jupyter Notebooks @ Facebook | JupyterCon 2020
Tanya Rai - Introducing Bento: Jupyter Notebooks @ Facebook | JupyterCon 2020
JupyterCon
51 Kenton McHenry - From Papers to Notebooks | JupyterCon 2020
Kenton McHenry - From Papers to Notebooks | JupyterCon 2020
JupyterCon
52 Ryan Herr - After model.fit, before you deploy| JupyterCon 2020
Ryan Herr - After model.fit, before you deploy| JupyterCon 2020
JupyterCon
53 Ana Ruvalcaba - Community building is a sustainability strategy | JupyterCon 2020
Ana Ruvalcaba - Community building is a sustainability strategy | JupyterCon 2020
JupyterCon
54 Martin Renou - Xeus: an ecosystem of Jupyter kernels | JupyterCon 2020
Martin Renou - Xeus: an ecosystem of Jupyter kernels | JupyterCon 2020
JupyterCon
55 Michael Wilson - Teaching teenagers to understand Dark Energy | JupyterCon 2020
Michael Wilson - Teaching teenagers to understand Dark Energy | JupyterCon 2020
JupyterCon
56 Davide De Marchi - Voilà dashboards for policy support | JupyterCon 2020
Davide De Marchi - Voilà dashboards for policy support | JupyterCon 2020
JupyterCon
57 Marcos Lopez Caniego - ESASky's JupyterLab widget| JupyterCon 2020
Marcos Lopez Caniego - ESASky's JupyterLab widget| JupyterCon 2020
JupyterCon
58 Praveen Kanamarlapud - Kernel Life Cycle Management | JupyterCon 2020
Praveen Kanamarlapud - Kernel Life Cycle Management | JupyterCon 2020
JupyterCon
59 Aaron Bray - Pulse Physiology Engine | JupyterCon 2020
Aaron Bray - Pulse Physiology Engine | JupyterCon 2020
JupyterCon
60 Aaron Watters - Using WebGL2 transform/feedback in Jupyter widgets | JupyterCon 2020
Aaron Watters - Using WebGL2 transform/feedback in Jupyter widgets | JupyterCon 2020
JupyterCon
Up next
1942: Hitler's Gamble for Victory by Richard Hargreaves · Audiobook preview
Google Play Books
Watch →