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; students will look at the physical and logical aspects of computer hardware and 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 participants will work in groups to develop a large-scale system; in the third year, students 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.