The rapid evolution of languages, tools, environments and expectations presents major challenges and opportunities for programmers and for software engineering education. This is true across all kinds of programming, but is especially so for Web systems, which are now routinely written in untyped scripting languages and include Ajax, mashups, toolkits, frameworks like Rails and Django, and a profusion of interfaces, all operating asynchronously on distributed systems. For the past 8 or 9 years I have been teaching a course on advanced programming techniques that is more and more stretched between important old material and new unproven material that might be important. In this talk I will illustrate some of the challenges and discuss ways in which we might use complexity and rapid change to advantage.
Speaker Biography
Brian Kernighan received his PhD from Princeton in 1969, and was in the Computing Science Research center at Bell Labs until 2000. He is now a professor in the Computer Science Department at Princeton. His research areas include programming languages, tools, and interfaces that make computers easier to use. He is also interested in technology education for non-technical audiences.