Abstract
A language like Java has two major aspects: organizational and procedural. We claim that the only (reasonable) way to teach programming in such a language is to teach the organizational aspect --OO-- first. We discuss how this can be done effectively. Along the way, various principles of programming and of teaching programming will be discussed.
Speaker's Bio
A native of New York, Gries received his doctorate in math from MIT (Munich Institute of Technology) in 1966. After 3 years at Stanford, he moved to CS at Cornell, where he has been ever since, except for a few years at UGA.
Gries is known for his research in compiling and in programming methodology, and he has been teaching programming for over 40 years.
He wrote the first text in compiling (1971), the first programming text that dealt seriously with loop invariants (1973, with Dick Conway), the first undergrad text on the science of programming (1981), the first discrete math text that makes logic and proof the underlying theme and teaches the development of proofs (1993, with F.B. Schneider), and the first text to come on a CD with 250 recorded lectures with synched animation (2003, with son Paul).
Gries received national/international awards for his contributions to education and research from AFIPS, ACM SIGCSE, ACM, IEEE Computer Society, and the CRA, as well as two honorary doctorates.
Abstract
Scala is a new general purpose programming language which is fully inter-operable with Java. It smoothly integrates features of object-oriented and functional languages. Scala allows a terseness of style comparable to scripting languages but has at the same time a strong and static type system. In this way, it can express common programming patterns in a concise, elegant, and type-safe way.
This talk will give an introduction to the Scala programming language, highlighting its main innovative features: closures, pattern matching, type abstraction, and mixins. We will show how these features together enable the construction of truely high-level libraries that provide in effect embedded domain-specific languages.
Speaker's Bio
Martin Odersky is a professor at EPFL in Lausanne, Switzerland. He's interested in object-oriented and functional programming. His research thesis is that the two paradigms are two sides of the same coin, to be identified as much as possible. To prove this, he has worked with a number of language designs in the past, in particular the Pizza and GJ extensions to Java. He has also influenced the development of Java as a co-designer of Java generics and as the original author of the current javac reference compiler. His recent work is centered on Scala, a new programming language which unifies FP and OOP while staying completely inter-operable with Java.