- Target users: Any educational institution which operates under the Swiss educational system and 'Lehrplan 21', but is not part of the public Swiss school network, for example Swiss Schools in foreign countries.
- Why?: Lehrplan 21 is based on over 3000, cross-referenced skills, officially listed here: https://www.lehrplan21.ch/ . The website does not allow for a database export of those skills. Centralized planning of the coursework is hindered because of this. The current repo parses all those skills and exports them as csv file, thus enabling those organizations in their planning.
- How?:
Download the Kompetenzen export for your Kanton here. The csv file can be opened with a spreadsheet software (e.g. LibreOffice Calc or MS Excel) and skills, and cross references be searched and marked by teachers. If shared via google spreadsheets, a centralized planning is possible. The csv file can also be used as basis for a database (e.g. mySQL) and paired with student information. Thus, the DB would hold real-time information on which student holds which skills, thus, making fine-grained course-planning attainable.I refer to the copyright claim below.
The 'Lehrplan 21' is a new iteration of the Swiss education system, aiming at homogenizing education across all cantons (Swiss states). Previously bigger subjects have been split up into over 3000 small, granular skills (Kompetenzen, in German). Students will be awarded with those skills on fullfillment of a range of activities (exams, coursework etc.). There are Kompetenzen which are shared among different subjects, linked together via cross-references. This introduces some complexities into the organizaion and design of every teachers' coursework. With the current repository, teachers/schools are able to extract all Kompetenzen with their respective cross-references and use the resulting csv file as starting point for their planning. Below, a clearer illustration of the problem this repo attempts to address.
Let's say you are teaching English class. You are currently deciding on which Kompetenzen you are going to address with your coursework. You are browsing the Lehrplan 21 website for your respective Canton. The Kompetenz FS1E.3.C.1 (3.e 2, Canton Schaffausen) has caught your eye:
können einige Fehler, die beim freien Sprechen auftreten, erkennen und sich selber korrigieren.
This Kompetenz has two cross references: D.1.C.1.e and D.3.B.1.e. They belong to two different areas of German: speaking and hearing. Without further meetings with your colleagues, you will not be able to plan your coursework guaranteeing that you are not addressing a Kompetenz which has already been covered or which is being covered at the same time in German class. Intensive centralized bookkeeping, paper-forms, or long planning sessions are traditional ways of coping with this added layer of difficulty. All cost and time intense approaches.
Enabling live-tracking of which Kompetenz has been included in a teachers' coursework (for which students). The first step here is to extract all Kompetenzen from the official website (https://www.lehrplan21.ch/) and format the information as database-ready table (as much as the parsing allows it). There are several uses for such an extract:
- Use the csv file via a spreadsheet software (MS Excel, Google Sheets, OpenOffice Calc). Used Kompetenzen can be marked manually by teachers. If done collaboratively on the cloud, this already serves its purpose for the planning.
- Include the csv file in a wider database (mysql, sql lite). Combine the Kompetenzen information with student information and track which student has covered which Kompetenzen. This solution is more involved, but allows for personalized education. This approach furthermore requires the development of a web-app solution (for instance, Python Django/Flask or PHP Laravel/CakePHP). Naturally, a server is required to host those web-apps.
### Download of the Kompetenzen
I already made exports for several Cantons. If there is interest, I can export others. Below, instruction on how export the Kompetenzen on your own.
### ✨ Downloads here ✨
I got contacted by the Geschäftsstelle der Bildungsdirektorenkonferenz Zentralschweiz: The data is under copyright as per https://v-fe.lehrplan.ch/impressum.php . I cannot host this data anymore unfortunately. Apparently, there is a API available. Please contact [email protected] for more information.
If the result of the export is not what your were looking for, or you want to do the exports on your own, below a guide on how to get the parser working on your machine. Pull requests are always welcome, of course.
Instead of installing the package via pip, just clone this repo and launch the parser invoking the script directly (see below). This means you either install all dependencies manually or use a virtualenv. I recommend poetry
, as I already set the environment up via that approach.
Pre-requisite: Package manager Poetry
.
Clone the repository:
git clone [email protected]:Seneketh/lp21_parser.git
cd lp21_parser/
Create virtualenv and install all packages and dependencies:
poetry install
Optional (and sometimes slow):
poetry update
Activate the virtual environment:
poetry shell
Install all and set up all pre-commit hooks:
pre-commit install
Check the python version. Note, use python
, not python3
, you still should get a python >3.6 version:
python --version
Make the call:
python Parser.py <arg1>
arg1
need be the desired canton, such as 'ag'. The default value is 'sh'. The exact string is the shorthand for each canton.
Example:
python Parser.py 'zh'
To exit the virtual environment:
exit
If you just cloned the repo, delete the directory. Don´t forget to remove the virtual environment created by poetry with poetry env remove
.
For MacOS, Linux, and WSL:
curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python3
To apply changes for your current shell session, run
source $HOME/.poetry/env
You may add this to the auto-run shell script like .bashrc or .zshrc if Poetry doesn’t appear in a new shell session:
export PATH="$HOME/.poetry/bin:$PATH"
If intended, the present piece of software can be used to disrupt normal traffic on its target website. I discourage any use other than to facilitate and/or improve coursework planning of the eligible educational institutions. The present software is available under the Attribution-NonCommercial-ShareAlike 4.0 International
licence. This means you can alter/adapt/improve the present code however you like and make free use of it, as long as you cite this repo as origin and DO NOT use it for COMMERCIAL APPLICATIONS. It is included in full under "LICENCE" in this repository. To my knowledge, there are no laws in Switzerland which impede the intended use of the present software.