• Professional Development
  • Medicine & Nursing
  • Arts & Crafts
  • Health & Wellbeing
  • Personal Development

2439 Courses

Fast Track to Core Java Programming for Object Oriented Developers (TT2104-J11)

By Nexus Human

Duration 4 Days 24 CPD hours This course is intended for This is an introductory-level Java programming course, designed for experienced developers who wish to get up and running with Java, or who need to reinforce sound Java coding practices, immediately. Overview Working in a hands-on learning environment, guided by our expert team, attendees will learn to: Understand not only the fundamentals of the Java language, but also its importance, uses, strengths and weaknesses Understand the basics of the Java language and how it relates to OO programming and the Object Model Learn to use Java exception handling features Work with the Modular system (Project Jigsaw) Understand and use classes, inheritance and polymorphism Understand and use collections, generics, autoboxing, and enumerations Process large amount of data using Lambda expressions and the Stream API Abstract, static and private methods in interfaces Take advantage of the Java tooling that is available with the programming environment being used in the class Specific Java 11 features covered: Using the Local Variable Type in Lambda expressions; Updates made to the String AP Time Permitting: Quick look ahead - Java 12, Java 13, Java 14 and Beyond If you're an experienced OO developer (coming from a C# or C++ background, etc.) who needs to transition to programming in Java, this fast-paced, hands-on course will get you there quickly. Fast Track to Java Programming for OO Experienced Developers is a four-day, lab-intensive class where you'll quickly be immersed in working with the latest Java 11 programming techniques, using best practices for writing solid, robust (and well-written!) modern object-oriented applications. In addition to learning excellent, current coding skills in Java, you'll explore the new improved features for better performance and new capabilities for addressing rapid application development that Java 11 brings to the table. This course includes several key aspects that were introduced in Java 9, Java 10, and Java 11 including the Java Modular System, Local Variable Type Inference, and several API updates. This course also includes a Quick Look at what?s next in Java ? Java 12, Java 13, Java 14 and beyond. The Java Platform Java Platforms Lifecycle of a Java Program Responsibilities of JVM Documentation and Code Reuse Using the JDK Setting Up Environment Locating Class Files Compiling Package Classes Source and Class Files Java Applications The Eclipse Paradigm Workbench and Workspace Views Editors Perspectives Projects Writing a Simple Class Classes in Java Class Modifiers and Types Class Instance Variables Primitives vs. Object References Creating Objects Adding Methods to the Class Passing Parameters into Methods Returning a Value from a Method Overloaded Methods Constructors Optimizing Constructor Usage Language Statements Operators Comparison and Logical Operators Looping Continue and Break Statements The switch Statement The for-each() Loop Using Strings Create an instance of the String class Test if two strings are equal Get the length of a string Parse a string for its token components Perform a case-insensitive equality test Build up a string using StringBuffer Contrast String, StringBuffer, and StringBuilder Specializing in a Subclass Extending a Class Casting The Object Class Default Constructor Implicit Constructor Chaining Fields and Variables Instance vs. Local Variables: Usage Differences Data Types Default Values Block Scoping Rules Final and Static Fields Static Methods Using Arrays Arrays Accessing the Array Multidimensional Arrays Copying Arrays Variable Arguments Local-Variable Type Inference Type inference Infering Types of Local Variables The var Reserved Type name Benefits of Using var Backward Compatibility Java Packages and Visibility Class Location of Packages The Package Keyword Importing Classes Executing Programs Visibility in the Modular System Java Naming Conventions Inheritance and Polymorphism Polymorphism: The Subclasses Upcasting vs. Downcasting Calling Superclass Methods from Subclass The final Keyword Interfaces and Abstract Classes Separating Capability from Implementation Abstract Classes Implementing an Interface Abstract Classes vs. Interfaces Introduction to Exception Handling Exception Architecture Throwing Exceptions Checked vs. Unchecked Exceptions Exceptions Handling Multiple Exceptions Automatic Closure of Resources Creating Your Own Exceptions Utility Classes Wrapper Classes Autoboxing/Unboxing Enumeration Syntax Using Static imports Introduction to Generics Generics and Subtyping Bounded Wildcards Generic Methods Legacy Calls to Generics When Generics Should Be Used Lambda Expressions and Functional Interface Lambda Expression Syntax Functional Interfaces Type Inference in Java 8 Method references Collections Characterizing Collections Collection Interface Hierarchy The Set, List and Queue Interfaces Map Interfaces Using Collections Collection Sorting Comparators Using the Right Collection Lambda expressions in Collections Streams Processing Collections of data The Stream interface Reduction and Parallelism Filtering collection data Sorting Collection data Map collection data Find elements in Stream Numeric Streams Create infinite Streams Sources for using Streams Collectors Creating Collections from a Stream Group elements in the Stream Multi-level grouping of elements Partitioning Streams Introduction to the Module System Introduce Project Jigsaw Classpath and Encapsulation The JDK internal APIs Java 9 Platform modules Defining application modules Define module dependencies Implicit dependencies Implied Readability Exporting packages Java Date/Time The Date and Calendar classes Introduce the new Date/Time API LocalDate, LocalDateTime, etc. Formatting Dates Working with time zones Manipulate date/time values Java 12 and beyond Provide an overview of changes since Java 11 Introduce Preview Features Records (Java 14) Switch Expressions (Java 12, Java 13, Java 14) Text Blocks (Java 13, Java 14) Helpful NullPointerExceptions (Java 14) Pattern Matching for instanceof (Java 14) Additional course details: Nexus Humans Fast Track to Core Java Programming for Object Oriented Developers (TT2104-J11) training program is a workshop that presents an invigorating mix of sessions, lessons, and masterclasses meticulously crafted to propel your learning expedition forward. This immersive bootcamp-style experience boasts interactive lectures, hands-on labs, and collaborative hackathons, all strategically designed to fortify fundamental concepts. Guided by seasoned coaches, each session offers priceless insights and practical skills crucial for honing your expertise. Whether you're stepping into the realm of professional skills or a seasoned professional, this comprehensive course ensures you're equipped with the knowledge and prowess necessary for success. While we feel this is the best course for the Fast Track to Core Java Programming for Object Oriented Developers (TT2104-J11) course and one of our Top 10 we encourage you to read the course outline to make sure it is the right content for you. Additionally, private sessions, closed classes or dedicated events are available both live online and at our training centres in Dublin and London, as well as at your offices anywhere in the UK, Ireland or across EMEA.

