Re: Kojo at Long Night of Sciences at Beuth University of Applied Sciences Berlin

28 views
Skip to first unread message

Lalit Pant

unread,
Jun 14, 2015, 3:57:39 PM6/14/15
to Knabe, Christoph, Björn Regnell, Simone Strippgen, kojo...@googlegroups.com
+ kojo-user mailing list

Hi Christoph,

Thanks for sharing information about the event. It's great to hear about the success of the event.

> @Lalit: Where does Kojo take the directory from, where it stores the history?

Kojo delegates to the embedded H2 database driver, and passes it a path relative to the user's home directory:
  val conn = DriverManager.getConnection("jdbc:h2:~/.kojo/lite/db/kojo", "sa", "");

> May be it would be sufficient to run Kojo with -Duser.home=\\tsclient

This has a good chance of working. Let me know how this works out.

Regards,
- Lalit


On Sun, Jun 14, 2015 at 12:20 PM, Knabe, Christoph <kn...@beuth-hochschule.de> wrote:
Hi Lalit and Björn,


yesterday we had the first run of the mini-course "How do I say it to the Computer?" with the german version of Kojo and our german translation of Björns challenges.

The success was bigger than we expected. The event lasted from 17 to 24 hours and from the first moment up to midnight we had learners in our lab. In the beginning they were mostly children with some parent, from 22h nearly all were adults. At the peek about 21:30 we even had to open the second room, because all 22 screens in the first room were occupied. The free-come-and-go format also worked very well.
Some learners tried only for a short period and merely succeeded to draw a square, some stayed several hours and created their own drawings. Some of them requested help, others tried to do all by themselves. Some of them had prior exposure to programming, some never did such a thing before. Just I received a message of one saying "Thanks that you made the entry to programming for us so easy."

So I want to forward the thanks to you both for enabling this great tool, internationalization and the nice tasks.

Now about some problems:

1) german API: May be we should use "gehen" (to go) instead of "vor" for "forward", as the usage would be more consistent with the pair jump/jumpTo. For forward movement we now use in english "forward(n)" for n px, and "moveTo(x,y)" for going directly to (x,y) drawing a line. When jumping instead of going we consistently use "jump(n)", and "jumpTo(x,y)".

2) Challenges: I observed that many learners stay longer than I think is useful at the  early challenge of "Draw a Figure" with the robot-like Felix. Instead I would have liked them to use loops and functions. Maybe we should shift this challenge to a later position or we should simplify the example figure. The learners too much used absolute coordinates instead of using a bit of abstraction.
Also I can propose an additional challenge after the stack function, which I used in my CS1 exercises. When repeating the stack n times with a little turning you get a very nice looking windmill. See the last drawing in the attachment.

3) We used Kojo on a Windows Terminal Server with the same username for all clients. This is easier than to create a separate user for each client. The consequence was, that only the first user had the history function, and the next users on the same server could not open it, as it was locked by the first user.

@Lalit: Where does Kojo take the directory from, where it stores the history?

May be it would be sufficient to run Kojo with -Duser.home=\\tsclient


Best wishes,

Christoph



Christoph Knabe

unread,
Jun 15, 2015, 10:05:40 AM6/15/15
to kojo...@googlegroups.com, stri...@beuth-hochschule.de, bjorn....@cs.lth.se, kn...@beuth-hochschule.de
I tried out the special scenario of running multiple Kojo users with the same username on one Windows Terminal Server.
The first one gets access to the history database, the laters get the following error message in the program output area:

"Problem initializing savable history:
Database may be already in use: "Locked by another process". Possible solutions: close all other connection(s); use the server mode [90020-168]

Unable to save history during this session"

We already had to start Kojo for server usage by a batch script running Main instead of DesktopMain and giving all necessary .jar files on the command line.
I could circumvent the upper problem by inserting -Duser.home=instanceSpecificDir into the java command line starting Kojo.

So I think nothing needs to be changed inside of Kojo. We only need to know some client-specific name. Then we can instruct Kojo to use a directory of that name for its history. 

Am Sonntag, 14. Juni 2015 21:57:39 UTC+2 schrieb Lalit Pant:

Hi Christoph,

Thanks for sharing information about the event. It's great to hear about the success of the event.

> @Lalit: Where does Kojo take the directory from, where it stores the history?

Kojo delegates to the embedded H2 database driver, and passes it a path relative to the user's home directory:
  val conn = DriverManager.getConnection("jdbc:h2:~/.kojo/lite/db/kojo", "sa", "");

> May be it would be sufficient to run Kojo with -Duser.home=\\tsclient

This has a good chance of working. Let me know how this works out.

Regards,
- Lalit
 

Björn Regnell

unread,
Jun 15, 2015, 10:52:34 AM6/15/15
to Lalit Pant, Knabe, Christoph, Simone Strippgen, kojo...@googlegroups.com

Nice to hear that it was a great success!! Programming in Scala with Kojo is fun :)

 

Regarding the "Draw a character of your choice" challenge:

https://bitbucket.org/bjornregnell/scaboo/src/5247de50ddd6dabb918ea16a3a12b546071f7e89/kojobook/book-en.scala?at=master#cl-73

Yes, there is a risk that they "get stuck" with too few tools of abstraction and spend many lines of code on rote stuff that could be done with a loop over an abstraction etc. I sometimes skip this challenge and go back to it after we they have learned to make a def with parameter, but this depends on how much time the learner is prepared to invest. If the creation process of making something of your own needs to come early the I go for "Draw a character of your choice" and when you then get a chance to loop over an abstraction many say "THANKS this is exactly what I needed"... On the other hand... So: it depends. What you could do is try different progressions and compare how those progressions apply to different type of learners with different pre-knowledge and motivation etc.

 

I think you should update the german api as soon as possible before too many learners start to rely on it, if it really needs changes...  (My old Swedish api is now difficult to change as many schools rely on it, but I can at least add stuff ...)

 

//B

Lalit Pant

unread,
Jun 18, 2015, 3:55:20 PM6/18/15
to Christoph Knabe, kojo...@googlegroups.com, Simone Strippgen, bjorn....@cs.lth.se
> So I think nothing needs to be changed inside of Kojo. We only need to know some client-specific name.
> Then we can instruct Kojo to use a directory of that name for its history.

That sounds right, Christoph.

/L



--
You received this message because you are subscribed to the Google Groups "kojo-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kojo-user+...@googlegroups.com.
To post to this group, send email to kojo...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kojo-user/423bcc31-e5bf-4494-afb0-b383184dcd74%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages