In this talk I will present two ongoing research projects: First, I will discuss a simple and scalable static analysis for resource bound and amortized complexity analysis. Our analysis is solely based on the abstract program model of lossy vector addition systems and does not require general purpose reasoners such as abstract interpreters, software model checkers or computer algebra tools. We experimentally demonstrate on a recent bound analysis benchmark that our analysis is nevertheless able to compute more loop bounds in less time than several state-of-the-art tools from the literature.
Second, I will speak about feedback generation for performance problems in introductory programming assignments. Studying a large number of functionally correct student solutions we have observed only a small number of different algorithmic strategies, which, however, can be implemented in numerous different ways. I will present a light-weight programming language extension, that allows a teacher to specify these strategies, and a dynamic analysis, that allows to match the specifications of the teacher against student implementations.