NCLab Updates (Summer 2016)

Dear Teachers, Librarians, and Parents!

During the Summer, our team has been working very hard to improve courses, free apps, as well as the entire NCLab platform to serve you better. Before you go back to your classroom, library program, or afterschool coding club, we would like to give you an update. In fact there are hundreds of them, so we will just mention a few:

Karel Jr. Course

If you are an expert in the Karel programming language, you might have noticed a flaw in advanced uses of recursion. It is gone now. The Karel parser was rewritten from scratch. It is now cleaner, more efficient, and offers more features of the Python programming language than the old one. Here are a few of the new additions:

1. It is now possible to pass arguments into functions.
2. Function arguments can have default values (def y(x1, x2 = 0)).
3. Strings and arrays concatenation (‘abc’ + ‘efg’, [12, 3] + [5]).
4. Slicing ([0, 1, 2][0:2:1]).
5. The ‘in’ expression “4 in [0, 1, 4]”, “for i in [1, 3, 5, 7, 9]”.
6. Augmented assignment statements ‘+=’, ‘-=’, ‘*=’, ‘/=’, ‘%=’, ‘**=’.
7. The statement ‘del’ like in Python, i.e., we may have more than one argument (del var1, var2, …).
8. The statement ‘if’ has the ‘elif’ part (if expression statements elif expression statements …).
9. The statements ‘while’, ‘for’ and ‘repeat’ have ‘else’ parts (while expression statements else statements, …).
10. Names of variables and functions may be entered in non-latin letters (ą, č, ę, А, В, Г, Д, Є, …).

We really care about the quality of error messages, because they to some extent replace the feedback that otherwise would be provided by a human instructor. Any time a student makes a mistake, NCLab is notified about it on an anonymous basis. We use this information to improve instruction. In particular, students have been making a lot of mistakes in indentation of blocks. Now they get more help:

Also the contents of the course itself has been developed. The number of levels has grown from 70 to 175. We incorporated many requests from teachers. Critical subjects such as loops and nested loops have been extended most significantly. The process of improving the courses is ongoing. Soon, students will be rewarded with points for the quality of their programs. This feature is still being tested and it should be released in late August.

Turtle Course

This course was thoroughly revised this summer. While many implementations of the Turtle can be found online, and the Turtle even is part of the standard Python distribution, the NCLab Turtle is different. She can create 3D-printable objects. This is an incredible incentive for students as it allows them to reap the rewards of their hard programming work in a tangible form. This is the Triquetra pendant:

This is a cookie cutter that actually works:

And this is a simple water wheel that works too:

While the first version of the Turtle course was traditional and “flat”, now almost all levels deal with 3D-extruded objects. It’s just so much more fun! Here is a spiral:

The Turtle language has developed as well. During our CSTA 2016 conference workshop, teachers asked whether the Turtle can change the extrusion height while drawing. It was not possible at that time, but we implemented it right after returning to our den. Tina can now create walls,

as well as regal crowns:

We also found and fixed some bugs but let’s not dwell on that OK? The Turtle can now export her trace as a 3D object which then can be manipulated using 3D modeling techniques and made part of more complex 3D models. For example, this is the famous Celtic charm Triskelion, drawn by Tina, exported to 3D, and installed on top of a base plate. The plate has a nail hole in the back so that it can be displayed on a wall:

These two hearts are connected forever (how romantic). But Tina drew just one of them. The rest was done using simple 3D modeling operations:

And last, this four leaf clover has an eyelet hole drilled into it in the top part. Tina can’t do this by herself, but 3D modeling druids helped her:

Last but not least, the Turtle now can step through programs! Stepping has proven to be incredibly helpful in the Karel course. Students can understand loops and other new concepts so much easier when they can walk through sample programs one line at a time. Implementing stepping in the Turtle was a challenge, because as opposed to Karel, Turtle programs are being sent to server and evaluated remotely. But, thanks to our ingenious developers, this problem was solved. Your browser will communicate with the server while you step through Tina’s programs, but not after every line. Again, stepping makes understanding of key concepts so much easier. Try for yourself!

3D Modeling Course

The entire course was extensively revised and improved. It has now over 170 levels. Based on feedback that we received from teachers and librarians, we slowed down the pace and added more exercises to accompany important concepts. Whole new sections were added, such as a section on spirals. This is how the inside of your mechanical meatgrinder looks like (if you have one):

Students get to build a playground slide,

a staircase with handrail,

but also the really important things such as a flying key from Harry Potter:

We have revisited error messages in the 3D Modeling course too. Previously they were text-based. But a picture is worth more than a thousand words. That’s why now, when the student makes a mistake, we show him his design along with the correct design (words are still used but not so many):

The section on design automation and repeating patterns has tripled its size, and we could just go on and on. But let’s stop here. Try the course with your students. We guarantee that they will learn a lot of geometry and math, and that their spatial reasoning skills will go through the roof.

Python Course

The Python course is being very significantly improved and extended as we speak. For one, the new version of the course will have stepping. We did not have it when the first version was developed. Moreover, there will be a very cool object-oriented programming part where the students will build their own Python Turtle, and teach her everything from first steps to creating cool 3D designs. And there is so much more! But we won’t tell you everything. Come back at the end of October when the new version of the Python course will be released!