What is NCLab?

We are pleased to announce a new introductory computer programming course named Karel Jr. This course is based on the original popular Karel course, but the scope of changes exceeded a usual update. The original Karel course is still available for schools to finish their courses. It will be discontinued at the end of March 2016.

We incorporated into Karel Jr many ideas that teachers and students shared with us during 2015 – THANK YOU! Here is a brief summary of main changes and new features.

Number of levels has doubled

The number of game levels increased from 70 in the original Karel course to 140 in Karel Jr. New levels were added mostly as additional practice for concepts that were known to cause trouble to some students – such as repeat loops and nested loops.

Smoother learning curve

The learning curve in the original Karel course had a few steeper parts. In particular between Section 2 (typing elementary commands) and Section 3 (repeat loops). Therefore, Karel Jr has 21 game levels on repeat loops where the original Karel had just 7. It also has 21 levels for if-else conditions where the original course had 7. And there are 14 levels on while loops where the original course had 7. Similar expansion happened to the remaining concepts as well.

Karel Jr covers more ground

Furthermore, allocating more space allowed us to discuss the main concepts in more detail. This includes best practices, frequent mistakes, and selected special cases. Now there is one entire section dedicated to variables, prior to a section on functions. The concept of local and global variables is now explained in much more detail than in the original course, etc.

Stepping through programs

Typical workflow in the original Karel course included a tutorial-style explanation of a new concept. After that, students were asked to apply the concept to solve a simple problem. For some students this was too steep. Therefore, we changed the approach in Karel Jr: After a new concept is introduced, students are presented with a simple task which is solved. They step through the program, to see in great detail line by line how it works. It turns out that stepping through a simple program is better than a 1000 words.

After that, typically, students have to write the same or a very similar program on their own. This confirms that they understood the concept well. The next game level then adds a small new element of complexity or just changes the application of the same concept a bit. We are pleased to say that this change has received an overwhelming positive response so far. Also the response from students during our recent Winter Camp was super positive.

Summary after each section

At the end of every section (7 games), the student is presented with a summary of what he or she learned.

Splitting complex tasks into multiple game levels

Some tasks in Karel Jr 3 and Karel Jr 4 require solving a sub-problem and use the solution to solve a master problem. Whenever this is the case, there is now a separate game level dedicated to the sub-problem. This was not the case in the original Karel course, which made it difficult for some students. In Karel Jr, students solve the sub-problem first, and get a confirmation that the solution is correct. Then, the solution (such as a custom command or function) is made available to the student in the next level, in order to complete the bigger task.

New Karel is coming

Some, although not many, high schools reported that the story and illustrations in the Karel course are somewhat too juvenile for their students. Interestingly, adult learners never reported that. Nevertheless, we already started the implementation of a new Karel course which will have a more grown-up story and illustrations. The structure of the new course will be very similar to Karel Jr, because the student learning outcomes are the same, but the look and feel will be different.

New features in preparation

Here is a brief overview of some of the things we are currently working on:

  1. Faster rendering of Karel graphics. NCLab currently uses the Raphael library to render vector graphics, which is fairly slow. We are in the process of converting Karel graphics into bitmaps, which will make it much faster.
  2. Students will be able to design their own robot for the Karel course.
  3. New reward system for courses. Students will receive points based on the quality of their programs or 3D models.
  4. Social classroom. Students will have a new icon “My Classroom” on their desktop, where they will see other students’ avatars, progress, creative projects, etc.
  5. Simplification of the My School panel for teachers. There will be no groups in the classroom. All students will have access to all courses by default. The teacher just selects a course in the upper menu, and the progress table will show the progress of all students in this course.

New language versions

Karel Jr. is already available in Czech and its translation to Spanish, Greek and French are in progress. If you’d like to help us translate Karel Jr into your language (and be paid for it), let us know!