Fast Track to Core Java Programming for Object Oriented Developers (TT2104-J11)
Delivered OnlineFlexible Dates
Price on Enquiry

Python Foundation - Quick Jump Start for Programmers

By Packt

If you are someone wishing to learn to code in Python, then this is just what you need. This course will help you build a solid foundation in coding with Python 3. It includes lots of opportunities for practice that will help put your learnings into action!

Python Foundation - Quick Jump Start for Programmers
Delivered Online On Demand4 hours 15 minutes
£33.99

R Programming for Data Science (v1.0)

By Nexus Human

Duration 5 Days 30 CPD hours This course is intended for This course is designed for students who want to learn the R programming language, particularly students who want to leverage R for data analysis and data science tasks in their organization. The course is also designed for students with an interest in applying statistics to real-world problems. A typical student in this course should have several years of experience with computing technology, along with a proficiency in at least one other programming language. Overview In this course, you will use R to perform common data science tasks.You will: Set up an R development environment and execute simple code. Perform operations on atomic data types in R, including characters, numbers, and logicals. Perform operations on data structures in R, including vectors, lists, and data frames. Write conditional statements and loops. Structure code for reuse with functions and packages. Manage data by loading and saving datasets, manipulating data frames, and more. Analyze data through exploratory analysis, statistical analysis, and more. Create and format data visualizations using base R and ggplot2. Create simple statistical models from data. In our data-driven world, organizations need the right tools to extract valuable insights from that data. The R programming language is one of the tools at the forefront of data science. Its robust set of packages and statistical functions makes it a powerful choice for analyzing data, manipulating data, performing statistical tests on data, and creating predictive models from data. Likewise, R is notable for its strong data visualization tools, enabling you to create high-quality graphs and plots that are incredibly customizable. This course will teach you the fundamentals of programming in R to get you started. It will also teach you how to use R to perform common data science tasks and achieve data-driven results for the business. Lesson 1: Setting Up R and Executing Simple Code Topic A: Set Up the R Development Environment Topic B: Write R Statements Lesson 2: Processing Atomic Data Types Topic A: Process Characters Topic B: Process Numbers Topic C: Process Logicals Lesson 3: Processing Data Structures Topic A: Process Vectors Topic B: Process Factors Topic C: Process Data Frames Topic D: Subset Data Structures Lesson 4: Writing Conditional Statements and Loops Topic A: Write Conditional Statements Topic B: Write Loops Lesson 5: Structuring Code for Reuse Topic A: Define and Call Functions Topic B: Apply Loop Functions Topic C: Manage R Packages Lesson 6: Managing Data in R Topic A: Load Data Topic B: Save Data Topic C: Manipulate Data Frames Using Base R Topic D: Manipulate Data Frames Using dplyr Topic E: Handle Dates and Times Lesson 7: Analyzing Data in R Topic A: Examine Data Topic B: Explore the Underlying Distribution of Data Topic C: Identify Missing Values Lesson 8: Visualizing Data in R Topic A: Plot Data Using Base R Functions Topic B: Plot Data Using ggplot2 Topic C: Format Plots in ggplot2 Topic D: Create Combination Plots Lesson 9: Modeling Data in R Topic A: Create Statistical Models in R Topic B: Create Machine Learning Models in R

R Programming for Data Science (v1.0)
Delivered OnlineFlexible Dates
Price on Enquiry

Introduction to R Programming

By Nexus Human

Duration 2 Days 12 CPD hours This course is intended for Business Analysts, Technical Managers, and Programmers Overview This intensive training course helps students learn the practical aspects of the R programming language. The course is supplemented by many hands-on labs which allow attendees to immediately apply their theoretical knowledge in practice. Over the past few years, R has been steadily gaining popularity with business analysts, statisticians and data scientists as a tool of choice for conducting statistical analysis of data as well as supervised and unsupervised machine learning. What is R ? What is R? ? Positioning of R in the Data Science Space ? The Legal Aspects ? Microsoft R Open ? R Integrated Development Environments ? Running R ? Running RStudio ? Getting Help ? General Notes on R Commands and Statements ? Assignment Operators ? R Core Data Structures ? Assignment Example ? R Objects and Workspace ? Printing Objects ? Arithmetic Operators ? Logical Operators ? System Date and Time ? Operations ? User-defined Functions ? Control Statements ? Conditional Execution ? Repetitive Execution ? Repetitive execution ? Built-in Functions ? Summary Introduction to Functional Programming with R ? What is Functional Programming (FP)? ? Terminology: Higher-Order Functions ? A Short List of Languages that Support FP ? Functional Programming in R ? Vector and Matrix Arithmetic ? Vector Arithmetic Example ? More Examples of FP in R ? Summary Managing Your Environment ? Getting and Setting the Working Directory ? Getting the List of Files in a Directory ? The R Home Directory ? Executing External R commands ? Loading External Scripts in RStudio ? Listing Objects in Workspace ? Removing Objects in Workspace ? Saving Your Workspace in R ? Saving Your Workspace in RStudio ? Saving Your Workspace in R GUI ? Loading Your Workspace ? Diverting Output to a File ? Batch (Unattended) Processing ? Controlling Global Options ? Summary R Type System and Structures ? The R Data Types ? System Date and Time ? Formatting Date and Time ? Using the mode() Function ? R Data Structures ? What is the Type of My Data Structure? ? Creating Vectors ? Logical Vectors ? Character Vectors ? Factorization ? Multi-Mode Vectors ? The Length of the Vector ? Getting Vector Elements ? Lists ? A List with Element Names ? Extracting List Elements ? Adding to a List ? Matrix Data Structure ? Creating Matrices ? Creating Matrices with cbind() and rbind() ? Working with Data Frames ? Matrices vs Data Frames ? A Data Frame Sample ? Creating a Data Frame ? Accessing Data Cells ? Getting Info About a Data Frame ? Selecting Columns in Data Frames ? Selecting Rows in Data Frames ? Getting a Subset of a Data Frame ? Sorting (ordering) Data in Data Frames by Attribute(s) ? Editing Data Frames ? The str() Function ? Type Conversion (Coercion) ? The summary() Function ? Checking an Object's Type ? Summary Extending R ? The Base R Packages ? Loading Packages ? What is the Difference between Package and Library? ? Extending R ? The CRAN Web Site ? Extending R in R GUI ? Extending R in RStudio ? Installing and Removing Packages from Command-Line ? Summary Read-Write and Import-Export Operations in R ? Reading Data from a File into a Vector ? Example of Reading Data from a File into A Vector ? Writing Data to a File ? Example of Writing Data to a File ? Reading Data into A Data Frame ? Writing CSV Files ? Importing Data into R ? Exporting Data from R ? Summary Statistical Computing Features in R ? Statistical Computing Features ? Descriptive Statistics ? Basic Statistical Functions ? Examples of Using Basic Statistical Functions ? Non-uniformity of a Probability Distribution ? Writing Your Own skew and kurtosis Functions ? Generating Normally Distributed Random Numbers ? Generating Uniformly Distributed Random Numbers ? Using the summary() Function ? Math Functions Used in Data Analysis ? Examples of Using Math Functions ? Correlations ? Correlation Example ? Testing Correlation Coefficient for Significance ? The cor.test() Function ? The cor.test() Example ? Regression Analysis ? Types of Regression ? Simple Linear Regression Model ? Least-Squares Method (LSM) ? LSM Assumptions ? Fitting Linear Regression Models in R ? Example of Using lm() ? Confidence Intervals for Model Parameters ? Example of Using lm() with a Data Frame ? Regression Models in Excel ? Multiple Regression Analysis ? Summary Data Manipulation and Transformation in R ? Applying Functions to Matrices and Data Frames ? The apply() Function ? Using apply() ? Using apply() with a User-Defined Function ? apply() Variants ? Using tapply() ? Adding a Column to a Data Frame ? Dropping A Column in a Data Frame ? The attach() and detach() Functions ? Sampling ? Using sample() for Generating Labels ? Set Operations ? Example of Using Set Operations ? The dplyr Package ? Object Masking (Shadowing) Considerations ? Getting More Information on dplyr in RStudio ? The search() or searchpaths() Functions ? Handling Large Data Sets in R with the data.table Package ? The fread() and fwrite() functions from the data.table Package ? Using the Data Table Structure ? Summary Data Visualization in R ? Data Visualization ? Data Visualization in R ? The ggplot2 Data Visualization Package ? Creating Bar Plots in R ? Creating Horizontal Bar Plots ? Using barplot() with Matrices ? Using barplot() with Matrices Example ? Customizing Plots ? Histograms in R ? Building Histograms with hist() ? Example of using hist() ? Pie Charts in R ? Examples of using pie() ? Generic X-Y Plotting ? Examples of the plot() function ? Dot Plots in R ? Saving Your Work ? Supported Export Options ? Plots in RStudio ? Saving a Plot as an Image ? Summary Using R Efficiently ? Object Memory Allocation Considerations ? Garbage Collection ? Finding Out About Loaded Packages ? Using the conflicts() Function ? Getting Information About the Object Source Package with the pryr Package ? Using the where() Function from the pryr Package ? Timing Your Code ? Timing Your Code with system.time() ? Timing Your Code with System.time() ? Sleeping a Program ? Handling Large Data Sets in R with the data.table Package ? Passing System-Level Parameters to R ? Summary Lab Exercises Lab 1 - Getting Started with R Lab 2 - Learning the R Type System and Structures Lab 3 - Read and Write Operations in R Lab 4 - Data Import and Export in R Lab 5 - k-Nearest Neighbors Algorithm Lab 6 - Creating Your Own Statistical Functions Lab 7 - Simple Linear Regression Lab 8 - Monte-Carlo Simulation (Method) Lab 9 - Data Processing with R Lab 10 - Using R Graphics Package Lab 11 - Using R Efficiently

Introduction to R Programming
Delivered OnlineFlexible Dates
Price on Enquiry

Learn Selenium WebDriver with Java

By Packt

This course is designed to guide you through Selenium WebDriver and Java, right from the basic to the advanced aspects. Loaded with exercises and examples, this course provides an interactive learning experience.

Learn Selenium WebDriver with Java
Delivered Online On Demand21 hours 31 minutes
£65.99

The Complete C++ Developer Course

By Packt

This course will provide you with practical experience in C++. You will learn the basics and advanced concepts of C++, such as data types, arrays, functions, encapsulation, inheritance, exception handling, object-oriented programming (OOP), and a lot more, by developing interesting real-world applications.

The Complete C++ Developer Course
Delivered Online On Demand19 hours 41 minutes
£26.99

ARM Assembly Language From Ground Up™ 2

By Packt

This ARM assembly programming course will help you gain a solid understanding of bare-metal firmware development for ARM-based microcontrollers. You'll learn how to navigate the microcontroller reference manual and datasheet to extract the right information to build peripheral drivers and firmware like a pro. This course does not use any libraries and only applies the ARM assembly language.

ARM Assembly Language From Ground Up™ 2
Delivered Online On Demand12 hours 59 minutes
£41.99

SQL Programming Masterclass

By Course Cloud

