Year 1 looks at systems analysis, the fundamentals of programming, and object oriented programming using Java; students will also explore more advanced programming concepts including object orientation, graphic user interfaces, data structures and data persistence; they will look at the physical and logical aspects of computer hardware; students will also be introduced to the role of the systems analyst; year 2 covers software development and design; the software development project introduces the management and execution of large-scale software engineering projects; a range of software engineering principles will be considered, and students will work in groups to develop a large-scale system; in the third year, participants can choose to undertake a work placement, or alternatively progress directly to the final year, which considers advanced software development techniques; students will also take on a research project of their own choice where they can demonstrate theoretical knowledge and practical expertise acquired during the course.