The error message is telling you clearly that you are referencing your Expression column in the calculation of you Expression column, thus a circular reference.
You need to do something like:
col = new DataColumn("isDirectionAsString", typeof(string),
"IIF(isDirectionIn = true, 'in', 'out')");
In other words, you can't do that "in-place". You need an extra column for your "as string" value.
Cheers