UBC Peer Instruction XBlock
Project description
Note: This is a work in progress
Over the last 20 years, Peer Instruction has become a widely-adopted instructional technique across higher education. It is the cornerstone of a range of approaches that collectively aim to use classroom time (usually lectures) more productively than simply as a vehicle for didactic presentation of content. Such approaches often broadly classified as ‘interactive engagement’ strategies, or — more recently — ‘flipped classroom’ approaches.
The learning and retention benefits of interactive engagement strategies has been convincingly demonstrated in a recent meta-analysis by Freeman et al which examined 225 published studies across various STEM disciplines and course contexts. Relating directly to peer instruction, and specifically the efficacy of peer discussion to improve student performance on concept questions posed in class, a 2009 study by Smith et al (Science 323, 122 (2009)) demonstrates this effect comes from enhanced learning, rather than simply peer influence. The impact peer instruction has had was recognized through the award of the inaugural Minerva prize for enhancement in higher education to Eric Mazur in 2014.
One of the key features in the success of peer instruction in enhancing student learning is to promote higher-order cognitive activities (articulation, evaluation, synthesis etc.) within a learning sequence or activity (for example, within a lecture segment in the face-to-face environment). It is specifically this benefit that we seek to replicate and expose within the online environment through this suggestion to develop online Peer Instruction (oPI) in the functionality within edX. To that effect, we have created the Peer Instruction Tool.
Basic workflow
In Studio, course creator creates a new advanced problem of type Peer Instruction, configures and publishes
In the LMS, (following some content presentation) the student is presented the question, answer options and text box to complete their rationale for their answer.
Following submit, the student is presented with a range of alternative student answers and rationales (This is as an alternative to small group discussion)
Students reflect on the answers presented, then modify their own answer and rationale and submit a final answer
Students are presented feedback including their own answer, the model instructor answer and class distribution statistics across both stages.
The Instructor is able to see class statistics on demand at any given time in process.
Installing Dependencies and this XBlock
cd PATH/TO/SOURCE make deps pip install -e .
Update Lanaguage Files
Extract Strings
make extract
Then upload ubcpi/translations/en/LC_MESSAGES/text.po to transifex for translation. Once translation is complete, download the translated files and compile them into .mo files.
Compile Translation Files
make compile
Running in WorkBench
make workbench
Running Unit Tests
make test
or
make test-py make test-js
Running Acceptance Tests
To run acceptance test, the devstack has to be running at localhost:8000 and localhost:8001 (configurable in protractor.conf) with auth auth enabled. To enable auto auth under FEATURE section in cms.env.json and lms.env.json from Edx platform:
AUTOMATIC_AUTH_FOR_TESTING: true
(Optional) Disable Django debug toolbar and contracts for faster tests: https://github.com/edx/edx-platform/wiki/Developing-on-the-edX-Developer-Stack#making-the-local-servers-run-faster
Install webdriver:
node_modules/protractor/bin/webdriver-manager update --standalone
Run tests:
make test-acceptance
Single test:
node_modules/protractor/bin/protractor protractor.conf.js --browser chrome --specs=ubcpi/static/js/features/cms.feature
Deploy UBCPI to upstream edx
In order for the upstream edx to include a new version of UBCPI, modify the file main.yml and submit a pull request to that repository.
Changelog
1.0.0
Revised UI to improve visual consistency.
Fixed issues with deleting learner state.
Added function to allow students to fresh rationales shown.
0.6.5
Added logging of rationales seen by the learner when submitting final answer.
Fixed issue with selecting answers when there are multiple ubcpi xblocks in the same unit.
Fixed issue with anchoring the page after submission when there are multiple units with ubcpi xblocks in the same subsection.
Fixed issue with Step 1 answer disappearing after switching to other units and back.
0.6.4
Fixed broken buttons in Studio view.
Fixed bug with certain strings not being exported for translation.
Handled logging student response when there is no correct answer.
0.6.3
Added missing translation strings.
Added full i18n support.
Converted all course_ids to strings before sending to submissions API.
0.6.2
Added additional translations.
UI update for accessibility.
0.6
Allowed setup of a question with no correct answer.
Made the instructor-entered rationale optional for case where there is no correct answer.
Changed text in various locations to reflect option of scenario where there is no correct answer.
Inserted red asterisks in Studio view as appropriate to further indicate fields as required.
Fixed display of graphs on mobile.
Introduced a progress bar, with anchoring as appropriate, to better orient students during each stage of a question.
Changed colouring of both initial and final answers at last stage to correspond to correct answer, if specified, as appropriate. Initial and final answers are left black for the scenario where the instructor did not specify a correct answer.
Changed text labels to emphasize answer chosen by student, as appropriate.
Moved graphs headings above graphs for further emphasis.
Styled (italicized, emboldened) various labels for further emphasis.
0.5.3
Introduced Esperanto (eo) language dummy translations.
Added character limit warning for rationale.
0.5.2
Updated XBlock version reference to 0.4.7
Added support for XBlock-level internationalization/localization
Added chart labels: Original Answer, Revised Answer
Fixed the fact that rationales that had words longer than 77 characters would bleed outside container/not-wrap
Modified CSS to make images larger than the container responsive
Minor text change (clarification of rationale to students)
Added question text to final step
Changed icon on final step + style change to remove floating list bullet
Changed title from “Question” to “Peer Instruction Question”
0.5.1
Changed the “Question” title to “Peer Instruction Question”
Changed the answer icon from fa-users to fa-user and the dot at the last step
Modified the ‘Explain your selection’ instruction to remind them that the intended readers are other students
Added question text at the end of the process
0.5.0
Updated UX based on feedbacks from the student usability testing
Updated UX and accessibility based on feedbacks from EdX
Added serialisation support for course export
Added EdX analytic event
Added participation score support
Disabled student empty rationale submission
Fixed a bug where a 500 error is generated when removing an option from list under certain condition
Fixed a bug where the responses are missing after going to a different page
0.4.0
Added unit and acceptance tests with 100% coverage
Disabled chart generation when there is not enough response
Improved accessibility
A lot of code refactoring
0.3.0
Added the ‘random’ algorithm which allows a student to see a completely random selection of others’ answers
Added and edited front-end help documentation so that it’s more clear what each step is and what will happen at the next step and, if appropriate, why you can’t progress to the next step
Added a first-pass at hooking up UBCPI to the edX grading system. This is more of a ‘completion’ mark as a student is always given the grade after they submit their revised answer regardless of the responses being correct or not
Tidying up of the statistics graphs that are shown on the last step
0.2.0
The edit window in studio is now much tidier and contains much more useful hints
Fixed the bug where a rationale wasn’t required
Tidied up the bar charts display for the LMS view and made the correct answer show more prominantly
Default content is now somewhat more useful
Rationales now can have a minimum an/or maximum character count
0.1.0
Incredibly basic proof of concept working
Can add questions and possible responses
Students can answer, view others’ responses (with seeds if necessary)
Analytics in the form of charts of initial and final responses
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ubcpi-xblock-1.0.0.tar.gz
.
File metadata
- Download URL: ubcpi-xblock-1.0.0.tar.gz
- Upload date:
- Size: 185.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: Python-urllib/3.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b6bcbeed2c3a59002f1656a1ca7a5e6aff446dc762295c8113a85ac087ad4ffa |
|
MD5 | 5fb1fb2881a824d52c4af2977f6a1fcb |
|
BLAKE2b-256 | 8ecf5a53aa18baaf3bd3d3585de0309f4322f620beed7d3eb8da5f2f57c5c5de |
File details
Details for the file ubcpi_xblock-1.0.0-py3.7.egg
.
File metadata
- Download URL: ubcpi_xblock-1.0.0-py3.7.egg
- Upload date:
- Size: 303.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: Python-urllib/3.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fb94151c061ff0190636dee0db669db78377952a282d5a6162f752eeb0896fdf |
|
MD5 | cd13acb97229d9e43c67b768f3246946 |
|
BLAKE2b-256 | 38729d2b6f02ca0b767254db63dada6adfd1fd418664928355fdadf54c977e58 |