The comprehensive SQL Programming Masterclass has been designed by industry experts to provide learners with everything they need to enhance their skills and knowledge in their chosen area of study. Enrol on the SQL Programming Masterclass today, and learn from the very best the industry has to offer! This best selling SQL Programming Masterclass has been developed by industry professionals and has already been completed by hundreds of satisfied students. This in-depth SQL Programming Masterclass is suitable for anyone who wants to build their professional skill set and improve their expert knowledge. The SQL Programming Masterclass is CPD-accredited, so you can be confident you're completing a quality training course will boost your CV and enhance your career potential. The SQL Programming Masterclass is made up of several information-packed modules which break down each topic into bite-sized chunks to ensure you understand and retain everything you learn. After successfully completing the SQL Programming Masterclass, you will be awarded a certificate of completion as proof of your new skills. If you are looking to pursue a new career and want to build your professional skills to excel in your chosen field, the certificate of completion from the SQL Programming Masterclass will help you stand out from the crowd. You can also validate your certification on our website. We know that you are busy and that time is precious, so we have designed the SQL Programming Masterclass to be completed at your own pace, whether that's part-time or full-time. Get full course access upon registration and access the course materials from anywhere in the world, at any time, from any internet-enabled device. Our experienced tutors are here to support you through the entire learning process and answer any queries you may have via email.

SQL Programming Masterclass
Delivered Online On Demand
£25

CNC Programming

5.0(10)

By Apex Learning

Overview This comprehensive course on CNC Programming will deepen your understanding on this topic. After successful completion of this course you can acquire the required skills in this sector. This CNC Programming  comes with accredited certification from CPD, which will enhance your CV and make you worthy in the job market. So enrol in this course today to fast-track your career ladder. How will I get my certificate? You may have to take a quiz or a written test online during or after the course. After successfully completing the course, you will be eligible for the certificate. Who is This course for? There is no experience or previous qualifications required for enrolment on this CNC Programming. It is available to all students, of all academic backgrounds. Requirements Our CNC Programming is fully compatible with PC's, Mac's, Laptop, Tablet and Smartphone devices. This course has been designed to be fully compatible with tablets and smartphones so you can access your course on Wi-Fi, 3G or 4G. There is no time limit for completing this course, it can be studied in your own time at your own pace. Career Path Learning this new skill will help you to advance in your career. It will diversify your job options and help you develop new techniques to keep up with the fast-changing world. This skillset will help you to- Open doors of opportunities Increase your adaptability Keep you relevant Boost confidence And much more! Course Curriculum 1 sections • 16 lectures • 01:19:00 total length •Section 01: Scope of the Course: 00:03:00 •Section 02: Numerical Control of Machine Tools: 00:04:00 •Section 03: CNC- Computer Numerical Control Syst: 00:02:00 •Section 04: Components of CNCs: 00:04:00 •Section 05: Point to Point CNC Machines: 00:03:00 •Section 06: Incremental & Absolute CNC Machines: 00:03:00 •Section 07: Open & Close Control Loop CNC Machines: 00:02:00 •Section 08: 2 &3 Axes CNC Machines: 00:02:00 •Section 09: Importance of Higher axes Machining: 00:02:00 •Section 10: Programming Format: 00:06:00 •Section 11: Cartesian Coordinate System: 00:03:00 •Section 12: How to Write a Program: 00:08:00 •Section 13: Basic CNC Programming (Absolute Mode): 00:09:00 •Section 14: Basic CNC Programming (Incremental): 00:04:00 •Section 15: A Simple Coding Exercise: 00:17:00 •Section 16: Applications of CNC: 00:07:00

CNC Programming
Delivered Online On Demand1 hour 19 minutes
£12

