Ideas Gsoc'15

Project: Easy Game building tools in Wollok.
Possible Mentors: Nicolás Scarcella, Pablo De Haro
Description:
Wollok is a programming language and IDE designed for be used in the teaching of programming languages. Vainilla and Chocolate are two tools for the development of Video Games. Wollok and Vainilla is used in the teaching of object oriented programming and video game development. 

The main idea, is the integration of both tools. Providing to Wollok of the capability of developing small 2D board games. These small games are much more interesting than any exercise we can design. 

Being more interesting is a key factor in the involvement of the students in the class. 

The implementation should need to have:

  • An easy way of displaying sprites and objects in the board.
  • Move them using object oriented commands.
  • Interact with them with the keyboard or the mouse.
  • Be able to add responses to events, in the form of methods in the objects.

Student Level: Medium
The student should have a basic knowledge of Java or Xtend. A basic understanding of game development or event oriented programming can be useful.

Contribution: 
Ozono, another Uqbar's tool, and Vainilla are used in the teaching of Object Oriented Programming skills. Both tools are used in Argentinian Universities, having hundred of students every year.  Wollok is the evolution of Ozono, so this year will be used in replacement of Ozono. Having a better tool, that can be more interesting for the students can help to increase the successful of the courses. Having a playful platform, all integrated and with a set of exercises and teaching material, can also be used in High School courses.

Project: Integrating Arena and Voodoo
Possible Mentors: Nicolás Passerini, Nicolás Scarcella

Description:
Arena is an educational MVB (i.e. binding-based MVC) framework which allows to build graphical applications in several JVM-based languages, such as Java, Scala, XTend and Groovy. 

Arena bindings allow to automatically keep models and views synchronized. To do so, the framework uses AOP to generate events whenever a domain object changes its state. Currently Arena aspects are constructed on top of Javassist, which is a nice but extremely low level tool. As the Arena project has been growing, Javassist has become a limitation to create more complex aspects.

Independently, we have development a tool called Voodoo which provides a nicer interface to manipulate JVM bytecodes. The objective of this project is to take advantage of Voodoo in order to improve Arena.

Student Level: Advanced
The student should have good knowledge of Java and Scala and basic concepts about bytecodes and AOP.

Contribution: 
Arena is used with educative purposes in three different universities in Argentina in order to teach the basic concepts of MVC and UI Construction. Improving the lower layers of Arena will allow to build several new features. We expect that these improvements will help that more students have a better experience while learning how to build a GUI.

Project: Adding Automatic Class Diagrams to Wollok
Possible Mentors: Nicolás Passerini / Javier Fernandes

Description:
Wollok is a programming language and IDE developed with the aim of teaching Object Oriented Programming. It has a set of integrated tools developed on the Eclipse's Xtext platform. It does provides the user with a basic UML Class Diagram. This diagram is useful to the user, who is learning the first programming skills, helping him to understand what the program is doing.  

We would like to improve these diagrams by:
  • Better graphics
  • Automatic positioning of new nodes so that all nodes are visible.
  • Allowing to interact with the objects in the graph, i.e. modify the definition of classes and inheritance.
Student Level: Intermediate
The student should have knowledge of the Java or Xtend Language, and a basic idea of Java 2D and GEF.

Contribution: 
Wollok is the natural improvement of a working software, Ozono. Ozono is used to teach object-oriented programming to hundreds of students every year. Wollok is going to be used as a replacement for Ozono. This new tool adds lots of new features and the integration of concepts, like objects, classes and IDE is smother than in Ozono. Interactive diagrams will allow the students to improve their knowledge of object-oriented programming.

Project: Integration of Mumuki and Wollok

Possible Mentors: Franco Bulgarelli / Pablo Tesone


Description:

Wollok is a language and IDE designed for the teaching of Object Oriented Programming. It does focus on the main concepts of the paradigm, and it has a clear way of adding new concepts guided by theoretical classes and practical exercises. 

