Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update with main #471

Merged
merged 19 commits into from
Dec 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
117 changes: 75 additions & 42 deletions .github/workflows/pretext-cli.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ jobs:
build:
runs-on: ubuntu-latest
container: oscarlevin/pretext:full
if: github.ref == format('refs/heads/{0}', github.event.repository.default_branch)

steps:
- name: Checkout source
Expand All @@ -25,23 +26,15 @@ jobs:
- name: install deps
run: pip install -r requirements.txt

- name: quick build instructor versions
id: quickbuild
if: github.ref != format('refs/heads/{0}', github.event.repository.default_branch) && github.event_name != 'workflow_dispatch'
run: |
pretext build precalculus-web-instructor -q
pretext build calculus-web-instructor -q
pretext build linear-algebra-web-instructor -q

- name: build all deploy targets
if: steps.quickbuild.outcome == 'skipped'
# if: steps.quickbuild.outcome == 'skipped'
run: pretext build --deploys

- name: stage deployment
run: pretext deploy --stage-only

- name: build and stage all banks
if: steps.quickbuild.outcome == 'skipped'
# if: steps.quickbuild.outcome == 'skipped'
run: |
python scripts/build_bank.py precalculus --full
python scripts/build_bank.py calculus --full
Expand All @@ -53,10 +46,76 @@ jobs:
name: deploy
path: output/stage

deploy-cloudflare:
deploy-ghpages:
runs-on: ubuntu-latest
needs: build
if: vars.CLOUDFLARE_PROJECT_NAME != '' && github.ref != format('refs/heads/{0}', github.event.repository.default_branch)
if: github.ref == format('refs/heads/{0}', github.event.repository.default_branch)
permissions:
contents: read
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Download website artifact
uses: actions/download-artifact@v4
with:
name: deploy
path: deploy
- name: Setup GitHub Pages
id: check
uses: actions/configure-pages@v4
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: deploy
- name: Deploy to Github Pages
id: deployment
uses: actions/deploy-pages@v4

preview:
runs-on: ubuntu-latest
container: oscarlevin/pretext:full
if: github.ref != format('refs/heads/{0}', github.event.repository.default_branch)
outputs:
markdown: ${{ steps.changes.outputs.markdown }}

steps:
- name: Checkout source
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: install deps
run: pip install -r requirements.txt

- name: Set necessary Git permission
run: git config --global --add safe.directory $(pwd)

- name: build previews of all changed files
id: changes
run: python scripts/quickbuild_changes.py

- name: stage deployment
run: pretext deploy --stage-only

# - name: build and stage all banks
# run: |
# python scripts/build_bank.py precalculus --full
# python scripts/build_bank.py calculus --full
# python scripts/build_bank.py linear-algebra --full

- name: Bundle output/stage as artifact
uses: actions/upload-artifact@v4
with:
name: deploy
path: output/stage

deploy-cloudflare:
runs-on: ubuntu-latest
needs: preview
if: github.ref != format('refs/heads/{0}', github.event.repository.default_branch)
permissions:
contents: read
deployments: write
Expand All @@ -70,8 +129,8 @@ jobs:
path: deploy
- name: Create 404.html
run: echo "404 page not found" >> deploy/404.html
- name: Delete CheckIt builds not supported by CloudFlare
run: find . -name "bank.json" -type f -delete
# - name: Delete CheckIt builds not supported by CloudFlare
# run: find . -name "bank.json" -type f -delete
- name: Publish to Cloudflare
id: cloudflare_publish
uses: cloudflare/pages-action@v1
Expand All @@ -87,37 +146,11 @@ jobs:
if: github.event_name == 'pull_request'
with:
script: |
cf_url = "${{ steps.cloudflare_publish.outputs.url }}"
github.rest.issues.createComment({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
body: '## 🚀 Preview available 🚀\n\n${{ steps.cloudflare_publish.outputs.url }}\n\n- [Precalculus](${{ steps.cloudflare_publish.outputs.url }}/preview/precalculus/instructor/frontmatter)\n\n- [Calculus](${{ steps.cloudflare_publish.outputs.url }}/preview/calculus/instructor/frontmatter)\n\n- [Linear Algebra](${{ steps.cloudflare_publish.outputs.url }}/preview/linear-algebra/instructor/frontmatter)'
body: `${{ needs.preview.outputs.markdown }}`
})

deploy-ghpages:
runs-on: ubuntu-latest
needs: build
if: vars.PTX_ENABLE_DEPLOY_GHPAGES == 'yes' && github.ref == format('refs/heads/{0}', github.event.repository.default_branch)
permissions:
contents: read
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Download website artifact
uses: actions/download-artifact@v4
with:
name: deploy
path: deploy
- name: Setup GitHub Pages
id: check
uses: actions/configure-pages@v4
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: deploy
- name: Deploy to Github Pages
id: deployment
uses: actions/deploy-pages@v4
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
pretext == 2.6.2
pretext == 2.10.1
pelican == 4.9.1
checkit-dashboard == 0.2.6
55 changes: 55 additions & 0 deletions scripts/quickbuild_changes.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
from pretext.project import Project
from git import Repo
from pathlib import Path
from lxml import etree
import os

def main():
repo = Repo()
commit_head = repo.commit("HEAD")
commit_origin_main = repo.commit("origin/main")
commit_merge_base = repo.merge_base(commit_head, commit_origin_main)[0]
diff_index = commit_merge_base.diff(commit_head)
changed_files = [Path(item.a_path) for item in diff_index]
preview_links = []

p = Project.parse()
BOOKS = ['precalculus', 'calculus', 'linear-algebra']

# for each .ptx file, try to build subtree of document
for f in [f for f in changed_files if f.suffix == ".ptx"]:
book = None
for b in BOOKS:
b_path = Path("source") / b
if b_path in f.parents:
book = b
if book is not None:
t = p.get_target(f"{book}-web-instructor")
root = etree.parse(f).getroot()
xml_id = root.get(r"{http://www.w3.org/XML/1998/namespace}id")
print(f"Building book `{book}` with ID `{xml_id}`")
title_ele = root.find("title")
if title_ele is None:
if xml_id is None:
path = f"/preview/{book}/instructor"
else:
path = f"/preview/{book}/instructor/{xml_id}.html"
else:
path = f"/preview/{book}/instructor/{xml_id}.html"
t.build(xmlid=xml_id, no_knowls=True, generate=(xml_id is not None))
preview_links.append({
"file": f,
"path": path
})

# create Javascript template for markdown output
markdown = f"## 🚀 Preview available 🚀\n\n<${{cf_url}}>\n\n"
for link in preview_links:
# ${{cf_url}} is provided by action Javascript
markdown += f"- \\`{link["file"]}\\`: <${{cf_url}}{link["path"]}>\n"
with open(os.environ["GITHUB_OUTPUT"], 'a') as fh:
fh.write(f"markdown<<MARKDOWN\n{markdown}\nMARKDOWN\n")

if __name__ == "__main__":
main()

18 changes: 14 additions & 4 deletions site/pages/about.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,10 @@ slug: about

### What is TBIL?