Bash Scripting, Linux and Shell Programming

5.0(10)

By Apex Learning

Overview This comprehensive course on Bash Scripting, Linux and Shell Programming will deepen your understanding on this topic. After successful completion of this course you can acquire the required skills in this sector. This Bash Scripting, Linux and Shell Programming comes with accredited certification from CPD, which will enhance your CV and make you worthy in the job market. So enrol in this course today to fast track your career ladder. How will I get my certificate? You may have to take a quiz or a written test online during or after the course. After successfully completing the course, you will be eligible for the certificate. Who is This course for? There is no experience or previous qualifications required for enrolment on this Bash Scripting, Linux and Shell Programming. It is available to all students, of all academic backgrounds. Requirements Our Bash Scripting, Linux and Shell Programming is fully compatible with PC's, Mac's, Laptop, Tablet and Smartphone devices. This course has been designed to be fully compatible with tablets and smartphones so you can access your course on Wi-Fi, 3G or 4G. There is no time limit for completing this course, it can be studied in your own time at your own pace. Career Path Learning this new skill will help you to advance in your career. It will diversify your job options and help you develop new techniques to keep up with the fast-changing world. This skillset will help you to- Open doors of opportunities Increase your adaptability Keep you relevant Boost confidence And much more! Course Curriculum 11 sections • 61 lectures • 03:03:00 total length •Introduction: 00:02:00 •Bash vs Shell vs Command Line vs Terminal: 00:06:00 •Listing Folder Contents (ls): 00:05:00 •Print Current Folder (pwd): 00:01:00 •Change Folder (cd): 00:03:00 •Using A Stack To Push Folders (pushd/popd): 00:03:00 •Check File Type (file): 00:01:00 •Find File By Name (locate) & Update Locate Database (updatedb): 00:02:00 •Find A Command (which): 00:02:00 •Show Command History (history): 00:02:00 •Show Manual Descriptions (whatis): 00:01:00 •Search Manual (apropos): 00:02:00 •Reference Manuals (man): 00:02:00 •Creating A Folder (mkdir): 00:02:00 •Creating A File (touch): 00:02:00 •Copy Files/Folders (cp): 00:02:00 •Move & Rename Files/Folders (mv): 00:02:00 •Delete Files/Folders (rm): 00:02:00 •Delete Empty Folder (rmdir): 00:02:00 •Change File Permissions (chmod): 00:06:00 •File Concatenation (cat): 00:03:00 •File Perusal Filter (more/less): 00:02:00 •Terminal Based Text Editor (nano): 00:03:00 •Run Commands As A Superuser (sudo): 00:03:00 •Change User (su): 00:03:00 •Show Effecter User and Group IDs (id): 00:02:00 •Kill A Running Command (ctrl + c): 00:02:00 •Kill All Processes By A Name (killall): 00:02:00 •Logging Out Of Bash (exit): 00:01:00 •Tell Bash That There Is No More Input (ctrl + d): 00:02:00 •Clear The Screen (ctr + l): 00:02:00 •Zoom In (ctrl + +): 00:02:00 •Zoom Out (ctrl + -): 00:02:00 •Moving The Cursor: 00:02:00 •Deleting Text: 00:04:00 •Fixing Typos: 00:03:00 •Cutting and Pasting: 00:03:00 •Character Capitalisation: 00:03:00 •Bash File Structure: 00:03:00 •Echo Command: 00:04:00 •Comments: 00:04:00 •Variables: 00:06:00 •Strings: 00:06:00 •While Loop: 00:04:00 •For Loop: 00:04:00 •Until Loop: 00:03:00 •Break & Continue: 00:03:00 •Get User Input: 00:02:00 •If Statement: 00:09:00 •Case Statements: 00:06:00 •Get Arguments From The Command Line: 00:04:00 •Functions: 00:05:00 •Global vs Local Variables: 00:03:00 •Arrays: 00:06:00 •Shell & Environment Variables: 00:06:00 •Scheduled Automation: 00:03:00 •Aliases: 00:03:00 •Wildcards: 00:03:00 •Multiple Commands: 00:02:00 •Resource: 00:00:00 •Assignment - Bash Scripting, Linux and Shell Programming@@: 00:00:00

Bash Scripting, Linux and Shell Programming
Delivered Online On Demand3 hours 3 minutes
£12