It's been several months since I learned about Razborov's theory behind flag algebras. I realized that I enjoyed learning the theory in all of its abstraction, but equally enjoyed the part where I got to write code and produce some concrete results and numbers.
What other theories are out there that go hand-in-hand with computation and writing code (preferably in the area of graph theory)?
I am not looking for things like common algorithms on graphs (BFS, graph traversal, min/max cut, etc.), and I am already aware of plenty of mathematical software packages that support writing code for abstract mathematics (Sage, Magma, Mathematica, etc.).
Instead, I am interested in active research areas where a mathematical theory may be realized in the form of code or software which produces results in graph theory. For example, computational software for flag algebras has already yielded results in Ramsey theory, hypergraph Turan densities, permutations, etc.
I tried to assemble a list for the areas in which I have worked or am currently working in. This is by far not a complete list and it is very subjective to my research areas. There is of course a lot more.
I hope this list covers some ideas your are seeking for.
Extremal Graph Theory
The first one, you named it yourself, is the nice concept called Flag Algebras by Razborov. It is specifically designed for solving Turán-type problems in extremal combinatorics.
Checkout the tool flagmatic. You most likely already know it. Flagmatic is used in extremal graph theoretical research and yielded to new results. Checkout the following paper (starting with a nice interim report by Razborov himself. He is specifically mentioning flagmatic.)
Notice, and you might also already know, that the Cauchy-Schwarz calculus is not complete (which might or might not be very surprising).
Checkout this important result
Graph Generation
The topic of graph generation is strongly connected to the topic of graph recognition. However, I have decided to split these topics into two.
You said that you are "[...] interested in active research areas where a mathematical theory may be realized in the form of code or software which produces results in graph theory".
Now, this is very important. Graph generation is a research area by its own, hence this is not a direct answer to your question, but the generation of graphs, and most importantly the capability of generating specific classes of graphs, is one of the most useful things in providing new results in structural graph theory.
There are several papers around, but the most known are the ones whose results are implemented in the tool plantri.
You might check out the follwing:
Graph Recognition
The graph recognition problem deals with the problem of telling whether a given graph belongs to a certain graph class. This is by far not an easy task. For example, recognizing $1$-planar graphs is proven to be $\mathcal{NP}$-hard. Again, it is of course an research area on its own, but there are several examples on how developing a recognition algorithm lead to new insights in graph theory. To name one: Chudnovsky et. al implemented an algorithm for detecting odd-holes in a given graph, which could be very useful for solving open problems in chromatic graph theory.
Here are some more references on this exciting topic:
Graph Isomorphism
Graph generation is strongly related to the Graph Isomorphism Problem, which is an really exciting research topic for several reasons.
It is one of the most researched problems in theoretical computer science with great theoretical interest, since its complexity still remains unkown. In fact, the problem is even discussed as a candidate for modern quantum computing. It is believed that the GI is neither $\mathcal{NP}$-complete nor in $\mathcal{P}$, which would make it a candidate for a $\mathcal{NP}$-intermediate, according to Ladner’s theorem under the assumption that $\mathcal{NP} \neq \mathcal{P}$.
However, it is very important for graph generation, if not the most important, because we want to generate graphs of a certain graph class without generating isomorphic copies. We need isomorphism rejection of some sort.
This topic is very well explored, and it is very challenging to do research here. The most famous algorithm is given by McKay and Piperno. It is based on canonical labeling and automorphism group computation. It is implemented in the tool Nauty and Traces.
Check out the following paper:
Automated Conjecture-Making
Now, this is a really exciting topic and has led to numerous results in mathematics and especially in graph theory.
In addition to definitions and axiomatic systems, the process of discovering structural relationships or patterns in some kind of objects plays a fundamental role in mathematical research. A new conceivable relation is then formalized in a statement, which is initially open to formal proofs. These unproven statements are called conjectures.
Even though conjectures have many shapes, they often describe a relation between different invariants of the object of interest, whereby an objects invariant is a property which remains unchanged under certain classes of transformations. Often, the conjectures are of the form $I \leq J$, $I \leq J+K$ and $I+J \leq K+L $ with $I,J,K$ and $L$ being either an invariant of the mathematical object or a constant value.
Due to the increasing complexity in modern mathematical research, the establishment of relations between these invariants in the above forms is becoming increasingly important. Therefore, in addition to pure scientific interest, researchers try to automate the process of conjecture-making using methods of computer science. Then, we also speak of computerized mathematical discovery.
There is a famous tool by Larson and van Cleemput called "conjecturing", which generates conjectures (of the form given above) for a set of mathematical objects. There are many new results in matrix theory, number theory and graph theory, which used automated conjecture-making.
In order to give some references:
There are many more.
To give a last nice example of how automated conjecture-making discovered new bounds for the domination number of Benzenoids in chemical graph theory, you should check out the following paper:
If I remember correctly, this is a publication of a PhD-Thesis which goes into more detail.