How genterist/bkt-jupyter works
1. Project purpose
- This repository is a small, notebook-driven demonstration of Bayesian Knowledge Tracing (BKT).
- It is oriented around running experiments on student response data and exporting per-student results.
2. Primary execution model
- The core workflow lives in Jupyter/Colab notebooks: BKT_Implementation.ipynb is the main runnable artifact.
- AboutColaboratory.ipynb appears to be a supporting notebook or onboarding/example file for Google Colab usage.
- bkt_implementation.py is likely a code extraction or reusable Python implementation backing the notebook.
3. Main computational subsystem
- The central subsystem is the BKT inference/estimation logic.
- From the filenames, the implementation likely models student learning states over time using the standard BKT parameters: probability of initial knowledge, learning, slipping, and guessing.
- This logic is probably executed sequentially per student and per observation sequence.
4. Input data boundary
- data.csv is the shared dataset input, likely containing the raw student interaction records used by the notebook.
- Additional files such as stu1.csv, stu10.csv, stu101.csv, and stu1_double_P_T.csv, stu1_double_S_G.csv suggest student-specific datasets or parameter sweep inputs used for experiments.
5. Per-student processing flow
- The architecture appears to be:
- load student interaction data,
- run BKT updates over the sequence,
- produce a derived result file for each student.
- The presence of many exportedResults/stu*.csv files indicates the output is partitioned by student identifier rather than aggregated into a single report.
6. Output / reporting subsystem
- exportedResults/ is the main results boundary.
- Each generated CSV likely contains predicted mastery states, posterior probabilities, or other trace outputs for an individual student.
- BKT-Report.pdf is a static deliverable summarizing the work, likely generated from the notebook content.
7. Session/runtime assumptions
- The README is explicitly centered on Google Colab as the runtime environment.
- Data files are uploaded into an ephemeral session store, so the workflow assumes a notebook runtime with manual file upload and transient local storage.
8. Data persistence characteristics
- Inputs are treated as session-local in Colab, not as a durable backend service.
- Outputs are also session-local unless manually downloaded, which means the repository functions more like a reproducible analysis bundle than a deployed application.
9. Tooling and dependencies
- The repo is built around Python + Jupyter notebooks, with Colab as the execution host.
- There is no sign of a separate package manager, API server, database, or frontend application.
- The architecture is therefore computational and file-based, not service-oriented.
10. Repository structure meaning
- The root contains the main code and data artifacts together, reflecting a compact research/demo project.
- The large number of CSV outputs suggests the notebook was used to run experiments across many students and store each result independently.
11. Likely diagram boundaries
- A useful architecture diagram would show:
- notebook/runtime environment,
- input CSV datasets,
- BKT computation layer,
- per-student exported CSV results,
- optional report/documentation outputs.
- The key boundary is between the Colab notebook session and the file-based inputs/outputs.
12. Overall architecture summary
- This repository is a single-workflow analytical pipeline: notebook-driven BKT computation over CSV data, producing per-student CSV outputs and a report.
- It is not a multi-service system; the important architecture is the flow of data through an interactive Python notebook into generated result files.
Main entry points: BKT_Implementation.ipynb Main notebook · bkt_implementation.py BKT code · exportedResults Exports · README.md README
Components 16
Notebook runtime
Interactive Colab/Jupyter execution and orchestration
- README · Usage and Colab-oriented project overview
README.md - Main notebook · Primary runnable BKT experiment
BKT_Implementation.ipynb - Colab notes · Supporting Colaboratory notebook
AboutColaboratory.ipynb - License · Repository license boundary
LICENSE
Input data
Source CSV datasets used by the notebook workflow
- Master data · Primary student interaction dataset
data.csv - Student sample · Representative per-student input sequence
stu1.csv - Student sample · Representative per-student input sequence
stu10.csv - Student sample · Representative per-student input sequence
stu101.csv - P/T sweep · Parameter sweep input for learning/transition behavior
stu1_double_P_T.csv - S/G sweep · Parameter sweep input for slip/guess behavior
stu1_double_S_G.csv
BKT logic
Bayesian Knowledge Tracing implementation and experiment flow
- BKT code · Reusable implementation extracted from the notebook
bkt_implementation.py
Results and report
Generated per-student outputs and final deliverables
- Exports · Session output boundary for per-student CSV exports
exportedResults - stu11 result · Representative per-student exported trace
exportedResults/stu11.csv - stu118 result · Representative per-student exported trace
exportedResults/stu118.csv - stu127 result · Representative per-student exported trace
exportedResults/stu127.csv - Report · Static write-up of the BKT demonstration
BKT-Report.pdf
Connections 17
- README → Main notebook: explains run · README points to the main notebook workflow
- README → Colab notes: supports · Colab guidance and onboarding material
- Main notebook → BKT code: executes · Notebook drives the reusable BKT implementation
- Colab notes → Main notebook: orients · Supporting notebook helps with notebook-based execution
- Master data → Main notebook: loads · Primary dataset is consumed by the notebook workflow
- Student sample → Main notebook: loads · Per-student input sequence used in experiments
- Student sample → Main notebook: loads · Per-student input sequence used in experiments
- Student sample → Main notebook: loads · Per-student input sequence used in experiments
- P/T sweep → BKT code: tunes · Parameter sweep input explores learning/transition settings
- S/G sweep → BKT code: tunes · Parameter sweep input explores slip/guess settings
- BKT code → Exports: writes · Implementation exports per-student CSV outputs
- Exports → stu11 result: contains · Representative exported result file
- Exports → stu118 result: contains · Representative exported result file
- Exports → stu127 result: contains · Representative exported result file
- Main notebook → Report: renders · Notebook content is summarized into the final PDF report
- BKT code → Report: supports · Core computations underpin the written report
- License → README: governs · Repository license applies to the documented workflow