Analogi Documentation
Analogi is a code clone and plagiarism detection tool designed for university courses. It helps professors identify similarities across student programming assignments using state-of-the-art algorithms.
Why Analogi?
| Feature | Description |
|---|---|
| Multi-language | Supports C++, Python, Java, C#, JavaScript/TypeScript out of the box |
| Extensible | Add new languages or analyzers by implementing one interface |
| Two scan modes | Compare individual files or entire student submission folders |
| Robust detection | Survives variable renaming, reordering, and string changes |
| Cross-platform | Runs on Windows, Linux, and macOS |
| Educational | Built to teach about algorithms, not just catch cheaters |
How It Works
Analogi uses a pipeline architecture where each file pair passes through:
- Extractors — pull out code, comments, and structural elements
- Preprocessors — normalize the code (case fold, remove string literals, rename variables)
- Analyzers — compute similarity scores using different algorithms
The final score is a weighted average of all analyzer results.
For Students
Understanding how plagiarism detection works helps you write better, more original code. Read the Algorithm Documentation to learn about cosine similarity, winnowing, and structural analysis.
For Professors
See the User Guide to set up Analogi for your course, or the CLI Reference for batch processing.