Mumuki is a online learning platform. The user can accomplish different exercises, and the exercises are tested by the platform. Nowadays, Mumuki supports Ruby, Haskell and Prolog. 


The main objective is the integration of Wollok into Mumuki, adding a clear integration of the Wollok IDE, with the online platform. Allowing the users to:


  • Download exercises and examples.
  • Upload solutions for the exercises.
  • Get answers of the tests executed in Mumuki.
  • Have a checkstyle of their code.
  • Write additional tests and exercises in Wollok to be used in Mumuki. 
  • Provide a way of easily sharing code between students and with the teacher.


Student Level: Medium / Advanced

Mumuki is built on top of Ruby, and Wollok is using Eclipse's XText SDK. So, a basic understanding of Ruby and Xtend is required. A basic understanding of the way Xtext work or how to consume REST services can be useful. 


Contribution:

Wollok is a new teaching tool, which will be used in Argentinian Universities for teaching Object Oriented Programming. This tool also has a framework of exercises and teaching material, so it can be easily used in many other new universities and colleges. Having an online automatic tool can be useful, not only for classroom courses, but also for online courses. It will boost the amazing results Ozono, the previous OOP teaching tool, have; allowing the growth of the teaching community and the affected students. Nowadays, Ozono is used by hundreds of students in 4 Argentinian universities; and Wollok will be it replacement.


Project: Arena Mobile

Possible Mentors: Ronnie De Jesus / Pablo Tesone


Description:

Arena is an educational MVB (i.e. binding-based MVC) framework which allows to build graphical applications in several JVM-based languages, such as Java, Scala, XTend and Groovy.


Arena bindings allow the automatic synchronization of the models and the view. This framework allows the construction of desktop based UI. In Arena the definition of the UI and the rendering is separated in layers, so the same definition can generate different products. Nowadays only exists a render for SWT.


The main idea of this project is the implementation of a render to be able to generate Mobile applications.


It’s not only the transformation of the UI Widget, but the rendering has to take care of the differences between the devices.


The main idea is not to have the same windows in both devices, mobile and desktop, but to have the same way of definition of the UI. Taking advances of the use of bindings, transactions and declarative definition that Arena already have.


As a part of the actual development of Arena some proof of concepts has been built, but this tests has to be integrated with the actual tool.


Student Level: Medium / Advanced

The student should have good knowledge of Java and Scala and some Android UI development..


Contribution:

Arena is used with educative purposes in three different universities in Argentina in order to teach the basic concepts of MVC and UI Construction. Having a tool that can produce Mobile Application allows the different UI courses that uses Arena to center in the differences and the main concepts of a mobile application.

Project: Queries for Arena Persistence

Possible Mentors: Fernando Dodino / Pablo Tesone


Description:

Arena Persistence is a small persistence layer compatible with several JVM-based languages, such as Java, Scala, XTend and Groovy.


This layer integrates with Arena and allows the student to integrate his application with a industrial level persistence solution. It hides all the problems and drawbacks of more complex solutions centering in only the basic concepts.


As it is used in software design courses it encourages the users to good practices putting interest in concepts like: identity, relationships, queries, object oriented design.


It is not intended to have a great performance. It is built on top of Neo4J graph oriented database.


The main idea of the project is the construction of a DSL that allows the user of the database to perform queries over all the data stored. Nowadays the queries are performed by examples only.


Also the new DSL have to be expressed in terms of object oriented design, it has to be closer to HQL (Hibernate Query Language) than to SQL.



Student Level: Medium

The student should have good knowledge of Java and Scala. A small expertise on DSL building can be desirable.


Contribution:

Arena Persistence is used only with educative purposes in three different universities in Argentina in order to teach the basic concepts of Software Design, Integration and Object Oriented Persistence. This tool allows the students to get a full working application without entering in the complexity and problems of tools like Hibernate. This tool allows an easy migration to other industrial level tools.


Comments