CodeOcean - A versatile platform for practical programming excercises in online environments

The paper at hand introduces CodeOcean, a web-based platform to provide practical programming exercises. CodeOcean is designed to be used in Massive Open Online Courses (MOOCs) to teach programming to beginners. Its concept and implementation are discussed with regard to tools provided to students and teachers, sandboxed and scalable code execution, scalable assessment, and interoperability. MOOCs bear a tremendous potential for teaching programming to a large and diverse audience. Learning to program, however, is a hands-on effort; watching videos and solving multiple choice tests will not be sufficient. A platform, such as CodeOcean, to work on practical programming exercises and to solve actual programming tasks is required. Due to the massiveness of the courses, teaching teams cannot check, give feedback, or assess the submissions of the participants manually. CodeOcean provides the participants with proper automated feedback in a timely manner and is able to assess the given programming tasks in an automated way.

[1]  Michal Forǐsek,et al.  Security of Programming Contest Systems , 2007 .

[2]  Jaakko Kurhila,et al.  Multi-faceted support for MOOC in programming , 2012, SIGITE '12.

[3]  Sumit Gulwani,et al.  Automated feedback generation for introductory programming assignments , 2012, ACM-SIGPLAN Symposium on Programming Language Design and Implementation.

[4]  Christoph Meinel,et al.  Scaling youth development training in IT using an xMOOC platform , 2015, 2015 IEEE Frontiers in Education Conference (FIE).

[5]  Thomas Vikberg,et al.  Scaffolding students' learning using test my code , 2013, ITiCSE '13.

[6]  Dirk Merkel,et al.  Docker: lightweight Linux containers for consistent development and deployment , 2014 .

[7]  Kirsti Ala-Mutka,et al.  A study of the difficulties of novice programmers , 2005, ITiCSE '05.

[8]  Christoph Meinel,et al.  Towards practical programming exercises and automated assessment in Massive Open Online Courses , 2015, 2015 IEEE International Conference on Teaching, Assessment, and Learning for Engineering (TALE).

[9]  Vreda Pieterse,et al.  Automated Assessment of Programming Assignments , 2013, CSERC.

[10]  Hend Suliman Al-Khalifa,et al.  Using App Inventor and LEGO mindstorm NXT in a summer camp to attract high school girls to computing fields , 2014, 2014 IEEE Global Engineering Education Conference (EDUCON).

[11]  Kirsti Ala-Mutka,et al.  A Survey of Automated Assessment Approaches for Programming Assignments , 2005, Comput. Sci. Educ..

[12]  Lauri Malmi,et al.  Experiences in automatic assessment on mass courses and issues for designing virtual courses , 2002, ITiCSE '02.

[13]  Paul Roe,et al.  Learning to program through the web , 2005, ITiCSE '05.

[14]  Christopher Douce,et al.  Automatic test-based assessment of programming: A review , 2005, JERC.

[15]  Petri Ihantola,et al.  Review of recent systems for automatic assessment of programming assignments , 2010, Koli Calling.

[16]  Christoph Meinel,et al.  Lightweight ad hoc assessment of practical programming skills at scale , 2014, 2014 IEEE Global Engineering Education Conference (EDUCON).

[17]  José G. Castaños,et al.  Eliminating global interpreter locks in ruby through hardware transactional memory , 2014, PPoPP '14.

[18]  Ramakrishnan Rajamony,et al.  An updated performance comparison of virtual machines and Linux containers , 2015, 2015 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS).

[19]  Mordechai Ben-Ari MOOCs on introductory programming: a travelogue , 2013, INROADS.