Programme Year Zero
Based at Carmel College in St Helens, about nine miles from the main University precinct. The college offers small class sizes and high standards of academic achievement. G408 students follow a foundation module in Mathematics and have a choice of two other modules taken from Physics, Chemistry, Biology, Information Technology or Geography.
Programme Year One
All single subject degree programmes offered by the Department of Computer Science share the same modules in Year 1.
You take the following modules:
- Introduction to Programming (COMP101) [Note: *not* Java]
- Programming Language Paradigms (COMP105) (depending on prior programming experience)
plus all of
- Graduates for the Digital Society (COMP107)
- Foundations of Computer Science (COMP109)
- Introduction to Artificial Intelligence (COMP111)
- Data Structures and Algorithms (COMP108)
- Analytic Techniques for Computer Science (COMP116)
- Object-Oriented Programming (COMP122)
- Computer Systems (COMP124)
Programme Year Two
In Year 2 you continue to expand your knowledge of concepts and skills related to the core areas of software development and database development while starting to engage with subject material directly related to Computer Science.
You take the following modules:
- Software Engineering I: Covers the problems associated with the development of significant (large) software systems and techniques to develop such systems efficiently in a cost-effective manner.
- Complexity of Algorithms: Introduces fundamental methods in data structures and algorithms design and deepens your understanding of formal concepts of measures of complexity and algorithm analysis.
- Database Development: Considers concurrency in databases, the integration of heterogeneous sources of information, non-relational databases, data warehousing and data mining.
- Advanced Object-oriented Programming: You will learn about data structures, including their formal specification, and advanced programming language features, within the context of a high-level programming language (Java).
- Decision, Computation, and Language: Studies the relationship between different abstract models of computation and formal grammar, the existence of unsolvable computational problems and examples of these.
- Artificial Intelligence: Introduces you to the topic of Artificial Intelligence through the study of problem-solving, knowledge representation, planning and learning as well as providing you with a grounding in the AI programming language Prolog.
- Group Software Project: You will as part of a small team to produce a working computer-based software system.
Plus two of the following six modules that aim to enhance your employability skills:
- Work Based Learning for Science: Provides you with an opportunity to experience the `world of work’ and to develop a range of employability skills.
- Principles of C and Memory Management: You will be introduced to the contemporary system-level procedural programming language C and study issues of memory management in its context.
- Advanced Object Oriented C Languages: You will learn about the differences between message-based and method-based object-oriented approaches through the programming languages C++ and Objective-C, and gain practical experience in program development using these two languages.
- Applied Database Management: Provides you with the practical experience of designing a database and the skills to manage and maintain a database system using commercial Database Management Systems such as Microsoft SQL Server.
Computer Aided Software Development: Provides you with knowledge of a range of techniques and tools used in modern, large-scale industrial software development and practical experience of using such tools.
Programme Year Three
A major part of your studies in Year 3 will be an individual project in Computer Science that you undertake. The project will provide you with an opportunity to work in a guided but independent fashion to explore a substantial Computer Science problem in depth, making practical use of principles, techniques and methodologies acquired elsewhere in the programme.
In addition, you take the modules:
- Efficient Sequential Algorithms: You learn some advanced topics in the design and analysis of efficient sequential algorithms, and a few key results related to the study of their complexity.
- Semantics of Programming Languages: You learn about techniques for describing the semantics of programs and reasoning about programs via their semantics.
In the first semester you also choose two of the following modules:
- Knowledge Representation and Reasoning Introduces you to Knowledge Representation as an area of research and the study of modal logics, description logics, epistemic logics and methods for reasoning under uncertainty.
- Biocomputation: Introduces you to contemporary issues in the domain of neural computation and equips you with a broad overview of the field of evolutionary computation.
- Software Engineering II: Introduces you to key problems driving research and development in contemporary software engineering and approaches to these problems.
- Ontology Languages and their Applications: You learn about logical languages used to build formal ontologies and study the applications of ontologies in bio-informatics, medical informatics and the semantic web.
- Introduction to Computational Game Theory: Introduces you to computational game theory, its applications and the connections between game theory, computer science and economics.
- Mobile Computing: Provides you with guidelines, design principles and experience in developing applications for small, mobile devices.
- Robotics and Autonomous Systems: Introduces you to key surrounding the development of autonomous robots and provides you with practical experience in programming autonomous robots.
In the second semester you pick two modules from:
- Multi-Agent Systems: Introduces you to the concept, design, and a platform for the implementation of intelligent agents and multi-agent systems.
- Formal Methods: Provides you with an understanding of the principles of standard formal methods and the use of model checking techniques in the verification of reactive systems.
- Technologies for e-Commerce: Introduces you to issues of security and encryption as a means to ensure security, issues of privacy as well as auction protocols and negotiation mechanism as emerging e-commerce technologies.
- Complex Information and Social Networks: Provides you with an understanding of the software development opportunities offered by information and social networks.
All modules on offer reflect the very cutting edge of Computer Science today
The programme detail and modules listed are illustrative only and subject to change.
Teaching and Learning
Teaching is by a mix of formal lectures, small group tutorials and supervised laboratory-based practical sessions. Students also undertake individual and group projects. Key problem solving skills and employability skills, like presentation and teamwork skills, are developed throughout the programme.