Skip to content

Commit

Permalink
Merge pull request #78 from ds-modules/cg_refactor
Browse files Browse the repository at this point in the history
more changes
  • Loading branch information
balajialg authored Aug 3, 2024
2 parents 87669bd + 56ce214 commit 8a5fea2
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 20 deletions.
4 changes: 2 additions & 2 deletions _toc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,14 +30,14 @@ parts:
title: Shiny
- file: technology/quarto
title: Quarto
- file: workflow/launch-vscode.md
title: VSCode
- file: workflow/use-retrolab
title: RetroLab
- file: workflow/use-realtimecollaboration
title: Real Time Collaboration (RTC)
- file: workflow/use-realtimefilesharing
title: Real Time File Sharing
- file: workflow/launch-vscode.md
title: VSCode
- file: technology/pedagogy-and-technology/options-launch-rkernel
title: Options to Launch R
- caption: Workflow Basics
Expand Down
41 changes: 23 additions & 18 deletions workflow/bestpractices.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,26 @@
# Instructional Design Best Practices for Creating Jupyter Notebooks (WIP doc)
# Instructional Design Best Practices for Creating Jupyter Notebooks

Designing an ideal strategy to develop and utilize Jupyter notebooks as part of your pedagogy can be a challenging exercise. Here are some inputs on the best practices that you can consider while developing your notebooks,
Designing an effective strategy for developing and utilizing Jupyter Notebooks as part of your teaching methodology can be a challenging task. Here are some best practices to consider when creating your notebooks:

- Identify the appropriate learning outcomes you want to achieve using Jupyter notebook for your course/module. Some of the questions to consider are,
- Are the students expected to learn a specific programming language?
- Are the students expected to learn a new technology/installation process?
- Will students work together in groups or work independently to solve an assignment
- Will students work on assignments synchronously during the class or asynchronously after the class?
- Will students publish their notebook as a PDF/HTML website/Dashboard/Jupyter Book etc..
- What kind of datasets are required to achieve the learning outcomes envisioned?
- Choose an ideal pedagogical strategy to deliver your notebook. Detailed below in the tabular column are the list of pedagogical approaches you can repurpose for your course. Eg:
- Identify the technology requirements based on your answers,
**Identify Learning Outcomes:** Clearly define the learning outcomes you want to achieve using Jupyter Notebooks for your course or module. Consider the following questions:

- Are the students expected to learn a specific programming language?
- Are the students expected to learn a new technology or installation process?
- Will students work in groups or independently to complete assignments?
- Will students work on assignments synchronously during class or asynchronously afterward?
- Will students publish their notebooks as PDFs, HTML websites, dashboards, Jupyter Books, etc.?
- What kind of datasets are required to achieve the desired learning outcomes?

**Choose an Ideal Pedagogical Strategy:** Select a suitable pedagogical approach to deliver your notebook content. Below are some examples of pedagogical strategies you can adapt for your course:

- Direct Instruction: Teacher-led demonstrations and explanations.
- Inquiry-Based Learning: Encourages students to ask questions and explore.
- Collaborative Learning: Students work together to solve problems and complete tasks.
- Flipped Classroom: Students review content outside of class and engage in activities during class time.

**Identify Technology Requirements:** Based on your answers to the questions above, determine the necessary technology and resources, such as software, hardware, and datasets, to support the learning outcomes.

By carefully considering these factors, you can create a structured and effective approach to integrating Jupyter Notebooks into your teaching.

### Pedagogical strategies for notebook creation
| Pedagogical Approach Name | Course Name | Notebook Example | Pedagogical Approach Description
Expand All @@ -20,19 +30,14 @@ Designing an ideal strategy to develop and utilize Jupyter notebooks as part of
| Translate Mathematics to Code | PMB/MCB/BioE C 146 (Data Science for Biology) | [Lecture 8 Notebook](https://github.com/ds-modules/ds4bio/blob/main/lab8/lab08-c146-v01-student.ipynb) | Students learn about dynamic programming in this notebook. They generate fibonacci series and find longest common subsequence using recursive function/dynamic programming and calculate the associated complexity. Here, the students will be codifying mathematical expression to understand the knowledge better |
| Explore APIs | EPS 88 (PyEarth) | [Week 2 Assignment](https://github.com/ds-modules/EPS88-24031-FA23/blob/main/week02_datahubfiles/W02_assignment_Earthquakes.ipynb) | In this notebook, students query a remote server hosted by US Geological Survey Org to get data about areas in the globe where an earth quake has happened and whose magnitude is greater than 5.0. They create a map highlighting those places |
Hello World | Econ 130 (Economics for Public Policy) | [Intro Jupyter notebook](https://github.com/ds-modules/ECON-130-FA23/blob/main/IntroToR/Intro%20to%20R.ipynb) | Many courses have this intro notebook where student perform basic operations in Python/R to understand the syntax of the programming language. Instructors spend a week helping students get accustomed to the chosen programming language |
| Learn by Simulation | | |
| Bug Hunt | | |


### Best Practices/Tips for Notebook Creation
### Tips for Notebook Creation

- Have a text to code ratio of 3:1
- Explain the ouput of the cell in the text annotation above each cell
- Have an intro Jupyter notebook which focuses on exposing students to syntactical elements of the programming language

### Credits/References
### References
- [Teaching and Learning with Jupyter](https://jupyter4edu.github.io/jupyter-edu-book/index.html)
- [Best practices for writing and sharing computational analysis in Jupyter notebooks](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC6657818/)
- Github repositories of varied repositories referenced above


0 comments on commit 8a5fea2

Please sign in to comment.