Team-Based Inquiry Learning (TBIL) is an implementation of [Team-Based Learning](https://www.teambasedlearning.org/definition/) as [Inquiry-Based Learning](http://www.inquirybasedlearning.org/) for mathematics. Team-Based Learning is popular in other disciplines such as health sciences, where it is most often implemented as Flipped Learning and/or Case-Based Learning. In mathematics, however, we view it as a way to more easily bring Inquiry-Based Learning into lower division courses such as Calculus and Linear Algebra.
Team-Based Inquiry Learning (TBIL) is an implementation of [Team-Based Learning](https://www.teambasedlearning.org/definition/) as [Inquiry-Based Learning](http://www.inquirybasedlearning.org/) for mathematics. Team-Based Learning is popular in other disciplines such as health sciences, where it is most often implemented as Flipped Learning and/or Case-Based Learning. In mathematics, however, we view it as a way to more easily bring Inquiry-Based Learning into lower division courses such as Precalculus, Calculus, and Linear Algebra.

A typical day in a TBIL class involves students working teams through a series of scaffolded activities to learn the material. After spending time on an activity, each team simultaneously reports their answer to the class, after which the instructor facilitates a class-wide debrief to inquire into students' thinking. After bringing the class to a consensus, the instructor provides any needed exposition to prepare students for the next activity. For more details on the TBIL pedagogy, please see our [_PRIMUS_ paper](https://doi.org/10.1080/10511970.2019.1666440).


To help instructors get started, we host a
[library](/library/) of free and open-source educational resources
Expand All @@ -18,17 +21,17 @@ If you're planning to use TBIL in your classroom, you can get a link to join our

### Publications

- Lewis, D., Clontz, S., and Estis, J. 2021. Team-Based Inquiry Learning. PRIMUS 31 (2), 223-238. <https://doi.org/10.1080/10511970.2019.1666440>
- Lewis, D., Clontz, S., and Estis, J. (2021). Team-Based Inquiry Learning. _PRIMUS_ 31 (2), 223-238. <https://doi.org/10.1080/10511970.2019.1666440>

- Team-Based Learning (TBL) is a cooperative learning strategy blending elements of flipped learning, inquiry-based learning, and problem-based learning. Although used quite frequently in other disciplines, use of this strategy in mathematics has been limited. In this article, we describe how TBL can be implemented in math courses with adherence to essential elements of TBL and introduce modifications specific to mathematics instruction. In particular, we introduce a particular style of TBL, which we term Team-Based Inquiry Learning, that satisfies the defining pillars of inquiry-based learning.


- Lewis, D. and Estis, J. 2020. Improving Mathematics Content Mastery and Enhancing Flexible Problem Solving through Team-Based Inquiry Learning. Teaching & Learning Inquiry 8 (2), 165-183. <https://doi.org/10.20343/teachlearninqu.8.2.11>
- Lewis, D. and Estis, J. (2020). Improving Mathematics Content Mastery and Enhancing Flexible Problem Solving through Team-Based Inquiry Learning. _Teaching & Learning Inquiry_ 8 (2), 165-183. <https://doi.org/10.20343/teachlearninqu.8.2.11>

- This article examines how student learning is affected by the use of team-based inquiry learning, a novel pedagogy in mathematics that uses team-based learning to implement inquiry-based learning. We conducted quasi-experimental and observational studies in intermediate level mathematics courses, finding that team-based inquiry learning led to increased content mastery and that students took a more flexible approach to solving problems. We also found that in the courses using this pedagogy, women (but not men) had a reduction in communication apprehension over the course of a semester. We conclude that team-based inquiry learning effectively enhances student learning and problem solving, preparing students for future academic success and fostering career readiness.


- Lewis, D., Clontz, S., Parrish, C., Estis, J., and Chaudhury, S.R. To Appear. Supporting Instructors in Implementing Team-Based Inquiry Learning. Proceedings of the 26th Annual Conference on Research in Undergraduate Mathematics Education. <http://sigmaa.maa.org/rume/crume2024/papers/117.pdf>
- Lewis, D., Clontz, S., Parrish, C., Estis, J., and Chaudhury, S.R. 2024. Supporting Instructors in Implementing Team-Based Inquiry Learning. _Proceedings of the 26th Annual Conference on Research in Undergraduate Mathematics Education_, 1152-1157. <http://sigmaa.maa.org/rume/crume2024/papers/117.pdf>

- Team-Based Inquiry Learning (TBIL) is a novel active learning pedagogy designed to facilitate the use of inquiry-based learning in lower division courses. This preliminary report examines supports provided by the TBIL project to instructors, as well as the fidelity of implementation of TBIL by participants of the project. Initial findings suggest that classroom-ready materials and ongoing support, both synchronous and asynchronous, were most helpful to faculty in their TBIL implementations.

Expand All @@ -40,14 +43,21 @@ If you're planning to use TBIL in your classroom, you can get a link to join our

- Kate Owens† has created [these excellent slides](https://docs.google.com/presentation/d/1824oMy2HetUVz4AlEZFufjftg72gh0Zqqu4RzOP08PE/edit?usp=sharing) overviewing TBIL and resources to implement it in your classroom.

- Drew Lewis presented a poster "[Transforming Lower Division Mathematics Through Team-Based Inquiry Learning](https://drive.google.com/file/d/1rruYnUEJKJZROXcXGkjl7aXdtc2v5FSs/view?usp=sharing)" at the IUSE Summit (June 2022)


- Drew Lewis gave a colloquium presentation on "[Team-Based Inquiry Learning](https://drive.google.com/file/d/19zgcQU37PqaxUka8AgBL9sh2tBz2VO56/view?usp=sharing)" at the University of Tennessee Department of Mathematics (October 2022)

- Kate Owens† & Abby Noble† presented "[How we juggled all the things: SBG+TBIL+CheckIt+LMS](https://docs.google.com/presentation/d/1tjZNkLplPyYpanPpkzfN0a-1n8FSTdNgMAh7RYkFFbs/edit?usp=sharing)" at the Fall 2023 Southeast Sectional Meeting of the American Mathematics Society

- Jordan Kostiuk† presented on "[TBIL & Student Motivation](https://drive.google.com/file/d/1PtJmaPv24viRJPOUWGqvRu-Dx3jQvSB3/view?usp=sharing)" at the 2023 AAC&U STEM Conference

- Julie Estis presented a poster "[Transforming Lower Division Mathematics Through Team-Based Inquiry Learning: A Model for Training Faculty, Developing Resources, and Measuring Impact](https://drive.google.com/file/d/1fMj8_3Ea946Rvshmh6Z0oveKw7rk_N3c/view?usp=sharing)" at the 2023 Team-Based Learning Collaborative Annual Conference

- Manoj Lamichhane† presented "Implementation of Team Based Inquiry Learning (TBIL) in Calculus Classes at Florida Polytechnic University" at the Third International Conference on Applications of Mathematics to Nonlinear Sciences (May 2023)

- Raj Chaudhury presented a poster "[Actors, Scripts and Orchestration: a framework for understanding Team-Based Inquiry Learning](https://drive.google.com/file/d/17f2bvjhRxPK6xFbu_BemDwdKe72LKxl4/view?usp=drive_link)" at the 2023 Physics Education Research Conference.

- Francesca Gandini† & Joe Hibdon† presented "Making Student Thinking Visible with Team-Based Inquiry Learning" at the 2024 Joint Mathematics Meeting

- Drew Lewis presented "[Team-Based Inquiry Learning in Lower Division Mathematics Courses](https://docs.google.com/presentation/d/11Ssh8PXw233QkBK3M17togEX0y6PE2_yaC9j4Z0OPYM/edit?usp=sharing)" at the 2024 Joint Mathematics Meeting
Expand Down
Loading
Loading