Software Design and Applications (SODA)
Objectives
- Creating custom software to support research, teaching and administrative activities.
- Designing and developing applications from the ground up.
- Implementing useful libraries and data repositories to be shared among projects.
- Integrating modern technologies with existing projects.
- Performance analysis and optimization of existing code.
- Studying new programming paradigms, platforms, languages, libraries.
- Identification and formalization of problems that could benefit from a software solution.
- Ensuring long-term support for existing projects.
Collaboration
This group is open to anyone who is (any of the below):
- interested in programming,
- the author of an application or library that others could benefit from, but they don't know about it,
- working on a project or a paper that might benefit from others expertise, regarding programming aspects,
- in search of a software solution for a specific problem.
Existing projects
- Graph4J
- A computationally efficient Java library for graph algorithms.
- Offers the infrastructure for developing graph related algorithms.
- Contains implementations of fundamental graph algorithms.
- In use since since 2023.
- Alk
- Alk is an educational platform designed for writing, executing, and analyzing algorithms.
- The platform consists of an algorithmic language, an interpreter able to execute algorithms, and tools to understand, analyse, and evaluate algorithms, and to acquire a rigorous algorithm thinking.
- In use since since 2018.
- eOra
- Application for creating the timetables of a faculty / university.
- Uses constraint programming for solving parts of the problem automatically.
- In use since since 2008.
- eQuiz
- Web application for giving students short tests at the end of the labs/seminars.
- Based on creating a taxonomy of concepts taught in a domain of study.
- Based on a simple text format for authoring questions in a topic.
- Creates random tests, using dynamically generated questions.
- Can be used in a collaborative manner.
- In uses since 2022.
- RepO
- Application for assigning students to optional courses.
- Uses stable matching (Gale-Shapley algorithm) in order to create the distribution.
- In use since 2016.
- Could benefit from...
- PrefO [in progress]
- Web application for collecting (correctly) preferences from students, regarding optional courses.
- Will permit expressing "indifference" towards various courses.
- Will be integrated with RepO.
- Academic activity management
- Collects data about professors and PhD students academic activity.
- Capability to export the data in xlsx format.
- Generate FAZ for every teacher.
- Multiple user types: student, teacher, admin.
- The teachers can visualize the students activity.
- The admin have full access of the data in the platform.
- Send customized emails with attachments to teachers and students.
- MDVSP
- Java library containing algorithms for multi depot vehicle scheduling problem.
- Exposes the algorithms also as REST services.
- Uses either OR-Tools or Gurobi for solving the optimization problems.
- Used in supporting scientific papers
- ColorLib [in progress]
- Java library with various algorithms for graph coloring problems.
- Addresses interval graphs, equitable coloring, set-pack coloring, etc.
- Used in supporting scientific papers.
- SortingNetworks
- Java library for generating and analyzing sorting networks.
- Proved that for 9 wires the optimal solution requires 25 comparators by effectively exploring the whole search space.
- Used in supporting scientific papers.
- OmniCS
- Java library for constraint programming.
- Contains an effective implementation of AC-3 algorithm.
- Problem instances can be expressed using an API or in XCSP format.
- Used in supporting scientific papers.
- [New project here]