Principle concerns include incorporating new research and new technology into the subject and delivery of current courses, and the development of new courses to reflect rapid changes in research and technology. Current project activities in these areas include the development of material to support an apprentice style of learning of object-oriented programming and design that spans beginning to advanced courses in computer science. We are also implementing several tools that visually illustrate topics from the theory of computation, including finite automata and grammars, with animations and interactive programs. We are facilitating the development of tools to integrate and visualize performance metrics from several areas, including cache performance, in several undergraduate courses. The faculty in the Computer Science Education group are listed below.
More detailed information appears on subsequent pages.
Object-oriented design, software architecture, computer science education, apprentice learning, automated reasoning. My research in object-oriented design and software architecture focuses on how to use patterns in developing software and in teaching about programming and software design. I am interested in how to use and teach design patterns and, more generally software architectures, rather than on discovering new patterns. I have developed a course, Software Design and Implementation , in which patterns help in the design of large, team-oriented projects. I am also interested in general computer science education, particularly at the level of introductory courses for majors.