The overall aim of this programme is to provide students with a broad but rigorous treatment of fundamental Computer Science as a discipline, and to couple this with the development of knowledge, experience and transferable skills pertinent to the application of Computer Science in the ICT industry. This is achieved through a combination of classical and applied computer science courses delivered through face to face teaching direct and guided placements and project work with industry.
We aim for graduates of this programme to continue directly into careers involving the application of computers science in industry. Moreover, we aim to provide a supportive learning environment within which students have the opportunity to reach their full academic potential within the discipline. We also aim to provide students with the knowledge and skills required by and expected of any Computing professional.
This four year programme shares its first three years with the G400 B.Sc. Hons programme at Lancaster. As such, it also shares many of the programme’s general and subject-specific educational aims. However, students are expected to reach a higher level of expertise and maturity in many of these aims, in particular those related to the practical application of knowledge and skills.
This programme is also designed to develop the transferable skills necessary for working within team-based professional environments. It aims at creating wider career prospects for students by broadening their personal horizons and cultural awareness.
The explicit aims of this programme are to:
· to ensure that students have knowledge of the fundamental principles underpinning the field of Computer Science, and can demonstrate a high degree of scholarship and investigative practice in that domain;
· to impart knowledge and experience of the most significant contemporary developments in practice and technology, along with current research trends and challenges;
· to help students develop the skills they will need in order to respond proactively to the evolution of the discipline throughout the course of their career;
· to develop comprehensive critical, analytical and problem-solving skills needed by a practising Computing professional;
· to provide practical experience of the challenges associates with working in an industry led environment, and to educate on how these challenges should be met by a practicing computer science professional.
· to develop the range of transferable skills necessary for working within professional environments.
· To provide a detailed treatment of a range of areas of advanced computer science.
· as a minimum, to satisfy the requirements for accreditation by the BCS and IET.
This section describes the programme level intended learning outcomes (ILOs) for the MSci Computer Science with Industrial Experience degree at Lancaster University. Throughout this document, example technologies, mechanisms and concepts are cited with each ILO to indicate breadth and level. These are not intended to provide comprehensive syllabus information. For this information, along with module level ILOs, the reader is referred to the Computing department’s undergraduate syllabus and student handbook, available at http://info.comp.lancs.ac.uk
We separate the programme’s ILOs into three areas, covering Knowledge and Understanding (group K), Discipline-based skills (group S) and Generic or Transferable skills (group T). The following sections enumerate each of these sets of ILOs. The table in Appendix A shows how the ILOs are mapped into the undergraduate modules delivered in this programme.
General Statement: This programme of study is intended to deliver a broad knowledge and understanding of the underlying principles of the key areas of Computer Science, the most recent developments of Computer Science research, and a detailed and mature understanding of the mechanisms involved in successful innovation transfer of computing-related technologies into the industry. This includes (but is not limited by) those cognate areas classified as Hardware, Software, Communication and Interaction, Practice and Theory in the most recent QAA Computing benchmark statement. Particular emphasis is placed upon the relating of theory to practice in each of these areas.
More specifically, a student graduating at honours level from this programme would be expected to exhibit knowledge and understanding of the following:
Discipline-related Knowledge and Understanding
K1.Theoretical underpinnings of Computer Science. This includes discrete mathematics, logic, algorithmic efficiency and its effect on software systems, and the nature of computability.
K2. Fundamentals of computer systems architecture. This ranges from first principles of the role of logic gates, the machine cycle and the nature of microcode, language compilation and interpretation, the nature of input/output, assembly and machine codes, including operations and addressing modes, and the nature of registers and memory, through to the architecture, performance and characteristics of parallel architectures, caching, virtual memory and network hardware.
K3. Fundamentals of computer systems software. Graduates would be expected to understand the core concepts of operating systems, distributed systems and computer networks, and be able to reason about the design, performance and exhibited characteristics of the variety of mechanisms employed in classical and contemporary systems (such as resource management and scheduling algorithms, network and routing protocols, RPC mechanisms).
K4. Programming languages and paradigms. Experience and familiarity with a wide range of software programming languages, and an awareness of their contemporary application domains. The range includes low-level programming (assembler), procedural programming (C) and object oriented programming (Java), multi-processor and concurrent programming (OpenMP) with optional pathways to study component based paradigms, RISC assembler and functional programming languages.
K5. Abstraction and virtualization. The key role of abstraction and virtualization in computer science, its relevance from software design through to its use in operating systems, distributed systems and networking to provide system protection, platform independence and programming paradigms.
K6. Efficient structuring, storage and retrieval of information: The representation, storage and processing of collections of data within computer programs. Including binary representations, data types, and scalar, compound and linked data objects. The nature of databases and their use for the storage and retrieval of data, ranging from simple store-and-retrieve processes based on arrays, hash tables and linked structures to fully developed database architectures. It includes the design, analysis and optimisation of databases based on the relational, object-oriented and object-relational and XML models, and the use of query languages such as SQL and OQL.
K7. The structure, terminology, conciseness, brevity and clarity that should be associated with technical documentation, and its relationship and application to software documentation.
K8. Formal languages and compilation. The role of formal grammars and the nature of the compilation process within the context of Computer Science. Understanding the theory surrounding different classifications of grammar, parsing techniques, complexity considerations. Understanding the relationship between grammars and compilers, code generation and optimization.
K9. Current best practice in software design and engineering. Students would be expected to know and understand the rationale, motivation and the various techniques currently employed during the software lifecycle, including requirements specification and formal methods. They will have developed an awareness of best practice in software architecture and design, software quality and testing and design.
K10. Contemporary network and Internetwork architectures. The nature of the Internet is examined from both an applications and a systems perspective. The student would be expected to understand how such networks operate at all levels of the OSI stack, and to acquire knowledge and understanding of the principles of contemporary protocols such as TCP/IP/HTTP, quality of service, management and access protocols, and the architecture of the Internet and the World-Wide-Web.
K11. The effects of Human-Computer Interaction on software systems. The principles, theories and methods of how human factors inform computer systems and software design. The student will know, understand and be able to appropriately select from and apply a range of techniques used to solicit, design, and evaluate user-centric software systems.
K12. Social, legal and professional issues. A student would be expected to be aware of the ethical and professional conduct expected of a professional in this area. It includes, but is not limited to, the codes of conduct of relevant UK and International professional societies, legal issues related to this discipline, and the importance of professional conduct. Students will also have developed first hand experience acting as a professional in industry, and have reflected upon these experiences.
K13. Specialist Studies. The candidate will have chosen to study two additional specialised computer science areas to a depth commensurate with the rest of the programme. Such areas could include artificial intelligence, information retrieval, natural-language processing, critical systems engineering, multimedia computing and embedded systems. Readers are referred to section 5.3 for a complete listing of available optional modules.
K14. Innovation and commercialisation of innovative products. By the end of this programme, students will understand the many facets involved in the successful commercialisation of new innovative computer-related products. Such facets include the creative use of Intellectual Property Rights in computing products (from patents to copyleft), and an awareness of how technical decisions can affect way a product is marketed.
K15: Contemporary Technologies in Industry. Computing in industry is a fast moving field. In addition to gathering knowledge and understanding of fundamental computer science, a graduating student would be expected to have gained knowledge of the most commonly adopted strategies of the day for computing systems and applications. Examples would include the cloud computing and software as a service paradigms.
K16: Small Project Management. Through a number of guided practical project based placements, the student will have gained knowledge and experience of defining project plans and practical management of small projects.
K17: Advanced Specialist Studies. The successful candidate will have studied two further areas of Computer Science to the level commensurate with an advanced masters degree, covering topics such as Network and Systems Security, Aspect Oriented Software Development and Mobile Computing (readers are referred to section 5.2 for a full list of courses). All of these courses will provide the students with knowledge and understanding to a level sufficient to prepare the student for advanced projects in that field.
K18: Computer Science in Industry. A graduate of this scheme will have developed firsthand knowledge and understanding of the challenges, pitfalls and range of approaches of applying computer science principles to modern industry, taking into account how technical decision impact a company as a whole. They will also develop knowledge and understanding of the professional and technical techniques that can be employed to address these challenges and mitigate these risks.
A student graduating at honours level from this programme would be expected to have acquired the discipline-related skills enumerated below:
S1. Awareness of emerging technology. By the end of this programme, the student will possess the ability and the attitude to maintain an awareness of emerging technology and practice in key areas of Computer Science. They will be beginning to use the state of the art in research to question and predict future trends on the industry.
S2: Programming Language Proficiency. The student will be able to develop effective and reliable software in a range of programming languages (including Assembler, C and Java), and be able to select an appropriate language for the task at hand.
S3. Programming Techniques. On successfully completing this programme, the student will have acquired essential skills in using and selecting appropriate programming techniques (including concurrent programming), design patterns and data structures for a variety of programming tasks.
S4. Program testing and debugging. The graduate will have extensive experience of systematic program testing and debugging.
S5. Design of software systems. Graduates of this programme will have the ability to design prototype software systems, and document them concisely and reproducibly.
S6. Use of Technical documentation. By the end of this programme, the student will be able to interpret, analyse and author technical documentation pertaining to their discipline area accurately and concisely. Moreover, they will be able to author and review academic publications at a level commensurate with international research workshops in the field.
S7. Networked distributed applications. At the end of the programme, students will be able to develop reliable networked distributed applications using contemporary protocols and platforms.
S8. Use of Databases. A student graduating from this program will be able to develop scalable, robust, performance databases and database-centric applications, and will have acquired practical experience in choosing and using a range of modern database tools, covering the relational and the object-oriented paradigms.
S9. Software Engineering. Graduates of this programme will be able to employ software engineering best practice throughout the lifecycle of software development from requirements solicitation to systems validation and maintenance.
S10. Web-based systems. On successfully completing this programme, the student will have acquired practical experience of various WWW tools and platforms, and will have implemented Web-based solutions to specific problems.
S11. Evaluation of computer applications. By the end of this programme, the student will have practical experience of the mechanisms and techniques required to design and evaluate computer systems and applications from a human centric perspective.
S12. Collaborative working. A student completing this programme will have acquired the skills for working as part of a team, including the inter-personal skills needed to negotiate and define work-assignments, brainstorming, discussion and arguing multiple points of view, integrating multiple viewpoints and the ability to write coherent collaborative reports.
S13. Use of information sources. Graduates of this programme will be able to perform information searches using both traditional libraries, the Internet, online technical documentation archives, digital academic repositories, and critically evaluate, correlate and cite published technical material. They will be able to undertake research in related areas and apply it appropriately to their research.
A student graduating at honours level from this programme would be expected to have acquired the generic skills enumerated below:
T1. Technical report writing. Students graduating from this programme will have developed extensive experience in preparing scientific and technical reports, dissertations and summaries.
T2. Research skills. Graduates of this programme will have developed a range of research skills, through the use of online resources, technical repositories and library-based material.
T3. Team working. Upon successfully completing this programme, students will have developed significant group work skills, including the inter-personal skills needed to negotiate and define work-assignments.
T4. Oral presentation. Students graduating from this programme will have gained experience of preparing and delivering oral presentations, using appropriate audio-visual tools, and will be able to summarise and communicate technical information to both technical and non-technical personnel.
T5. Individual project work. Graduates will have extensive experience of defining, implementing, managing and assessing technical projects, entailing an ability to manage their own time and resources effectively.
T6. Reflection. Students completing this programme will have gained experience of the benefits of undertaking self-reflection.
T7. Problem solving: Students completing this programme will have developed strong problem-solving skills, and will be able to apply those skills effectively in all aspects of their future lives.
T8. Interpersonal skills: Graduates will have developed communication skills commensurate with a professional working in industry.