We are working on a prototypical implementation of a Live Coding environment. We also want to better understand what kind of errors programmers make, how difficult it is to find them and to fix them and which of those errors are easier to find and/or fix using Live coding.

To help with these goals we are currently conducting a user study evaluating our prototypical implementation and looking at the errors that occur during a typical programming task. We still need participants, so if you know JavaScript, have a few hours of free time, can come to Aachen and like to play around with new programming tools we would be happy if you could take part in the study.

The Prototype

Our prototype is built as a plugin for the open source code editor Brackets by Adobe. It uses Node.js to instrument and execute the code written in Brackets and report the behaviour of the code back to the client which displays it in an assistant pane in Brackets.

The Study

We are looking for participants that are fluent in JavaScript and would like to help us improve the tool as well as our understanding of programming behaviours. Your mission, should you choose to accept it, will be to implement some functionality using JavaScript with or without the plugin (depending on what group you happen to be in) shown on the right. One of the tasks is about implementing an algorithm, one about parsing and one about data conversion.

Benefits

If you take part in the study you may benefit from it in different ways

  • Play around with a cool new Live-Coding prototype. (If you happen to land in the control-group you may play around with it afterwards. ;-) )
  • Have some fun programming stuff while eating free sweets and cake.
  • Receive early access to a alpha/beta version of the plugin as soon as it's ready to be released to a wider public.
  • Learn something about implementing algorithms, parsing or data conversion using JavaScript.
  • Receive a compensation of 25€ for your time.
  • Feel great for supporting research into programming and programming tools.

Taking Part

The study is scheduled to run from 27th of May to 14th of June. Generally, you can select a time slot that starts after 8:00 o'clock and ends before midnight on any day (yes, even Sundays and holidays). As will all programming projects it is rather difficult to estimate the time needed. It is possible to solve all the tasks in 1 hour. Including introduction and debriefing you could be finished in 1.5 hours. But if you get stuck on a problem or have only little experienced using JavaScript it might take you much longer and it could take you up to 5 hours to solve all three tasks. Therefore, we would like you to choose a time slot with at least 4 hours, better 5 hours. If you have less time, but would like to take part, you can tell us in advance how much time you have and we will distribute that time across the tasks and stop each of the tasks in time if it takes you too long to solve it. But you should have at least 2.5 hours. We recommend that you look at the self assessment to find out whether your JavaScript and programming experience is sufficient and how long it will likely take you to complete the tasks.

Below you can see what times are already taken. If you would like to take part please send an email to This email address is being protected from spambots. You need JavaScript enabled to view it..

Please also tell us, what operating system (Windows 7 / OS X 10.8), pointing device (two-button mouse with scroll wheel, Magic Trackpad), and keyboard layout (Mac US / Mac German / Windows US / Windows German / other) you would like to use during the study. We want to provide a coding environment you are used to and prevent you from searching for the correct keys to press due to an unfamiliar keyboard or unfamiliar shortcuts and will try to set everything up according to your preference. The default setup is OS X 10.8 with a a two-button mouse with scroll wheel and Mac US keyboard. If you have any preferences not listed above you can can also tell us about it and we will try to make it happen. You may also bring your own pointing device or keyboard if ypu prefer to use that, as long as it doesn't require a special driver it should work. Just tell us in advance please.

Location

To take part in the study you will have to come to the computer science building of RWTH Aachen University at Ahornstraße 55 in Aachen, Germany. The study takes place in room 2010 in the main building of the computer science building. If you need a description how to get to the computer science building or how to find room 2010 please tell us in your contact email.

Free Time Slots

This table shows you what time slots are already taken. If possible choose a time slot with at least 4, better 5 hours and send an email to This email address is being protected from spambots. You need JavaScript enabled to view it. detailing what time slot you prefer. We will then check whether it is still available, update this table and confirm your time slot.

If you do not receive an answer within one day, it probably means your e-mail did not reach us. If that's the case try to write an email to joachim (dot) kurz (at) rwth-aachen.de.

 Saturday, 08.06.2013Sunday, 09.06.2013Monday, 10.06.2013Tuesday, 11.06.2013Wednesday, 12.06.2013Thursday, 13.06.2013Friday, 14.06.2013
