I've been working my way through Concepts, Techniques, and Models of Computer Programming . In chapter 3, one of the exercises was to transpose a matrix. I immediately felt completely overwhelmed. I couldn't even remember what it meant to transpose a matrix, and I definitely hadn't seen anything matrix-related in the book. I went to Wikipedia and figured out that transposing a matrix just means swapping the rows and the columns. That seemed more possible, but I still didn't think I had the necessary tools to code it in Oz yet. I decided to try solving the problem in Python. Python is sometimes called "executable pseudocode", and sure enough, the solution came to me pretty easily: m = [[1, 2, 3], [4, 5, 6]] def transpose(m): transposed = [] if len(m) >= 1: len_cols = len(m[0]) for col in xrange(len_cols): transposed_row = [] for row in m: transposed_row.append(row[col])