========== Philosophy ========== If you want to create an interactive exercise which is more involved than a simple multiple choice or cloze, you need to write some source code - at least to generate randomised parameters or to score the user's answers. Classical e-assessment systems require you to put your code into web forms, apart from a lot of clicking. All this is very time-consuming and feels quite awkward if you are used to the conveniences of contemporary programming: * integrated development environment (IDE) * source code highlighting * inline documentation * tab completion * unit testing * version control The philosophy behind PyRope is to say that once you have to write code, why not write *only* code? Accordingly, the definition of an exercise in PyRope is nothing but pure source code. This makes it much easier to write, comment, test, share, modify and track exercises. In particular, we get all the items from the list above for free. We decided for Python as programming language, since it is easy to learn, yet very powerful, widespread and has a very vivid community.