- The Semantics of Programming Languages
- The syntax of a language is far less important than the
interpretation that the compiler gives to that syntax.
Languages that are similar on the surface can have vastly
different properties depending on how the elements of a
program are translated.
The area of semantics includes the study of the
rules for type checking, resolution of permitted ambiguity,
object definition, function method definition, and the
nature of the underlying execution model.
- Object-Oriented Design
- Good design of any sort requires planning based on thorough
understanding of the needs of the client and the capabilities
of the implementation language and system. Modern OO style
incorporates a set of principles that guide the ways that
object classes interact. The goal is to build complex systems
out of components that are relatively simple and often reusable.
- Teaching Computer Science and Programming
- Skill in programming and program design requires much more than knowing
the syntax of a language and how to use a compiler. Some aspects of computer
expertise are well covered by today's textbooks and curricula. Other aspects
are more like an art than like a science: we can give guidelines and sound
advice about style and method, but we can provide very few rules for skilled
practice. I am interested in developing instructional materials and lab
experiences that will help a student develop comprehension and mature