Develop - alice-adventures/Alice GitHub Wiki

Develop Alice

If you like to help develop new functionality for Alice, here you have few ideas.

Improve and extend the user interface

Developers can work on improving the user interface of Alice by adding new features, making it more intuitive, and improving its performance.

Develop new educational resources

Create new educational resources, such as tutorials, documentation, and videos that help Participants learn Ada programming language and solve programming challenges.

Integrate with other platforms

Developers can work on integrating Alice with other platforms (e.g. GitLab, Bitbucket, Stack Overflow, Reddit or Discord) so that Participants can easily share their code and collaborate with others.

For example, in GitHub

  • Make it easier for Participants to share their code and collaborate with others. This could involve creating tools that automatically push code to GitHub, automatically generate pull requests, or automatically create branches for Participants to work on.

  • Add collaboration features to Alice that allow Participants to work on programming challenges together. This could involve adding support for chat rooms or forums where Participants can discuss programming challenges and share code snippets.

  • Implement version control in Alice, which would allow Participants to track changes to their code over time and revert to previous versions if necessary. This would make it easier for Participants to collaborate on programming challenges and keep track of their progress.

  • Create templates for Participants to use when sharing their code on Alice. These templates could include pre-defined sections for documentation, licensing, and other important information, making it easier for Participants to share their code in a consistent and organized way. See for example Problem template and Program template.

Create coding standards

Create code sharing guidelines for Participants to follow when sharing their code on Alice. These guidelines could cover topics such as code formatting, commenting, and documentation, and would help ensure that Participants are sharing code that is easy to understand and use.

Develop new metrics and feedback tools

Develop new metrics and feedback tools that help Participants analyze and improve their code. For example, implement code quality analysis tools (or integrate existing ones) that detect common programming mistakes. Or tools that provide feedback on code readability based on code metrics.

Implement new data structures and algorithms

Implement new data structures and algorithms that Participants can use to solve programming challenges. They could also improve existing data structures and algorithms to make them more efficient and easier to use.

See for example Euler Tools ↗.

Support new architectures

You can work on migrating support for Alice to other architectures, such as ARM, RISC-V or other MCUs, to make the framework more accessible to a wider range of devices. This would require optimizing the framework to work efficiently on devices with limited resources and implementing support for programming languages commonly used in embedded systems, such as C and Assembly.

Support new programming languages

Although Alice is currently focused on Ada programming language, Developers can add support for other programming languages and expand the range of challenges and competitions available on the framework.