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.
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.
- Analogue Electronics
- Biomedical Engineering
- Networks and Communications
- Computer Science and Software Engineering
- Control Engineering
- Optical and Semiconductor Devices
- Digital Systems and Computer Architecture
- Fields
- Image and Audio Processing
- Mathematics and Numerical Tools
- Machine Learning and Artificial Intelligence
- Optimisation
- Power Electronics
- Power Systems
- Professional Engineering
- Robotics
- Signal Processing
Bonus: here is a table that shows which modules belong to which themes:
- 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.
- 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
andneato
graph-layout engines are used to convert the Graphviz description into a PDF file.
- 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.
- John Wickerson (
j.wickerson@imperial.ac.uk
)