Skip to content

Latest commit

 

History

History
147 lines (99 loc) · 6.65 KB

README_en.md

File metadata and controls

147 lines (99 loc) · 6.65 KB

JavaScript Ember

contributions welcome open issues downloads License: AGPL v3

🇦🇷 Leer en español


Pilas Bloques - A tool to learn computer programming

About

Pilas Bloques is an application to learn computer programming, specially developed for the classroom. We offer challenges with different levels of complexity to introduce students into the universe of computer programming with blocks. For more information read the spanish about page.

What does computer programming with blocks mean?

It means developing programs with actions and instructions introduced by combining blocks. The result of fitting blocks together is a program that (hopefully!) solves the problem or challenge offered.

Why is this learning methodology positive?

  • Because each abstract concept associated with programming has its visual representation.
  • Because it avoids the difficulties produced by the formal syntax of a written language (and the frustration when we make a mistake in writing!).
  • The blocks are selected, dragged, fit together, and the task is ready.

What makes Pilas Bloques different from the other tools?

The main difference is that this platform was created in support of a didactic sequence to learn programming at school.

What’s a didactic sequence?

It’s the plan by means of which teachers expect students to learn a topic. Pilas Bloques didactic sequence was created and tested by Argentine teachers and researchers. Nowadays, this proposal is being studied in depth and expanded. Learn more about the initiatives we are working on.

Who can solve Pilas Bloques challenges?

These challenges can be solved by anyone. However, at present we offer two Teachers’ Books as supporting material, targeted at the elementary school , so that children between 5 and 8 years old can take advantage of the activities of the First Cycle, and children between 9 and 12 years old will be able to take advantage of the activities of the Second Cycle.

And can anyone solve these challenges on their own?

This tool was thought as an aid for the teacher and the student along the teaching-learning process of computer programming at school. In these didactic sequences, the inquiry-based methodology is fundamental. However, our recommendation is that the teacher serves as the guide and assists during the student’s learning process.

Contributing

You can find all the information you need to start contributing in Pilas Bloques in the CONTRIBUTING guidelines!

Getting Started

In order to collaborate, first of all you will install Git and then you must clone the Pilas Bloques repository.

git clone https://github.com/Program-AR/pilas-bloques.git

Prerequisites

  • Node. The version required is indicated in .nvmrc file.

    Install it:

    git clone https://github.com/nvm-sh/nvm.git ~/.nvm
    source ~/.nvm/nvm.sh
    source ~/.nvm/install.sh
    nvm install .
    

Use Pilas Bloques NodeJS target version:

nvm use

Install all project dependencies:

npm install

Daily Development commands

Run all tests:

npm test

Start Pilas Bloques:

npm run start

Build Pilas Bloques

npm run build

About experiment groups:

Pilas Bloques can be compiled in different ways depending on the experiment group. This can be achieved by setting the environment variable EXPERIMENT_GROUP at build time:

EXPERIMENT_GROUP=treatment npm run start

In Windows this is done with:

SET "EXPERIMENT_GROUP=treatment" && npm run start

The experiment groups are: notAffected, control, treatment and autoassign.

  • notAffected: (default) it does not show any feedback on current solution, just challenge completion.
  • control: after completing a challenge its expectations are shown, but with no information regarding whether they were fulfilled.
  • treatment: this one has a training period. During this time expectations are shown for each challenge, alongside a progress bar that awards points for each passed expectation. Blocks in the workspace have their own feedback too. Once the training period is over, the app behavior changes to control.
  • autoassign: randomly assigns an experiment group at run time (between control and treatment).

Packing installers:

  • By default, after releasing the app, the CI handles all installers generations. E.g.: after running npm run release:patch.
  • If you want to do it locally, first you need to run the command EXPERIMENT_GROUP=treatment npm run build:prod (setting EXPERIMENT_GROUP environment variable) and then build the installer corresponding to your OS. E.g.: npm run pack:linux.
  • If you want to pack an installer for another OS you need to know that this is only possible if you use linux. In addition, you need to install the following dependencies:
    • Windows: you need to install nsis, wine and wine-mono.
      • Debian/Ubuntu:

        sudo apt install nsis
        
      • Arch:

        yay -S nsis
        
    • macOS: unavailable.

Preparing backend (for users stuff):

If you want to test users stuff or save challenges it is necessary to fulfill some requirements: Run the apps Pilas Bloques API, Pilas Bloques Analytics (both accesible in the backend project) and a MongoDB database.

Changeslog

here