8:00              
8:15              
8:30              
8:45              
9:00       reserved      
9:15            
9:30            
9:45            
10:00     taken      
10:15          
10:30          
10:45          
11:00          
11:15          
11:30          
11:45          
12:00          
12:15          
12:30            
12:45            
13:00            
13:15            
13:30            
13:45            
14:00            
14:15            
14:30            
14:45            
15:00              
15:15              
15:30     taken        
15:45            
16:00            
16:15            
16:30            
16:45            
17:00            
17:15            
17:30     taken      
17:45          
18:00          
18:15          
18:30          
18:45          
19:00          
19:15          
19:30          
19:45          
20:00          
20:15          
20:30            
20:45            
21:00            
21:15            
21:30            
21:45            
22:00            
22:15            
22:30              
22:45              
23:00              
23:15              
23:30              
23:45              
Time table last updated on 05.06.2013 15:50.

Self-Assessment

Depending on your JavaScript knowledge and programming skills the study might take quite a different amount of time. The following questions are meant to help you judge your skills. If you can answer all of the questions quickly and without a problem you will likely be finished under 3 hours. It is not a problem if you get some of the answers wrong as long as you understand why the given answer is correct. If you have to think about the questions for a long time or answer several wrongly and have some problems understanding why the given answers are correct you are still welcome to take part, it might just take you longer to complete the tasks and you should be prepared not to be finished under 3 hours it might even take 4 or 5. But of course, how well you can do the tasks partially depends on luck (whether it's a a task that's something you do often, whether you make a typo that introduces a bug that is really hard to find etc.), so it can only be an estimate.

If you think that you found an error in the answers please execute the code to see whether you are right. If you are still convinced that the answer is wrong after executing the code, please send an email to This email address is being protected from spambots. You need JavaScript enabled to view it.

For-in Loops

What is the final value of x after the following code has executed?

var myObj = {
	names: {firstname: "Paulchen", lastname: "Panther"}, 
	age:25, 
	favoritecolors: ["red", "green", "blue"], 
	doSomething: function () { /* does something */ }
}
var x = [],
	p1, p2;
for (p1 in myObj) {
	x.push(p1);
}
console.log(x);
		
Show me the answer!
For-in Loops 2

What is the final value of x after the following code has executed?

var myArray = ["red", "blue", "green", "red", "blue", "green", "red", "blue", "green", "red", "blue", "green"];
var x = [],
	p1, p2;
for (p1 in myArray) {
	for (p2 in p1) {
		x.push(p2);
	}
}
console.log(x);
		
Show me the answer!
Asynchronous Stuff

What is the output of the last log statement?

var x = 2;

function doAsynchronousStuff() {
	setTimeout(function () {
		x = 3;
	}, 10);
	x = 4;
}

x = 5;
doAsynchronousStuff();

console.log(x);
		
Show me the answer!
Functional Programming

What is the output of the last log statement?

var myArray = [2,3,4];
var x = myArray.reduce(function (v1, v2) {
	return v1 + v2;
}, "");
console.log(x);
		
Show me the answer!
Arrays

What is the output of the last log statement?

var myArray = [];
var myObject = {"firstname": "Paulchen", "lastname":"Panther" };
var p;
for (p in myObject) {
	myArray[p] = myObject[p];
}

console.log(myArray.length);
		
Show me the answer!
Arrays 2

What is the output of the last log statement?

var myArray = [];
var myObject = {"2": "Paulchen", "3":"Panther" };
var p;
for (p in myObject) {
	myArray[p] = myObject[p];
}

console.log(myArray.length);
		
Show me the answer!

These questions showed you some of the idiosyncrasies of JavaScript. It is not a problem if you weren't aware of them all and not knowing them all is not necessarily a problem during the study. But you may encounter some of them which might lead to you needing some more time to figure out a working solution. We would still be very grateful if you took the time to take part in our study.


No such attachment on this page

Created by kraemer. Last Modification: Friday 07 of June, 2013 18:59:06 by kurz.

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.