Text this: Teaching Theory of Programming: Methodology and Basic Notions