I have usually been using the Cormen algorithm format to teach some introductory courses in Programming. I mean something like this:
TreeSearch(k,n)
1. if x==NIL or k==x.key
2. return x
3. if k<x.key
4. return TreeSearch(k.left,n)
5. else return TreeSearch(k.right,n)
Actually I have not agree with a couple of lecturers in my institution that they insist to put the type of the variable that they are using in the algorithm. I mean, to do that, will it not be to make a bias toward the programming language and not to focus on the algorithm? For example what would happen if the student grab other programming language, like R or Python, that really do not care about the type of variable.
The other issue that I have is how to represent OOP algorithms in a nice algorithmic way. For example when I make a constructor should I put something like:
Class: car
Attributes: wheels
Constructor car()
or something like
Class: car
Function car()
also when I come to the part of inheritance, one of my colleages put the word super() to define inheritance in an algorithmic way, but again I think that is too Java-way to do this part. Usually they teach in that way because the practical part is made in Java, but again I think that the algorithm should be more freely, directly towards the logic, and not to an specific programming language.
Does anybody knows some standard to represent algorithms for OOP?