Skip to content

johnwickerson/ee_modules

Repository files navigation

EE module dependency graphs

Graph-building system

Dependency graphs for each theme in the Imperial EE syllabus.

There is one dependency graph for each theme.

In each graph, each module is a node, containing the module code and the module title. An arrow from module A to module B means that one of module A's ILOs is a prerequisite for taking module B.

Why?

We see several benefits of building this graph:

  • It is useful to have all ILOs together in one place, so they can be easily audited for consistency.
  • If a module leader ever wants to change/remove an ILO, they can easily see which later modules might be affected.
  • If a module leader ever wants to add/change a prerequisite, they can easily see which earlier modules can provide it.

How to view the dependency graphs

Bonus: here is a table that shows which modules belong to which themes:

How to edit the dependency graphs

  • Open the modules.yml file.
  • Click on the edit button.
  • Make your changes.
  • Click on the Commit changes... button.
  • Wait for a few minutes while the dependency graph is rebuilt with your changes.

Some technical details

  • There is a GitHub Action that fires whenever a commit is pushed to the repository.
  • Some custom-written OCaml code converts modules.yml into a Graphviz description (modules.dot).
  • The twopi and neato graph-layout engines are used to convert the Graphviz description into a PDF file.

Current limitations

  • Does not include modules offered by other departments. So although ELEC60020 (Managing Engineering Projects) builds upon BUSI60037 (Accounting Online) and BUSI60042 (Entrepreneurship Online), these connections are not recorded in the graph.

Authors

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published