Strengthening student understanding through interactive classroom methods in computer science and engineering