College course on basic programming concepts: modular (encapsulation, abstract data types); object-oriented (class, inheritance, polymorphism, dynamic binding); concurrent (thread, synchronization); via Java compared to Oberon, Smalltalk; then dataflo...