This course is designed to help you better understand the
historical reasons and the need that gave rise to many different
programming languages, and discuss the features of the most
successful and more influential of them. It will focus on the
similarities and the differences among conventional
("procedural"), functional, object-oriented, logic as well as
parallel programming languages.
Implementation issues and the philosophy behind each category
will be discussed. Program development strategies will be
illustrated through programming examples. The set of languages you
will program in includes CommonLisp or Scheme, Pascal or C, Java,
and Prolog.