Software systems are critical in today's civic infrastructure; software is responsible for a great number of recent technological advances, ranging from embedded systems up to Google-scale Internet infrastructure. Research in computer software aims to develop new techniques for designing and implementing software systems. Computer software makes up of part of information and communication technologies (ICT); key sub-areas include operating systems, embedded systems, software engineering (particularly formal verification and static analysis), distributed systems, and computer security. The Department of Electrical and Computer Engineering at the University of Waterloo is strong in all of these areas and continues to grow. Because of the ubiquity of computer software, visiting researchers and graduate students gain experience with cutting-edge techniques which are indispensable to today's industry. Our graduate students develop skills that enable them to work on industrial codebases at places like Google and Microsoft.