Pharo GSOC 2015
Ideas List

Pharo is a pure object-oriented programming language and a powerful environment, focused on simplicity and immediate feedback (think IDE and OS rolled into one).

Guidelines

Information for Students

These ideas were contributed by our developers and users. They are sometimes vague or incomplete. If you wish to submit a proposal based on these ideas, you may wish to contact the developers and find out more about the particular suggestion you're looking at.

Being accepted as a Google Summer of Code student is quite competitive. Accepted students typically have thoroughly researched the technologies of their proposed project and have been in frequent contact with potential mentors. Simply copying and pasting an idea here will not work. On the other hand, creating a completely new idea without first consulting potential mentors is unlikely to work out.

If there is no specific contact given you can ask questions on the general Pharo development list [email protected]. See the Pharo community page for information on available mailing lists and how to subscribe.

Adding a Proposal

Please propose your own project by following the following template. You can edit the list on github here: https://github.com/pharo-project/pharo-project-proposals/blob/master/Topics.st and send a pull request.

     PharoTopic new
       title: 'The name of your project;
       contact: 'email address';
       supervisors: 'Supervisors names';
       keywords: 'keywords separated by spaces;
       context: 'a description of the context of the project';
       goal: 'description of the goal';
       level: 'Beginner or Intermediate or Advanced';
       yourself.
    

Administration

Do not hesitate to ask questions. Administrators of this year’s application are Serge Stinckwich and Yuriy Tymchuk.

