This course discusses high-level, up-to-date topics in software engineering including new methods, models, and theories. It includes advanced topics in software engineering, such as fault-tolerant software, software architecture, software patterns, multi-media software and knowledge-based approaches to software engineering. Investigation and application of agile software development practices will be discussed too. The course also includes a number of case studies. Papers from the current literature will be discussed and student participation in a seminar style format may be expected.