Imperial College London

Dr. Sebastian Uchitel

Faculty of EngineeringDepartment of Computing

Reader in Software Engineering
 
 
 
//

Contact

 

+44 (0)20 7594 8269s.uchitel Website

 
 
//

Location

 

573Huxley BuildingSouth Kensington Campus

//

Summary

 

Software Engineering Design - COMP70094

Aims

The module is designed to equip you with tools and techniques to reliably design and evolve larger software systems. The course will look at principles of software design, where to apply them, and how they may inform design choices, addressing common problems with recognised design solutions. It will also cover techniques for ensuring that systems we build behave correctly. The course introduces Java - one of the most widespread programming languages in the industry today - and uses this language and supporting tools for all examples and exercises.

More specifically, you will:
* Gain familiarity with the core Java language, and implementing OO designs in Java.
* Gain familiarity with key Java library classes and tools in order to be a productive Java programmer.
* Practise the technique of Test-Driven Design to ensure behavioural correctness.
* Practise refactoring to improve software structure according to design principles.
* Be able to select and apply popular Design Patterns as solutions to common design problems.
* Learn to make reasoned design choices based on trade-offs and principles.           

Role

Course Leader