The structure of programming languages is explored first through the example of Java. As Java is learned, its design and operation is contrasted with that of C++. Concepts such as interpreted language, garbage collection, a virtual machine, and language portability are developed. Other topics are introduced as additional languages such as Lisp are also learned in this course. Prerequisites: COM 202 and COM/MAT 306.