Sorry, I confused the problem and the solution a bit. Setting it to All words just means it will match on all all words typed in the query, so if you put "Science blah" it won't get any results, you probably want it back to Any words, my mistake.
For your issue, I don't think it can be done in a simple matrix search setup, something Funnelback is good for though. The conditions you want it to work under are also very hard to meet, as matrix will just look at the text value stored against the metadata, so it has no idea you don't want "Computer Science" to match on "Science", but to match on just "Science" by itself.
One trick you could do is to have another metadata field that has the default value of your subject metadata field, but actually replaces the spaces in any words with underscores, that will make the value stored in the field actually "Computer_Science; ICT; Information_Technology;". Your search shouldn't pick up "Computer_Science" on the 'Science" search term. You would just have to replace spaces with underscores in your search term as well, so if someone actually types "Information Technology", it gets searched as "Information_Technology". Not sure if that causes other problems, but not sure how else you would want to do it.