# daryanechaeva/formal-lang-course architecture

> Architecture diagram of the GitHub repository daryanechaeva/formal-lang-course, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/daryanechaeva/formal-lang-course
- Repository: https://github.com/daryanechaeva/formal-lang-course

## Overview

This repository is a formal-languages course and homework template, not a standalone query-processing application. The documented learner workflow is to study course materials, complete task specifications in a fork, and submit implementations for automatic or instructor review. The sampled runtime code is limited to graph-data helpers; course topics and assessment flow are taken from the README and tree, so links to unsampled implementation details are omitted.

Main entry points: [`project/graph_utils.py`](https://github.com/daryanechaeva/formal-lang-course/blob/main/project/graph_utils.py) (Graph utilities), [`project`](https://github.com/daryanechaeva/formal-lang-course/tree/main/project) (Homework code), [`tests/autotests`](https://github.com/daryanechaeva/formal-lang-course/tree/main/tests/autotests) (Auto-checks), [`docs/lecture_notes`](https://github.com/daryanechaeva/formal-lang-course/tree/main/docs/lecture_notes) (Lecture notes)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_learning["Course materials"]
  node_lectures["Lecture notes"]
  node_cfpq_apps["CFPQ applications"]
end

subgraph group_coursework["Homework"]
  node_task_specs["Task specifications<br/>[tasks.md]"]
  node_implementation["Homework code"]
  node_autotests["Auto-checks"]
end

subgraph group_support["Graph helpers"]
  node_graph_helpers["Graph utilities<br/>[graph_utils.py]"]
end

node_learner(("Learner"))
node_cfpq_data["CFPQ data"]
node_networkx["NetworkX"]
node_pydot["Pydot"]

node_learner -->|"studies"| node_lectures
node_learner -->|"studies"| node_cfpq_apps
node_learner -->|"follows"| node_task_specs
node_learner -->|"implements"| node_implementation
node_autotests -->|"checks"| node_implementation
node_graph_helpers -->|"downloads graphs"| node_cfpq_data
node_graph_helpers -->|"loads CSV"| node_cfpq_data
node_graph_helpers -->|"creates graph"| node_cfpq_data
node_graph_helpers -->|"returns graph"| node_networkx
node_graph_helpers -->|"writes DOT"| node_pydot

click node_lectures "https://github.com/daryanechaeva/formal-lang-course/tree/main/docs/lecture_notes"
click node_cfpq_apps "https://github.com/daryanechaeva/formal-lang-course/tree/main/docs/CFPQ_applications"
click node_task_specs "https://github.com/daryanechaeva/formal-lang-course/blob/main/tasks.md"
click node_implementation "https://github.com/daryanechaeva/formal-lang-course/tree/main/project"
click node_autotests "https://github.com/daryanechaeva/formal-lang-course/tree/main/tests/autotests"
click node_graph_helpers "https://github.com/daryanechaeva/formal-lang-course/blob/main/project/graph_utils.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_lectures,node_cfpq_apps toneBlue
class node_task_specs,node_implementation,node_autotests toneAmber
class node_graph_helpers toneMint
class node_learner,node_cfpq_data,node_networkx,node_pydot toneIndigo
```

## Components

### Course materials

- [Lecture notes](https://github.com/daryanechaeva/formal-lang-course/tree/main/docs/lecture_notes): `docs/lecture_notes`
- [CFPQ applications](https://github.com/daryanechaeva/formal-lang-course/tree/main/docs/CFPQ_applications): `docs/CFPQ_applications`

### Homework

- [Task specifications](https://github.com/daryanechaeva/formal-lang-course/blob/main/tasks.md): `tasks.md`
- [Homework code](https://github.com/daryanechaeva/formal-lang-course/tree/main/project): `project`
- [Auto-checks](https://github.com/daryanechaeva/formal-lang-course/tree/main/tests/autotests): `tests/autotests`

### Graph helpers

- [Graph utilities](https://github.com/daryanechaeva/formal-lang-course/blob/main/project/graph_utils.py): `project/graph_utils.py`

### Other components

- **Learner**
- **CFPQ data**
- **NetworkX**
- **Pydot**

## Connections

- Learner → Lecture notes: studies
- Learner → CFPQ applications: studies
- Learner → Task specifications: follows
- Learner → Homework code: implements
- Auto-checks → Homework code: checks
- Graph utilities → CFPQ data: downloads graphs
- Graph utilities → CFPQ data: loads CSV
- Graph utilities → CFPQ data: creates graph
- Graph utilities → NetworkX: returns graph
- Graph utilities → Pydot: writes DOT