TitleEnhancing Pillar
Emaildamien.cassou@inria.fr
Supervisors D. Cassou and S. Ducasse
KeywordsPillar epub Document tree visitor
ContextPillar is a markup syntax that is easy to use and learn. This markup syntax generates a document tree. Pillar can export to HTML, LaTeX (to produce PDFs) and Markdown. Pillar has already been used in several projects (http://www.smalltalkhub.com/#!/~Pier/Pillar)
GoalThe goal of this project is to enhance Pillar with many behavior. Damien has a long list of feature requests.
LevelBeginner
Candidate

TitleSokoban
Emailstephane.ducasse@inria.fr
Supervisors S. Ducasse
Keywords Games SameTile Miner Sokoban
ContextThere is an implementation of the Sokoban game in Pharo. However there is not a clear separation between the game model and its graphical representation.
GoalThe goal of this project is to revisit the implementation to make sure that the game is defined via a model that can then be displayed graphically. Right now the logic of the game is mixed with its graphical representation. The tasks can be: (1) Understand the actual implementation, (1) start to see how we could have a model that does not depend on Morphic, (3) implement this new game. A nice following project would be to see how we can create a framework to build games such as Same Tile, Miners and that would make easier the definition of board games
LevelBeginner or Bachelor
CandidateTopic still free

Title7GUIs implementation
Email
Supervisors
KeywordsGUI learning-curve
ContextBenchmarking how hard easy is to implement GUIs in a given platform is probably a decisive factor on how good the opportunities this plattform has to offer. The 7GUIs benchmark is a nice research on GUI building usability and having a Pharo implementation will illlustrate the power of this platform. Ref: https://github.com/eugenkiss/7guis/wiki
GoalBe able to see a Pharo implementation for 7GUIs
LevelIntermediate
CandidateTopic still free

TitleClean Debian packaging
Emailmfritsche@reauktion.de
Supervisors Markus Fritsche
Keywordspackaging debian linux
ContextDebian is a well-known and free Operating System (OS) consisting of tens of thousands of packages.
GoalThe goal of this project is to improve current packaging of Pharo for Debian and to follow the new Debian maintainer process to get Pharo included in Debian.
LevelBeginner
CandidateTopic still free

TitleStepping Interpreter
Emailclement.bera@inria.fr
Supervisors Clement Bera and Marcus Denker
KeywordsAST interpreter
ContextSince Pharo 30, an AST interpreter is available in Pharo. It is really interesting since we use it to build a test coverage tool in a couple of hours.
GoalNow the Pharo interpreter design prevents us to build a debugger (with a step by step behavior). The goal of this project is to transform the interpreter into an interpreter using an explicit stack so that the stack can be used to implement step by step program execution. The Amber interpreter is a stepping interpreter and a good source of inspiration.
LevelAdvanced
CandidateTopic still free

TitleTest to Fix first
EmailStephane.Ducasse@inria.fr
Supervisors S. Ducasse and N. Anquetil
Keywordstools tests
ContextWhen a bunch of tests are failing this is always a problem to know which one to fix first. In his PhD Markus Gaelli proposed a nice way to build a test fingerprint (based on which methods were invoked in a test) and to sort them.
GoalThe goal of this project is to apply the idea of Gaelli and to propose a tool to help deciding which tests to fix
LevelIntermadiate
CandidateTopic still free

TitleBetter Message Browser
Emailjfabry@dcc.uchile.cl
Supervisors Johan Fabry / S. Ducasse
Keywordstools ui spec
ContextThe browser showing results of senders and implementors won't help you navigate in the call chain. Often we want to perform a sender on a message and would like to see if there are senders of the senders. This is typically interesting when doing cleaning.
GoalThe goal of the project is to define a tool to support message browsing.
LevelIntermediate
CandidateTopic still free

TitleWeb OpenStreet map manager
Email
Supervisors
Keywordssvg open street visualisation web amber seaside
Context OpenStreet is an open source standard for high-quality maps.
GoalThe goal of this project is to build a simple web application that let users managing their own maps like googlemap but in a better way. An example could be http://umap.openstreetmap.fr/
LevelCurrently undefined, we are working on it.
CandidateTopic still free

TitleFrom BNF to PetitParser
EmailStephane.Ducasse@inria.fr
Supervisors who wants
Keywordsparsing
ContextPetit Parser is a cool framework to build parsers and composed them but it lacks a way to import existing grammars defined in BNF.
GoalThe goal of the project is to support the creation of parsers based on BNF description. Deep into Pharo contains a tutorial on PetitParser
LevelCurrently undefined, we are working on it.
CandidateTopic still free

TitleSQL Alchemy in Pharo
Email
Supervisors
Keywordspersistence database sql relational dsl
ContextBig-data is a growing market that is easy to mine with a tool like Python's SQL Alchemy. A Pharo version of such powerful tool would open this market opportunity for people wanting to offer Pharo-based solutions in this segment. Smalltalk's syntax and tooling superiority could provide a significant push forward in this technology competitiveness because they might empower Pharo users to deliver solutions faster (ref: http://www.sqlalchemy.org/)
GoalHave a beta working version of a SQL Alchemy like framework in Pharo
LevelIntermediate
CandidateTopic still free

TitleREPL IDE
Email
Supervisors
KeywordsREPL IDE tooling
ContextSmalltalkers are used to very powerful IDEs. What if we have to put Pharo in a really underpowered or monitorless device? Having a powerful REPL IDE that can evaluate expressions, inspect and debug, would empower users to still do things in mini-devices during the incoming tide wave of internet-of-things.
GoalBe able to evaluate expressions, inspect and debug Pharo programs using a REPL and a terminal
LevelIntermediate
CandidateTopic still free

TitleGit Library for Pharo in Pharo
Emaildamien.cassou@inria.fr
Supervisors D. Cassou and Max Leske
KeywordsProtocol GIT
ContextGit is becoming the defacto standard for managing source code and versioning them.
GoalThe goal of this project is to continue the development of the git library that can let Pharo talk directly to a git server. The student will have to implement what is missing, that is to say: the Git network protocol with good unit-tests (already started). The first task will be look at the current effort and then study the python implementation as well as reading the specification.
LevelIntermediate
CandidateMax Leske

TitleBaobab
Emailcamille.teruel@inria.fr
Supervisors C. Teruel
KeywordsAST IDE annotation social-coding
ContextPharo sources are currently stored in a separated file. Bonsai, the future system for persistent and compressed ASTs will replace this file to store all the sources in the image. Moreover, the nodes of the ASTs can be annotated with various informations (bindings, additional comments, discussions, false positive critics, debugging code, typing information for various pluggable type systems, statistics like code coverage, etc...).
GoalAll these annotations would take too much space in the image. Moreover, not all of them are needed by all developers. The goal of Baobab is to store these annotations on remote repositories so that teams of developers can share and edit them.
Levelintermediate
CandidateTopic still free

TitleSameTile
Emailstephane.ducasse@inria.fr
Supervisors S. Ducasse
KeywordsGames SameTile Miner Sokoban
ContextThere is an implementation of the SameGame game in Pharo. However there is not a clear separation between the game model and its graphical representation.
GoalThe goal of this project is to revisit the implementation to make sure that the game is defined via a model that can then be displayed graphically using different ways. The tasks can be: (1) Understand the actual implementation, (1) start to see how we could have a model that does not depend on Morphic, (3) implement this new game. A nice following project would be to see how we can create a framework to build games such as Same Tile, Miners and that would make easier the definition of board games
LevelBeginner or Bachelor
CandidateTopic still free

TitleRevisiting Environments
Emailstephane.ducasse@inria.fr
Supervisors S. Ducasse and Yuriy Tymchuk
Keywordsenvironments scoping
ContextIn Pharo we have three ways to scope queries: RBEnvironment, SystemNavigation, and SystemDictionary. We should revisit the environments (to scope classes in the system)
GoalThe goal of this project is to design a new environment to support system querying. The tasks are (1) Studying RBEnvironment, SystemDictionary and SystemNavigation(2) Implement a new environment hierarchy, (SystemDictionary could be a leave in the hierarchy. Write many tests and experiment with scenario. (3) Experiment and study the impact on the existing system
Levelintermediate
CandidateTopic still free

TitleMerlin in Spec
EmailStephane.Ducasse@inria.fr
Supervisors S. Ducasse and Johan Fabry
KeywordsWizard spec
ContextMerlin is a good framework for building wizards. However, it was developed before Spec.
GoalThe goal of the project is to make sure that Merlin is now based on Spec. It will make sure that Merlin can work on different UI framework.
LevelIntermediate
CandidateTopic still free

TitleNew Collections for Pharo
Emailstephane.ducasse@inria.fr
Supervisors Stephane Ducasse
KeywordsCollection DataStructure Benchmarks
ContextSince Pharo 30, an AST interpreter is available in Pharo. It is really interesting since we use it to build a test coverage tool in a couple of hours.
GoalSmalltalk is proud of its collection hierarchy. However some collections are missing. The goal of this project is to select, implement and tests some missing collections. For example, we can think of: (1) double linked lists, (2) circular list, (3) immutable list, set, array, (3) quadtree, Btree, Trie Links: - Camillo Bruni master contains a chapter on how to benchmark for collections http://scg.unibe.ch/archive/masters/Brun11a.pdf - http://source.lukas-renggli.ch/container started to implement some new collections for Pharo. - http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-851-advanced-data-structures-spring-2010/lecture-notes/
LevelAdvanced
CandidateTopic still free

TitleGit integration for Pharo
Emaildamien.cassou@inria.fr
Supervisors D. Cassou and Max Leske
KeywordsProtocol GIT
ContextGit is becoming the defacto standard for source code versioning.
GoalThe goal of this project is to continue the development of FileTree and GitTree two projects that offer the possibilities to store Git sources in Git. The goal of this project is to integrate Git within Pharo. The Git object model has already been implemented. The student will have to develop: (1) a new back-end for Monticello (Pharo's revision control system) that fetches from and saves to a Git repository (already started); (2) a simple graphical user interface (written in the Spec GUI framework) to manipulate Git repositories. To fulfill the project's goal, the student will first have to learn Pharo, Git (and its underlying network protocol) and Spec.
LevelAdvanced
CandidateMax Leske

TitleRethinking OSProcess Integration
Emailesteban.lorenzano@inria.fr
Supervisors Esteban Lorenzano (and Damien Pollet)
KeywordsOS VM
ContextWe need a way to invoke OS low-level functionality from the language. This will let programmers develop scripts in Pharo and integrate better with the OSes
LevelAdvanced
CandidateTopic still free

TitleSQLServer client
Email
Supervisors
Keywordspersistence database
ContextSome Smalltalk applications that have SQLServer as dependency needs to extend and modernize features and while Pharo is a great platform to do that it is challenged by not having a practical SQLServer client that is suitable for production.
GoalHave a beta working version SQLServer client in Pharo
LevelIntermediate
CandidateTopic still free

TitleParseTree Rewriter Improvements
Emailstephane.ducasse@inria.fr
Supervisors C. Teruel and S. Ducasse
KeywordsAST tree visitor
ContextThe Parse tree rewriter is a powerful engine. It is used to support automatic rewriting of program and it is the basis of the refactoring engine. It is based on a unification algorithm that unifies trees with meta variables to abstract syntax trees.
GoalThe goal of this project is to revisit the API of the Parse Tree Rewriter to help people build better tools. Reading the Flamel GSOC project and the new book chapter on such tools is a good start.
LevelAdvanced
CandidateTopic still free

TitleMobile
Email
Supervisors
Keywordsmobile vm
ContextIs not that mobile is a growing market, is more like mobile is going supernova (http://a16z.com/2014/10/28/mobile-is-eating-the-world/). The power of Pharo and its libraries on mobile devices is currently perhaps one of its biggest opportunities to create a really productive environment in mobile.
GoalOpening Pharo images on a new mobile plattform
LevelAdvanced
CandidateTopic still free

TitleRemote Environments
Email
Supervisors
Keywordsdistribution tooling
ContextRemote Environments for Pharo being able to inspect, browse and debug reliably a server Pharo image from a client Pharo image would spark countless possibilities. Some of them: server maintenance; hot debug on GUI-less servers in production; live develop or debug remotely mobile devices that doesn’t have a server. Hot changes in Pharo powered drones and robots.
GoalHave an working version of remote tooling for Pharo
LevelAdvanced
CandidateTopic still free

TitleLine level test coverage and which test to run
EmailStephane.Ducasse@inria.fr
Supervisors who wants
Keywordstesting
ContextIn some languages it is possible to know the tests that exercised on specific line of code.
GoalThe goal of the project is to bring such kind of functionality to Pharo. The student should have a look at the current AST annotation facilities and at the reflexive AST level frameworks such reflectivity or bifrost and use them to build a tool that help understanding with tests passed into a given path. A simple test coverage browser was developed by clement bera and it should be looked at.
LevelCurrently undefined, we are working on it.
CandidateTopic still free

TitleVOSS
Emailjohn.clapperton@ntlworld.com
Supervisors John Clapperton
Keywordspersistence OODB
ContextVOSS is a completely object oriented database industry proven that can have an open sourced release empowering Pharo users and startups to stay object oriented even when persisting data. VOSS has dual license commercial and GPLv3, and John (https://www.linkedin.com/in/johnclapperton), VOSS author already offered himself to mentor porters.
GoalHave a beta working version of VOSS on Pharo
LevelIntermediate
CandidateTopic still free

TitleDeep learning
Email
Supervisors
Keywordsdeep-learning
ContextRobotics, drones and the internet of things will gather data from sensors that will need interpretation and modelling. All sorts of AI will use deep learning techniques and Pharo would be a great orchestrator of that modelling. http://www.quora.com/What-is-the-best-deep-learning-library-at-the-current-stage-for-working-on-large-data
GoalBe able to orchestrate deep learning operations from Pharo
LevelIntermediate
CandidateTopic still free

TitleSupport for change code review
Emailmartin.dias@inria.fr
Supervisors M. Dias and S. Ducasse
Keywordscode representation change history browsing spec
ContextPharo manages well source versions and modification. However it is tedious to understand changes made by other developers. Often during a programming session we split, changes existing code and we would like to be able to have feedback by other programmers. However giving a simple a list of changes can be really tedious for the reviewer: he will see that a method was changed and another was added for example. The RMOD team is working on a new change model named Epicea and building tools on top. Epicea defines entities that represent changes as well as refactorings.
GoalThe goal of the project is to help building a tools to support code reviewing. In detail, here are some tasks to be performed: (1) study Epicea (the new change model), (2) define a tool to annotate changes and share annotations between different developers, (3) build heuristics to identify changes that represents a unit (for example split methods and push up or push down).
LevelIntermediate
CandidateTopic still free

TitleBetter Palette Support
Emaildamien.pollet@inria.fr
Supervisors Damien Pollet and Alexandre Bergel
KeywordsColor palette visualization
ContextCubeHelix is a way to compute intensity of color that is important for color blind people. It was introduced in Pharo recently. Now we should revisit the color palette to offer some predefined palette and better support for Colors.
GoalThe objectives is to revisit and build a new palette behavior
LevelBeginner
CandidateTopic still free

TitleMemory profiler
EmailStephane.Ducasse@inria.fr
Supervisors A. Bergel and S. Ducasse
Keywordsui tool spec
ContextUnderstanding how which method execution produces a lot of objects is important to spot design problem or cause of slowdown.
GoalThe goal of the project is to develop an approach to measure and reflect memory cost. One idea is to use a kind of partial evaluation using an interpreter and redefine the primitives to collect the number of created objects. Pharo 30 already has a fully working interpreter that can be used for such tasks.
LevelIntermediate
CandidateTopic still free

TitlePro-tips site
Email
Supervisors
Keywordssocial web-site
ContextIt might spark the beginning of a mentoring ecosystem. StackOverflow is great but at the same time for a niche like Smalltalk it might not be enough to show the problem-solving potential of the platform. A site dedicated to share pro tips centered on Pharo would slowly a steady show the platform’s value. The site has to be social friendly. Each tip should have an author that can set there StackOverflow, LinkedIn, facebook, twitter or any social profile she wants. Requires nice branding and UX/UI design. Optional variation of the same idea: make it for any Smalltalk dialect instead of only Pharo.
GoalBe able to sign up, compose tips, publish and share on social media
LevelIntermediate
CandidateTopic still free

TitleImproving Launcher
Emaildamien.cassou@inria.fr
Supervisors D. Cassou, B. Coman and S. Ducasse
KeywordsLauncher is a cool tool to launch and organize images
ContextLauncher is important for all both new and advances Pharo users. Launcher needs to get improved in several areas: configuration management, image storage, friendliness. Damien has a long list of important features to implement. Demonstration: https://www.youtube.com/watch?v=fNim2Yxs320.
LevelBeginner
Candidate

TitleEnhancing file ownership
Emailjean-christophe.bach@inria.fr
Supervisors Jean-Christophe Bach, Damien Cassou and Esteban Lorenzano
KeywordsOS VM
ContextWe should enhance the support for file permissions: to answer, e.g., can the current VM read this file? The new mechanism must work on all currently supported platforms (Linux, Mac OS X, Windows). Other platforms such as Java and Ruby might provide inspiration. http://forum.world.st/Pharo-dev-FileSystem-Permissions-td4696735.html
LevelAdvanced
CandidateTopic still free

TitleImproving code completion
Emailstephane.ducasse@inria.fr
Supervisors S. Ducasse and E. Lorenzano
Keywordscompletion
ContextAutomatic completion is really important. The current code completion already defines some good behavior but it can do better.
GoalThe goal of the project is to improve the ecompletion infrastructure: The tasks are: (1) study the existing approaches (NOC and NEC), (2) Write some tests to characterize specific behavior, (3) Improve the noise introduced by the Symbol table usage. (4) build more heuristics.
LevelIntermediate
CandidateTopic still free

TitleEpub generator for Pillar
Emaildamien.cassou@inria.fr
Supervisors D. Cassou and S. Ducasse
KeywordsPillar epub document tree visitor
ContextPillar is a markup syntax that is easy to use and learn. This markup syntax generates a document tree. Pillar can export to HTML, LaTeX (to produce PDFs) and Markdown. Pillar has already been used in several projects (http://www.smalltalkhub.com/#!/~Pier/Pillar)
GoalThe goal of this project is to add the ePub export format (used by e-readers).
LevelBeginner
Candidate

TitleHadoop
Email
Supervisors
Keywordsbig-data
ContextApache Hadoop can scale from single server to thousands of servers. The explosion of sensors, drones and mobile devices and printed devices with sensors are going to generate incredible amounts of data to process and model. Hadoop is a good fit for that and Pharo can empower faster modelling and orchestration of what to do with all that information stored in this widely adopted Hadoop technology. http://wiki.apache.org/hadoop/PoweredBy
GoalBe able to use Hadoop from Pharo
LevelIntermediate
CandidateTopic still free

TitleCross platform native GUI
Email
Supervisors
KeywordsGUI
ContextThe web is fantastic but at the same time there is a big pressure to create great native applications due to the improved User Experience that the native widgets can provide. Making Pharo to create them via things like wxWidgets (https://www.wxwidgets.org/about/screenshots/) would instantly create opportunities to develop fast applications with a great UX.
GoalBe able to create and model native GUI from Pharo for OS X, Linux and Windows
LevelIntermediate
CandidateTopic still free

TitleBug Importer for Moose
Emailnicolas.anquetil@inria.fr
Supervisors N. Anquetil
Keywordsbugs modeling tools moose analyses
ContextMoose (http://www.moosetechnology.org) is a well-know and successful platform to support data and software analysis development.
GoalMoose can be connected with a JIRA bug tracker database. The goals of the project are: (1) learn and/or revisit the bug metamodel (2) improve the bug to code mapping heuristics - How do we know that a method was touched by a bug. Probably we will have to develop a set of strategies that can cope with the practices of different communities and bugtrackers. (3) add different bug trackers as input to Moose (e.g., Fogbugz, Trac, Redmine). The idea is to build a library of importers so that we can import bug information from different bug trackers. (4) Enhance the visualizations and tools proposed in Moose. Note that contacting Tommaso del Sasso from Lugano can be a good idea since he is doing his PhD on bugs and building a dashboard for Pharo bug activity. [email protected] Links: A. Hora, N. Anquetil, S. Ducasse, M. Bhatti, C. Couto, M. Tulio Valente and J. Martins, BugMaps: A Tool for the Visual Exploration and Analysis of Bugs, Proceedings of the 16th European Conference on Software Maintenance and Reengineering (CSMR12) - Tool Demonstration Track, 2012
LevelCurrently undefined, we are working on it.
CandidateTopic still free

TitleStatistics Library
Emailserge DOT stinckwich AT ird DOT fr
Supervisors Serge Stinckwich
Keywordsstatistic mathematics science
ContextSci-Smalltalk is an existing Pharo library for doing scientific computing.
GoalAdd some statistics function to Sci-Smalltalk.
LevelIntermediate
CandidateTopic still free

TitleThread-based programming
Emailesteban.lorenzano@inria.fr
Supervisors Esteban Lorenzano
Keywordsprocess
ContextActually, in Pharo there is already an infrastructure for running thousand of process (green treads).
GoalNow there is small support for "thread based programming". What does it means? We do not have an easy way to: - define tasks (probably Job class and around can help there) - scheduling tasks in a proper way (a.k.a. Round Robin) - communication between tasks - serialization/materialization of tasks (again, Fuel can help here) So, the idea is to have in Pharo the same infrastructure as Stackless Python [1][2] provides. What is this useful for? To allow an elegant way to deal with massive amounts of tasks (typical in games, for instance). Link: http://www.stackless.com http://www.slideshare.net/guest162fd90/stackless-python-101
LevelCurrently undefined, we are working on it.
CandidateTopic still free

TitleTaking advantage of roel Typer in tools
Emailstephane.ducasse@inria.fr, camille.teruel@inria.fr
Supervisors S. Ducasse, C.Teruel
Keywordstype inferencer tool
ContextGetting the type of variables and expression is a useful information.
GoalThe goal of this project is to see tools can take benefit of type information provided by RoelTyper. For example we can have a pane with the instance variable type annotations, rules can check the use of a variable across multiple methods.
LevelIntermediate
CandidateTopic still free

TitleOpenStreet Smart viewer in Pharo
Email
Supervisors
Keywordssvg open street visualisation
Context OpenStreet is an open source standard for high-quality maps.
GoalThe goal of this project is to build a smart viewer of map using Athens the new canvas of Pharo. One of the challenge is to redraw only the part of the map when zooming in.
LevelCurrently undefined, we are working on it.
CandidateTopic still free

TitleGUI builder
Email
Supervisors
KeywordsGUI tooling
ContextIf whatever you are doing you cannot make it visual easily, people cannot perceive it easily. Due to evolutionary reasons, our brain has unfair bias towards visual processing. Lets make something that allows Pharo to create visual things easier. Something like PARTS or Dolphin Smalltalk GUI builder would be huge.
GoalBe able to create composable widgets for Pharo programs
LevelIntermediate
CandidateTopic still free

TitleBetter pointer explorer
EmailStephane.Ducasse@inria.fr
Supervisors S. Ducasse
Keywordsui spec
ContextUnderstanding how objects points to each other is important to spot memory leaks.
GoalTo understand how objects point to each other, Pharo offers the pointTo: methods. However it is a bit rudimentary. The goal of the project is to enhance the current pointer explorer to provide better information.
LevelIntermediate
CandidateTopic still free

TitleMiner
Emailstephane.ducasse@inria.fr
Supervisors S. Ducasse
KeywordsGame SameGame Miner Sokoban
ContextThere is an implementation of the Miner game in Pharo. However there is not a clear separation between the game model and its graphical representation.
GoalThe goal of this project is to revisit the implementation to make sure that the game is defined via a model that can then be displayed graphically using different ways. The tasks can be: (1) Understand the actual implementation, (1) start to see how we could have a model that does not depend on Morphic, (3) implement this new game. A nice following project would be to see how we can create a framework to build games such as Same Tile, Miners and that would make easier the definition of board games
LevelCurrently undefined, we are working on it.
CandidateTopic still free