Actions

Difference between revisions of "Coding Community"

From Future Skill

Line 10: Line 10:
 
An Exercise is usually aimed at introducing programming concepts or to solve for fun and to challenge yourself. Exercises have ''levels'' and in order to complete an exercise, all levels must be solved. Completing an exercise is often rewarded with ''achievements'' and ''experience'' points.
 
An Exercise is usually aimed at introducing programming concepts or to solve for fun and to challenge yourself. Exercises have ''levels'' and in order to complete an exercise, all levels must be solved. Completing an exercise is often rewarded with ''achievements'' and ''experience'' points.
  
Exercises that have the ''Official'' tag are either created or endorsed by Future Skill.
+
Exercises that have the "Official" tag are either created or endorsed by Future Skill.
  
 
===== Flow of solving an Exercise =====
 
===== Flow of solving an Exercise =====

Revision as of 14:55, 28 January 2021

The Coding Community

In the Future Skill Coding Community, there are several types of activities that members can take part in to practice and improve their coding skills. The following sections describe the Exercise, Challenge, Tournament and Freecode activities. You can also create Exercises, Challenges and Freecodes for others, this is described here !ADD LINK!. But first, the coding Editor should be introduced.

The Editor

When performing one of the activities mentioned above, the Future Skill coding Editor is used. The Editor consists of four main sections as seen in the image below. On the top left side is a description of the current activity and below it, usually some graphical output using a canvas element. On the top right side is the solution section where the programmer writes their solution code and below it, a console and score section where the output from running the solution code is shown.

The Editor supports a number of programming languages. While programmers are free to choose which language to write their solution code in, it is encouraged to try different ones. In fact, solving a task in multiple languages is usually rewarded with achievements and experience points.

Exercise

An Exercise is usually aimed at introducing programming concepts or to solve for fun and to challenge yourself. Exercises have levels and in order to complete an exercise, all levels must be solved. Completing an exercise is often rewarded with achievements and experience points.

Exercises that have the "Official" tag are either created or endorsed by Future Skill.

Flow of solving an Exercise

1. When entering an Exercise you will be presented with level 1, and if the graphical canvas is used you will see it in the bottom left-hand corner with Level 1 visible. If it is your first time using the Editor a tutorial dialoge window will pop up by the Description tab top left - you will notice it has a "Next tip" button.

2. Start by reading the description text in the top left part of the web page. Here the problem and what you need to do to solve it is presented and any canvas elements are explained.

3. Click the tab "API" in the top left to read about the methods available to you as you write your code and solve the problem. Each method can be expanded by clicking it.

4. Now choose the language you want to use to solve the Exercise, the language picker is in the top right part of the page.

5. In the Solution tab, below the language picker, you see the code window where an initial starting point for solving the problem is shown. You can always return to this initial state by using the red Reset code button, top right. Read through the available methods and their descriptions, as these are also an integral part of understanding the Exercise.

6. Now edit the code and make a first try at a solution.

7. When you want to try out the effects of you code, and check that the code runs without problems, press the "Run code" button below the code editor window.

8. Any problems with syntax or runtime errors will show up in the Console window bottom right. If you had none of these the Console might be mostly blank, but you will at least see horizontal blue lines and the step numbers to the very right (e.g. 0/2, 1/2, 2/2 if there are two steps). The "steps" is mostly a concept which has to do with each animation increment in the canvas, but it usually also corresponds to the number of times your methods are called. For example, in the "Apple Picker" Exercise the "update" is called once, but the animation has a step 0/2 for the initial render and a step 2/2 to show the end result. Step 1/2 is when your "update" method is called.

9. Continue working on your code until you have solved Level 1. When this happens the canvas will typically inform you that you have solved the level correctly, and the "Next Level" button top right will be enabled (it will be a solid blue color). You can also navigate to the next level in the level picker in the top right part of the page. Now click the "Next Level" button.

10. Continue solving Level 2, 3 and so forth until you have solved the entire exercise. You should see a toast window appear in the bottom right of the page highlighting that you were awarded experience points for solving the Exercise.

Challenge

In a Challenge, a solution to a coding problem is evaluated based on several parameters. Depending on what type of problem is to be solved, the evaluation parameters can include (...). The solution then receives a score which is entered in a leader board. This way, programmers compete with each other trying to solve the same problem. Challenges are rewarded with achievements and experience points.


Tournament

In Tournaments, a submitted solution is run against solutions from several different programmers. Each night, a tournament takes place where code from participating programmers compete with others in multiple matches. When the tournament is finished, each solution receives an ELO-rating.


Freecode

In Freecodes, the programmer is free to do whatever she or he wants to do. Since there is not a specific problem to be solved, a Freecode is not rewarded with any achievements or experience points.