computer-science-final-specification
computer-science-final-specification
Science
Curriculum Specification
LEAVING CERTIFICATE
Ordinary and Higher Level
Contents
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2 Teaching and learning . . . . . . . . . . . . . . 15
Applied learning tasks . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Differentiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Senior cycle . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Differentiation through the learning
The experience of senior cycle . . . . . . . . . . . . . . . . . . . 4 outcomes of the specification . . . . . . . . . . . . . . . . . . 16
Differentiation in teaching and learning . . . . . . . . 17
Differentiation in assessment . . . . . . . . . . . . . . . . . . 17
Computer Science . . . . . . . . . . . . . . . . . . . . 6
Time allocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Rationale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Aim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 Strands and learning outcomes . . . . . . 18
The specification is constructed into 3 strands, whose learning outcomes are interwoven. The 3
strands are:
The practices and principles of computer science, such as computational thinking, computers and
society, and creative design
How to analyse problems in computational terms and understand concepts such as abstraction,
logic, algorithms, computer systems, data representation and evaluation
Programming languages and how to read, write, test and modify computer programs
The process of designing computational artefacts such as web pages, digital animations,
simulations, games, apps and robotic systems
The ethical, historical, environmental and technological aspects of computer science, and how it
impacts the social and economic development of society.
The role of programming in computer science is like that of practical work in the other subjects—
it provides motivation, and a context within which ideas are brought to life. Students learn
programming by solving problems through computational thinking processes and through practical
applications such as applied learning tasks.
The Leaving Certificate Computer Science specification is designed for all students. It applies to many
aspects of students’ lives and is therefore relevant to a wide range of student interests. It is situated
within the context of senior cycle education.
ing
arn CYCLE CURR
Le IOR ICU Pl
d SEN LU an
H E INCIPLE M
an
P R S
ni
T
ng
g
in
VALUES
ch
Tea
LEARNERS
resourceful, confident,
engaged and active
Te ac
er h
Pr
re
of
lt u
es
sio
na
Cu
lD ol
ev ho
elo Sc
pm
ent
Curriculum components at senior cycle promote a balance between knowledge and skills, and the kinds
of learning strategies relevant to participation in, and contribution to, a changing world where the
future is uncertain.
This vision of the learner is underpinned by the values on which senior cycle is based and it is
realised through the principles that inform the curriculum as it is experienced by students in schools.
The curriculum, made up of subjects and courses, embedded key skills, clearly expressed learning
outcomes, and supported by a range of approaches to assessment, is the vehicle through which the
vision becomes a reality for the learner.
At a practical level, the provision of a high-quality educational experience in senior cycle is supported
by:
Senior cycle education is situated in the context of a broader education policy that focuses on the
contribution that education can make to the development of the learner as a person and as a citizen. It
is an education policy that emphasises the promotion of social cohesion, the growth of society and the
economy, and the principle of sustainability in all aspects of development.
problem solving
creativity
LEARNERS
resourceful, confident,
ENGAGED engaged and active
ACTIVE
they participate in the LEARNERS
social, community, national
they pursue excellence in
and international dimensions
learning to the best of their ability
of their lives by
and develop a love of learning by
showing respect for others
seeking and using knowledge, and
forming and sustaining caring understanding how knowledge is
relationships created
making informed decisions
experiencing passion for, rigour in and
building practical know-how commitment to learning
taking interest in and responsibility for developing intellectual and critical
their social and physical environment thinking skills
developing moral/ethical and political
understanding exercising autonomy and
independence in learning
making lifestyle choices that are
sustainable managing their learning and making
learning choices
contributing to their own material
wellbeing and the material wellbeing setting and achieving learning goals
of society
pursuing learning qualifications
Aim
Leaving Certificate Computer Science aims to develop and foster the learner’s creativity and problem
solving, along with their ability to work both independently and collaboratively. Students will apply
the fundamental practices and concepts of computer science and develop an appreciation of the
diverse role of computing technology in society and the environment in which they live. Studying
computer science will nurture students’ interests and passions and empower them to engage
confidently and actively with the world.
Objectives
The objectives of Leaving Certificate Computer Science are to enable students to:
develop an understanding of how computing technology presents new ways to address problems;
and to use computational thinking to analyse problems and to design, develop and evaluate solutions
read, write, test, and modify computer programs
develop an understanding of how computers work; the component parts of computer systems and
how they interrelate, including software, data, hardware, communications, and users
appreciate the ethical and social implications relating to the use of computing technology and
information and identify the impact of technology on personal life and society
understand how information technology has changed over time and the effects these changes
may have on education, the workforce, and society
evaluate the accuracy, relevance, appropriateness, comprehensiveness, and bias of online
information sources
work independently and collaboratively, communicate effectively, and become responsible,
competent, confident, reflective, and creative users of computing technology.
Students who can think computationally are better able to conceptualise, understand and use
computer-based technology, and so are better prepared for today’s world and the future.
Early childhood
Aistear, the early childhood curriculum framework, celebrates early childhood as a time of wellbeing
and enjoyment where children learn from experiences as they unfold. The theme of Exploring and
Thinking is about children making sense of the things, places and people in their world by interacting
with others, playing, investigating, questioning, and forming, testing and refining ideas. The theme of
Communicating is about children sharing their experiences, thoughts, ideas, and feelings with others
with growing confidence and competence, in a variety of ways and for a variety of purposes.
Primary school
The curriculum area of Social, Environmental and Scientific Education (SESE) at primary school
provides opportunities for children to actively explore and investigate the world around them from a
human, social and cultural perspective. A scientific approach to investigations fosters the development
of important skills, concepts and knowledge through which children can observe, question, investigate,
understand and think logically about living things and their environments, materials, forces, everyday
events and problems. The knowledge and skills acquired may be applied in designing and making
activities in which children perceive a need to create or modify elements of their environments.
Through their investigations, children develop informed, critical and scientific perspectives that
acknowledge the importance of founding judgements on a respect for facts, accuracy and reason.
Computer science builds on language skills developed at primary level. Through language, students
learn to use appropriate sequencing, tenses, and vocabulary to tell and retell stories and personal
and procedural narratives of increasing complexity. They learn to use topic-specific language to give
information, to explain and to justify their ideas and to predict and reflect upon actions, events and
processes relating to real and imaginary contexts. Language skills developed at primary level will
help students of computer science to appreciate the importance of the correct use of language, and
appreciate just how powerful words and language are in the context of social media.
The Primary School Mathematics Curriculum aims to provide children with a language and a system
through which to analyse, describe, illustrate, model and explain a wide range of experiences, make
predictions, and solve problems. Leaving Certificate Computer Science builds on these skills, as it
supports students to think and communicate quantitatively and spatially, to solve problems, and to
recognise situations where mathematics can be applied.
Many junior cycle subjects and short courses have close links with computer science, particularly
mathematics, science, CSPE, and the short courses in coding and digital media literacy.
Senior cycle
Many senior cycle subjects have close links with computer science. Computational thinking is
a thought process (or a human thinking skill) that uses analytic and algorithmic approaches to
formulate, analyse and solve problems. Whilst the alignment of computer science with the STEM
subjects is obvious, the strategies learned in computer science also relate to learning in other subjects.
For example, computer science shares similarities with language learning, as aspects such as pattern
recognition, syntax, textual analysis, and argument formation are relevant to both fields of study.
Computer science provides a context for students to develop metacognitive skills which will support
them as they take responsibility for their own learning.
Further study
Students live in a technologically-rich world. Leaving Certificate Computer Science will provide
students with the knowledge and skills that will help them to understand current computer
technology and prepare them for emerging technologies. A foundation in this discipline will introduce
students to the excitement and opportunities afforded by this growing and dynamic field, as well as
preparing them for a range of rewarding careers.
Leaving Certificate Computer Science incorporates a broad range of transferable and trans-
disciplinary skills such as problem solving, logical thinking, and creative design. It also promotes skills
of synthesis, evaluation, communication, time management, organisation, and teamwork. These skills
and capabilities provide support for further study and learning beyond formal education, including
learning in areas such as computer programming, database analysis, computer science, computer
engineering, software engineering, information technology and game development.
Community links are a valuable resource for schools and students participating in Leaving Certificate
Computer Science. These links can take the form of participation in industry and local business
mentoring/career programmes and university mentoring programmes, leading and participating
in local coding clubs or school coding clubs, and collaborating with local community groups to use
technology to solve a local problem.
Computer science supports education for sustainable development by integrating the key skills
of senior cycle throughout its strands. Many of the contexts used to explore the knowledge and
understanding of computer science provide opportunities to discuss the practical and ethical aspects
of computing, and to consider the use of computers and related technology from a societal perspective.
In strand 1, the practices and principles of computer science are encountered in a context-based
approach related to social, professional, and scientific contexts. Students will appreciate how the use
of computing technology impacts on communities. In strand 2, students learn how solutions can
be designed that exploit the power of computers. They will consider ethical dilemmas and contexts
relating to the use of computers, including how the resources used in the product lifecycle—water,
fuel, and electricity—can increase energy efficiency by changing systems and ways of working. In
strand 3, as students build computational artefacts, they appreciate the possibilities of how computing
technology can provide ways to protect natural resources. For example, students will learn how
modelling can be used to optimise systems to improve efficiency and reduce the damaging impact
of energy-consuming infrastructures and systems. Throughout the course, students will apply the
fundamental practices and concepts of computer science and develop an appreciation of the diverse
role of computing technology in society and the environment in which they live.
The four applied learning tasks explore the four following contexts: Interactive information systems,
Analytics, Modelling and simulation, and Embedded systems. The tasks provide opportunities for
students to develop their theoretical and procedural understanding as they grapple with computer
science practices, principles and core concepts in increasingly sophisticated applications.
1
A computational artefact is anything created by a human using a computer..
The output from each task is a computational artefact and a concise individual report outlining its
development. In the report, students outline where and how the core concepts were employed. The
structure of the reports should reflect the design process shown above in Figure 3. Initial reports
could be in the form of structured presentations to the whole class. As students progress, reports
should become detailed and individual. Reports are collected in a digital portfolio along with the
computational artefact and must be verified as completed by both the teacher and the student. The
(separate) externally-assessed coursework will be based on all learning outcomes, with those of strand
3 being particularly relevant.
INFORMATION COMMUNICATING
PROCESSING
THE LEARNER
CRITICAL BEING
AND CREATIVE PERSONALLY
THINKING EFFECTIVE
WORKING
WITH
OTHERS
The key skills of information processing; being personally effective; communicating; critical and
creative thinking and working with others, and the learning outcomes associated with them,
comprise the NCCA Key Skills Framework. The Key Skills Framework was developed to provide a
common, unified approach for embedding key skills across all future Leaving Certificate specifications.
These skills are identified as being important for all students to achieve to the best of their ability,
both during their time in school and in the future, and to fully participate in society, in family and
community life, the world of work and lifelong learning. Computer science develops these skills in the
following ways:
Communicating
Strong communication skills are developed in collaborative project work. Students use technology to
communicate both face-to-face and through digital media. Although literacy skills are not targeted
directly, they enable full participation in the learning experience. Internet research and the use of
external sources require and build analysis and interpretation skills. Students will read a wide range
of information sources. As part of the course students will be required to express and share their
opinions through dialogue, discussion and argument. This encourages engaging in dialogue, listening
attentively and eliciting opinions, views and emotions. They will also learn to provide technical
information in ways that are relevant to and easily understood by people with diverse levels of
technical knowledge and understanding. There is an opportunity to develop communication skills
further as students compose and present using a variety of media.
In each of the tasks, students work together to apply learning from strands 1 and 2, in addition to
cumulative learning from the tasks, so that they will have the opportunity to achieve all of the
learning outcomes to their full extent.
approach problems in a systematic way and use abstraction to identify tasks and select appropriate
strategies to generate solutions
create visual representations or models, and decide which tools to use and which algorithms to use,
adapt or create as they employ appropriate techniques to develop their solution
develop computer systems as they use programming, analysis and design skills combined with
hardware knowledge to create network/Internet/cloud-based applications
evaluate and test their solutions to identify and remove errors from their programs and base their
solutions upon integration, analysis and evaluation of qualitative and quantitative information and
data.
As they progress through the practical exercises and applied learning tasks, students learn from
their successes and their mistakes. They take this learning to the next task to effectively solve new
problems in different situations.
Teachers will assess and provide feedback on student learning as part of ongoing teaching and
learning in the classroom. The strand 3 tasks will not be assessed by the SEC. The learning achieved
through practical exercises and the applied learning tasks will be assessed both by the coursework
project assessment and by the end-of-course examination. Both teacher and student will be required
to verify completion of the strand 3 applied learning tasks.
Differentiation
The Leaving Certificate Computer Science specification is differentiated to cater for students of
differing abilities and levels of achievement.
Students engage with a broad range of Students engage with a broad range of
knowledge, mainly concrete in nature, but knowledge, including theoretical concepts
with some elements of abstraction or theory. and abstract thinking, with significant
They will be expected to demonstrate and use depth in some areas. They will be expected
a moderate range of practical and cognitive to demonstrate and use a broad range of
skills and tools and to plan and develop simple specialised skills and tools to evaluate and use
investigative strategies. They will be expected information, to plan and develop investigative
to select from a range of procedures and apply strategies, and to determine solutions to varied,
known solutions to a variety of problems in unfamiliar problems. They will be expected to
both familiar and unfamiliar contexts. They identify and apply skills and knowledge in a
will design and produce computational artefacts wide variety of both familiar and unfamiliar
that serve a useful purpose. contexts. They will design and produce
computational artefacts that serve a useful
purpose.
DIFFERENTIATION IN ASSESSMENT
Assessment of Leaving Certificate Computer Science will be based on the learning outcomes in the
specification. The computer-based, end-of-course examination will be assessed at two levels, Higher
and Ordinary. At Higher level, all the learning outcomes will be assessed including those presented in
bold type. At Ordinary level, only those learning outcomes that are presented in normal type will be
assessed. Examination questions will require candidates to demonstrate knowledge, understanding,
application, analysis, and evaluation appropriate to each level. Differentiation at the point of
assessment will also be achieved through the depth and complexity of the questions and tasks, the
stimulus material used, and the extent of the structured support provided for examination candidates
at different levels.
Time allocation
Computer science is designed for 180 hours of class contact time. Meeting each learning outcome
will be achieved through an interweaving of all three strands, and through a balance of theoretical
learning, applied learning (through both the four applied learning tasks and tasks set by the teacher),
problem-based learning and project management.
Problem solving 1.3 solve problems by deconstructing them into smaller units
using a systematic approach in an iterative fashion
1.4 solve problems using skills of logic
S1: Computers and society 1.11 discuss the complex relationship between computing
technologies and society including issues of ethics
Social and ethical considerations
1.12 compare the positive and negative impacts of computing
of computing technologies
on culture and society
2
The column ‘Students learn about’ lists some specific areas that students must learn.
User-centred design 1.16 compare two different user interfaces and identify
different design decisions that shape the user experience
1.17 describe the role that adaptive technology can play in the
lives of people with special needs
1.18 recognise the diverse roles and careers that use computing
technologies
Working in a team, assigning 1.20 collaborate and assign roles and responsibilities within a
roles and responsibilities team to tackle a computing task
Software development and 1.23 reflect and communicate on the design and development
management process
S2: Algorithms
2.5 use pseudo code to outline the functionality of an
Programming concepts
algorithm
Sorting: Simple sort, Insert sort, 2.6 construct algorithms using appropriate sequences,
Bubble sort, Quicksort selections/conditionals, loops and operators to solve a
range of problems, to fulfil a specific requirement
2.7 implement algorithms using a programming language to
solve a range of problems
Search: Linear search, Binary 2.8 apply basic search and sorting algorithms and describe the
search limitations and advantages of each algorithm
2.9 assemble existing algorithms or create new ones that use
functions (including recursive), procedures, and modules
Basic electronics: voltage, 2.12 describe the different types of logic gates and explain how
current, resistors, capacitors, they can be arranged into larger units to perform more
transistors complex tasks
Operating system layers: 2.13 describe the rationale for using the binary number system
Hardware, OS, Application, User in digital computing and how to convert between binary,
hexadecimal and decimal
2.14 describe the difference between digital and analogue
input
Web infrastructure - Computer 2.15 explain what is meant by the World Wide Web (WWW)
Network Protocols: HTTP, TCP, and the Internet, including the client server model,
IP, VOIP hardware components and communication protocols
8-bit ASCII 2.17 use ASCII and Unicode character sets to encode/decode
Non-Roman character sets a message and consider the importance of having such
Unicode: UTF-8, Emojis standards
Information systems 2.18 collect, store and sort both continuous and discrete data
Design process
Analytics Abstraction 3.4 develop algorithms that can find the frequency, mean,
median and mode of a data set
Data collection and analysis 3.5 structure and transform raw data to prepare it for
Interpretation of data analysis
3.6 represent data to effectively communicate in a graphical
Algorithms form
3.7 use algorithms to analyse and interpret data in a way
that informs decision-making
Computing inputs and outputs 3.12 measure and store data returned from an analogue input
Computer systems 3.13 develop a program that utilises digital and analogue
inputs
As well as varied teaching strategies, varied assessment strategies will support learning and provide
information that can be used as feedback so that teaching and learning activities can be modified
in ways that best suit individual learners. By setting appropriate and engaging tasks, asking higher-
order questions and giving feedback that promotes learner autonomy, assessment will support
learning and summarise achievement.
There are several important aspects of computer science assessments to consider: the use of authentic
tasks, the breadth of concepts being assessed, and the special role computers can play in delivering
instruction and measuring performance. Compared to other subjects, computer science provides a
unique opportunity to take advantage of online learning and computerised assessment. Students can
create programs such as games, apps and simulations within an environment that also collects data,
analyses achievement, and communicates progress to both students and teachers.
There are two components to the assessment of Leaving Certificate Computer Science: (i) an end-of-
course computer-based examination and (ii) coursework. Both components reflect the relationship
between the application of skills and the theoretical content of the specification.
The end-of-course assessment may comprise questions of varied format and type. The questions will
assess both the core concepts and the practices and principles of computer science. The questions will
be based on the learning outcomes in the specification; however, any question may address more than
one learning outcome, or require students to combine knowledge and skills from across several areas
of the specification.
The coursework assessment will require students to demonstrate proficiency in course content and skills
that are not easily assessed by the end-of-course examination. The assessment will require students to
create an innovative computational artefact, and to report on the work and process involved. Students
must acknowledge, through appropriate citations and references, the source or author of all information
or evidence taken from someone else’s work. It is anticipated that student work for both components will
be submitted electronically and will be marked by the State Examinations Commission (SEC).
Component Percentage
End-of-course examination 70
Computer-based assessment of learning outcomes
Coursework assessment 30
One computational artefact with report
Total 100
End-of-course examination
The end-of-course examination will be made up of a range of question types. It is anticipated the
exam will be computer-based. The questions will require students to demonstrate knowledge,
understanding, application, analysis, evaluation and creativity appropriate to each level. The key skills
are embedded in the learning outcomes and will be assessed in the context of the learning outcomes.
The examination will assess:
knowledge and recall of facts, principles and methods relating to computer science
application of knowledge and understanding of the principles and concepts of computer science,
including abstraction, logic, algorithms and data representation, and how to analyse problems in
computational terms
ability to write code and to compile, test and debug program code
ability to evaluate computer systems that solve problems, making reasoned judgements about these
and presenting conclusions
problem solving based on integration, analysis and evaluation of qualitative and quantitative
information and data, using knowledge gained from all three strands
understanding of the ethical, historical, environmental and technological aspects of Computer
Science, and of how computer science contributes to the social and economic development of
society.
consistently applies knowledge applies knowledge and selects appropriate facts and
and understanding of the understanding of principles principles to solve problems
principles and concepts of and concepts of computer concerning familiar material
computer science to problem science to problem solving in using a limited range of
solving in both familiar both familiar and some new computational thinking
and new contexts using contexts using appropriate methods.
appropriate computational computational thinking
thinking methods. methods.
is able to write, compile, test is able to write, compile, test only has a limited ability to
and debug program code in a and debug program code with write compile, test and debug
manner that eliminates almost some errors. program code.
all errors.
consistently designs, programs designs programs and designs programs that do not
and evaluates computer evaluates some computer solve problems that they were
systems that solve problems, systems that solve problems, designed to solve. Presents
making reasoned judgements making judgements about limited evaluation of some
about these and presenting these and presenting computer systems without
conclusions. conclusions. making judgements about these
or presenting conclusions.
In January of the second year of the course, the State Examinations Commission (SEC) will set a task
in which students are required to generate a computational artefact in response to a brief set out by
the SEC. The time-period for completion of the coursework will be set out in the brief. A period of
6-8 weeks is anticipated, after which the completed task is submitted, electronically, to the SEC for
marking. The date for submission will be set by the SEC each year.
Reasonable accommodations
This Leaving Certificate Computer Science specification requires that students engage with practical
applications of computational thinking on an ongoing basis throughout the course. In addition, the
assessment involves a coursework element, which accounts for 30% of the total marks awarded. This
emphasis on practical applications may have implications for students with physical/medical/sensory
and/or specific learning difficulties. In this context, the scheme of Reasonable Accommodations,
operated by the State Examinations Commission, is designed to assist candidates in the Leaving
Certificate who have physical/medical/sensory and/or specific learning difficulties. In considering the
course, it is recommended that any student with a disability should contact the State Examinations
Commission beforehand to find out if any accommodations can be made.
Apply select and use information and/or knowledge and understanding to explain
a given situation or real circumstances
Calculate obtain a numerical answer showing the relevant stages in the working
Compare give an account of the similarities between two (or more) items or situations,
referring to both (all) of them throughout
Criticise state, giving reasons the faults/shortcomings of, for example, an experiment
or a process
Define give the precise meaning of a word, phrase, concept or physical quantity
Describe develop a detailed picture or image of, for example a structure or a process,
using words or diagrams where appropriate; produce a plan, simulation or
model
Distinguish make the differences between two or more concepts or items clear
Evaluate (data) collect and examine data to make judgments and appraisals; describe
how evidence supports or does not support a conclusion in an inquiry or
investigation; identify the limitations of data in conclusions; make judgments
about the ideas, solutions or methods
Evaluate (ethical collect and examine evidence to make judgments and appraisals; describe
judgement) how evidence supports or does not support a judgement; identify the
limitations of evidence in conclusions and make judgments about ideas,
solutions or methods
Infer use the results of an investigation based on a premise; read beyond what has
been literally expressed
Interpret use knowledge and understanding to recognise trends and draw conclusions
from given information
Prove use a sequence of logical steps to obtain the required result in a formal way
Provide evidence provide data and documentation that support inferences or conclusions
Data
Students learn how data about themselves and their world is collected and used. Data is collected and
stored so that it can be analysed to better understand the world and make more accurate predictions.
Data is collected with both computational and non-computational tools and processes.
Computing systems
A computing system consists of hardware, software, computational processes and networks and
users. Students will develop programming, analysis and design skills combined with the hardware
knowledge needed to create network/Internet/cloud-based applications. They will learn how
computing devices (such as smart devices, desktop computers and tablets) communicate with each
other and the world around them and how to plan and design the infrastructure and systems that
allow this to happen.
Algorithms
An algorithm is a sequence of steps designed to accomplish a specific task. Algorithms are translated
into programs, or code, to provide instructions for computing devices. Students learn how to read,
write, modify and test algorithms, as well as how to evaluate competing algorithms. The words
programming, coding and programming language are defined as:
Programming is the craft of analysing problems and designing, writing, testing and maintaining
programs to solve them
Coding is the act of writing computer programs in a programming language
A programming language is the formal language used to give a computer instruction
Software evaluation
Software evaluation is the process of determining if the program or combination of programs is the
best possible solution to a given problem or task. The evaluation process should include factors such as
feasibility, efficiency, and ethical use.
Software testing
Software testing is the process of finding and correcting errors (bugs) in a program or system and
ensuring that the program produces the intended output. Debugging includes identifying errors, gaps,
and missing requirements.
Heuristic
A heuristic is an approach to problem solving which aims to make an approximate solution to the
problem. This can be used when time and resources are limited. The solution may not be feasible
using classic or standard methods but should aim to approximate the optimal solution. This may
involve the loss of precision, accuracy, optimal performance or completeness.