Here is a guide to the subjects studied on this course.
Courses are continually reviewed to take advantage of new teaching approaches and developments in research, industry and the professions. Please be aware that modules may change for your year of entry. The exact modules available and their order may vary depending on course updates, staff availability, timetabling and student demand. Please contact the course team for the most up to date module list.
This module introduces students to the basic hardware components from which a computer system is constructed and the organisation of these components. The architecture is discussed and key concepts considered in the context of the programmable machine. Students will also gain an understanding of how computers communicate in the context both of local and wide area networks.
Professional Software Development I
The module introduces software development concepts and practices in a scaffolding manner enabling students to progressively develop their knowledge. This will be reinforced by interwoven practical lab sessions and tutorial workshops which will focus on and enhance all the necessary practical skills: problem solving, software design, programming skills and software testing to the high level of competence required by industry. The module is also intended to equip students with the knowledge, skills and habits that enable them to function as autonomous, accountable IT professionals.
Operating Systems Fundamentals
This module gives students a detailed introduction to the functions of modern operating systems. Particular emphasis is placed on the practical implementation of theoretical concepts and on the key area of Resource Management and Shell Scripting. Students will have the opportunity to develop and consolidate their understanding of computer hardware as well as their software development skills, and will gain experience of using a modern Unix-like operating system.
Professional Software Development 2
This module uses interlinked lectures and lab sessions to introduce selection and repetition mechanisms with Java. This enables the introduction of arrays as an extended intermediate storage structure and also files as a permanent storage mechanism. The module extends their object-oriented techniques and the Java constructs into the hierarchy of super and sub classes and the area of inheritance. The module extends the area of interface applications within Android introducing more pre-defined GUI components and mechanisms available to them. The students will be provided with an opportunity to display strong personal management and team skills.
This module recognises the need for flexible and efficient storage of information in computer applications. The underlying principles of database organisation are presented, and practical implementation in a modern DBMS environment provides a basis for the construction of larger-scale e-business solutions.
Mobile Devices and Applications
This module will provide students with the opportunity to gain knowledge and skills that will equip them to obtain employment within companies specialising in mobile technologies. Students will gain detailed knowledge of the underlying wireless infrastructure and protocols and the relationships these have with the app creation process and developing software solutions targeted at mobile platforms such as Android, Windows Phone, iOS, and Browser apps based on HTML5.
This module seeks to extend student?s knowledge of and practical skills in programming in Java. This will be achieved by focussing on the theoretical underpinning knowledge of a range of data structures and common abstract data types and this will be supplemented by the practical implementation(s) of these leading to their use, and an understanding of their effectiveness through considered analysis and experimentation.
Numerous computing systems are inherently concurrent in nature where multiple events or activities must be handled at the same time, or concurrently. This module introduces students to the fundamental concepts required to design and develop concurrent systems. The module will provide an overview of the underlying principles of concurrent programming and will give students the opportunity to develop simple practical applications illustrating specific aspects of concurrent systems.
Students are required to undertake a substantial individual project to complete the course. Its purpose is to provide an experience of developing a computing solution to a realistic problem, both to demonstrate capability and to enhance employability. This work combines skills and knowledge acquired previously on the course with those acquired during the project. In particular, students will have an opportunity to (i) strengthen their competence in project management, in taking an initial concept through to a successful implementation; and (ii) enhance their communication skills, in producing a dissertation and defending the work.