The unit covers professional, legal and career development issues in the Computing and Digital Technology industries and includes a pathway-specific group project.
The current legal framework of Computing and Digital Technology is examined e.g. data protection legislation, intellectual property rights, computer misuse, freedom of information, computer contracts and employment contracts as is an overview and comparison of workable ethical theories eg utilitarianism and duty based approaches. Important issues regarding professional bodies in computing are also addressed including their role, structure, codes of conduct and practice. You will also investigate employability factors and learn about the employment application process and the importance of continuing professional development. A themed case study mini-project linked to the subject pathway, which may include the opportunity to work with an external company. This will help you to develop your skills and understanding of project planning and control concepts, planning techniques (eg Gantt charts) and monitoring, academic research, software prototyping and report writing.
Algorithms and Data Structures
Advanced programming and development techniques focussed on the data structures and algorithms that underpin Computer Science. Static data structures: implementation and use. Problem decomposition, module abstraction. Dynamic data structures: pointers linked lists graphs and trees. Object oriented: design implementation and use. Application implementation and component reuse. Algorithms: sorting searching and graph traversal. Basic complexity issues: time and space complexity. Software development techniques.
Computer Networks and Operating Systems
The unit provides an introduction to the operation of computer networks operating systems theory and practice.
Topics include - Concurrency: the solutions to and the problems of concurrency, race conditions, livelock deadlock starvation and priority inversion. The use of semaphores and/or monitors in solving classical problems such as: i) the bounded buffer and ii) multiple readers and writers. Computer Networks: network components – repeaters, hubs, switches, routers, gateways; protocol stacks – OSI TCP/IP, basic network performance characteristics. Process management: processes and threads, performance benefits of multiprogramming, scheduling algorithms, two-level schedulers. Input/Output: principles of I/O hardware; devices and controllers; principles of I/O software – device drivers, device interrupt, handlers device, independent software. Memory Management: evolution of physical and virtual memory management, algorithms and computer architecture for memory management. File systems: structure and organisation of the file system; disk space storage allocation using contiguous linked indexed and inode based schemes.
This unit covers concepts relating to object-oriented program design, the use of framework libraries, web server and mobile application development.
The unit covers object-oriented concepts: introduction to object-oriented concepts including class, object, instantiation, attributes, constructor, methods, overloading, inheritance, overriding, polymorphism and design techniques using Unified Modeling Language (UML). Testing of object-oriented programs. Advanced topics: interfaces, inner classes, collections, exception handling, stream based file input/output, building a Graphical User Interface (GUI) using libraries, event handling, graphics and threads. Implementation: practical application and implementation of concepts studied above. Use of Integrated Development Environment (IDE). Implementation of a UML diagram. Documentation and coding standards. Case studies.