Skip to navigation | Skip to main content | Skip to footer
Menu
Menu

School of Computer Science BCS accreditation 2021 - 2026

Artificial Intelligence MEng (Hons) - COMP16412 Introduction to Programming 2


Return to programme overview.

2.1.1 Knowledge and understanding of facts, concepts, principles & theories

We teach the general principles of object oriented programming including encapsulation, inheritance, polymorphism, abstraction, inner classes and interfaces, in addition to the particularities of the Java language such as the Java Collections Framework and JavaFX.

Assesement : Examination, Individual coursework, Lab work, Workshops

2.1.2 Use of such knowledge in modelling and design

We teach the advantages and disadvantages of object oriented programming for software modeling. UML is embedded throughout the course in the examples, labs and courseworks whereby it is not only used to specify a software system, but students have to make their own designs given a domain, requirements and modeling problem.

Assesement : Individual coursework, Lab work, Workshops

2.1.3 Problem solving strategies

We teach how the use of data structures including Lists, ArrayLists, Sets, Stacks, Queues, Maps, HashMaps, HashSets and Binary trees can be used to solve computational problems. At the weekly workshops we give problems to be solved using whiteboard and marker to encourage the development of computational thinking strategies while not being distracted by the computer or code editor.

Assesement : Examination, Individual coursework, Lab work, Workshops

2.1.4 Analyse if/how a system meets current and future requirements

Students learn testing through the provision of unit tests in the labs and coursework in order to make sure that their code meets the expectations set.

Assesement : Group coursework, Lab work

2.1.5 Deploy theory in design, implementation and evaluation of systems

Patterns, OO Design and UML

Assesement : Coursework and examination

2.1.9 Knowledge of information security issues

We devote one week to secure programming involving a guest lecture from industry and the reading of scientific papers on the topic, which is assessed in the exam.

Assesement : Examination

2.2.2 Evaluate systems in terms of quality and trade-offs

Pros and cons of different algorithmic and design approaches

Assesement : Exams, Coursework

2.3.2 Development of general transferable skills

Every week, there is a workshop where we challenge our students to solve a set of problems, which is always related to the week's topic. The activities have to be conducted in teams of 5-6 students that are arranged on an ad-hoc basis. This involves collaboration and discussion with others, reaching agreements and delegating on others.

Assesement : Workshop

3.1.1 Deploy systems to meet business goals

All the practical work in workshops, labs and coursework is goal driven. The goals are defined using formal specifications, natural language and UML diagrammes and they are checked using automated testing and acceptance testing.

Assesement : formative assessment in labs, workshops and coursework; summative assessment in coursework and exam

3.1.2 Methods, techniques and tools for information modelling, management and security

Students are taught the security risks of programming including those about using online resources for debugging purposes which involve using bad practices, and adding bugs to the codebase inadvertently.

Assesement : Examination

3.2.1 Specify, deploy, verify and maintain information systems

By using a continuous integration server, students are involved in deploying and testing software and receive feedback about whether the specifications are met.

Assesement : Coursework