Download Computer Science and Philosophy

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Computer Science
Exciting Students to Consider
a Wonderful Degree Option
Professor Peter Millican
Faculties of Computer Science and Philosophy
Hertford College, University of Oxford
1. Degree Choice for the
Mathematically Able
Student
Five Important Points
Do not assume that school subjects will be the
same at university (e.g. Maths, Languages).
Consider other options, not just those you have
encountered at school (e.g. Philosophy, Computer
Science, Engineering).
It’s fun to learn new and varied things.
Bear in mind that your interests can change!
A joint degree is often worth more in the jobmarket, because it demonstrates flexibility.
Why Do You Like Mathematics?
If you are really good at school Maths, and enjoy it
a lot, then ask yourself why you enjoy it:
–
–
–
–
Because you think it will be useful in your life?
Because you like the kudos of being good at it?
Because you get a buzz solving problems?
Because you love intellectual exercises, even if
they prove very hard to solve?
– Because you need Mathematics to understand
other things (e.g. Physics, Economics)?
– Because you’re fascinated by abstract
mathematical structures?
Computer Science: Why?
Computers Shape the Future
– They’re everywhere, and constantly gaining
ground in every field of life.
– Understanding their potential, and knowing
how to use them effectively, is personally
empowering, economically valuable, and
opens huge creative potential.
– But developing new computer applications
raises all these benefits to a radically different
level. It’s also creative in itself, and great fun!
Future Value and Careers
Programming is a Transferable Skill.
– “Computer languages” are not like natural languages
that take years to master: once you have learned to
think algorithmically, you can easily apply this in
different contexts.
Perhaps more than any other discipline, the
specialist skills that Computer Science teaches
are applicable in almost any area of business,
education, industry and research.
– So graduates can seek a huge range of employment
that directly values their subject expertise.
Self-Employment
Many Computer Science students set up
their own “businesses” alongside study:
– No need for special funding (just need a
machine and an internet connection);
– A massive worldwide market, easily available
(through the internet);
– Can build up slowly, try things, have failures ...
– A wonderful learning experience, whether or
not it ends up thriving as a business, and …
– You learn more Computer Science on the way!
A Contrast with Other “Sciences”
To enjoy studying Mathematics, Physics,
Chemistry etc. at university, you need to
have a strong interest in the subject itself –
enough to take you through to the most
advanced material in the final year.
But motivation for Computer Science can
come not only from the subject itself (which
is both interesting and varied), but also from
its practical usefulness and applicability.
No Need for a Special A-Level
Another virtue of Computer Science is that
students needn’t “use up” an A-level to
keep the option open:
– Mathematics is the most essential;
– Further Mathematics is also highly desirable
(especially to study at a top university)
– Computing (involving serious programming) is
worth considering, but not at all essential
– IT / ICT is irrelevant from the point of view of
university admission: better to do a science,
language, or humanity – develop intellectual skills
Areas of Computer Science
Theoretical Computer Science
– For those who like mathematics and logic
Software Engineering
– For those who like designing things, and
practical applications
Artificial Intelligence
– For those who want to explore new frontiers
Also Computer Systems, Cyber-security,
Databases, Graphics, Informatics,
Networks, Scientific Computing, etc. …
Modules at Oxford
Programming (of various sorts and levels)
Computational linguistics
Computer graphics, Geometric modelling,
Computer animation
Computer security, Software verification
Computers in society
Databases, Information retrieval
Intelligent systems, Knowledge representation
and reasoning, Probability and computing
Quantum computer science
A Taste of Computer Science
Will the student enjoy Computer Science?
– The best way to find out is to learn some
programming (either in school or self-taught),
and play doing interesting things.
– The teacher’s role is to facilitate rather than
teach: join in the fun, with no need for formal
assessment or “tick-boxes”.
– No need for the teacher to be a Computer
Science expert, as long as the systems are
chosen appropriately.
Consider Joint Honours!
Computer Science provides excellent
opportunities into a wide variety of careers.
But better still if it can be combined with
strong verbal expression and reasoning
skills (and human interaction!):
– Greatly enhances job prospects;
– Keeps flexibility in case interests change;
– Makes study more varied, though possibly more
demanding.
Computer Science and Philosophy
The first new Philosophy degree programme at
Oxford for 39 years!
– For lots on the many connections between the
subjects, and links to the software I’ll be
demonstrating, see www.philocomp.net.
First cohort of students arrived in 2012, the
anniversary of Alan Turing’s birth.
Lots of outreach events
– Do email ([email protected]) if you’d like to be
involved or have me help with a local event.
Links between Computer
Science and Philosophy
Logic and the systematisation of reasoning;
Artificial Intelligence and understanding thought;
Ethics of information (privacy, secrecy etc.);
Robots (moral codes, “autonomy” etc.);
Aesthetics, Cognitive Science, Metaphysics,
Philosophy of Language, of Mathematics, of
Science, of Economics, Political Theory, …
Philosophy of AI, Philosophy of Alife, Philosophy
of Computation, Philosophy of Information, …
What the Employers Say about
Computer Science & Philosophy
“We believe that the degree is likely to produce high-value
graduates who combine technical and analytical skills with
rhetorical and literary skills. These are just the kind of
people that industry, and we believe society generally,
wants. The degree will produce graduates who can
potentially become members of executive boards of
companies, where clarity of thinking combined with
knowledge of technology issues will be vital. … It will
also produce software engineers with the skills to analyse,
and intelligently explain and document, complex problems.
We believe that the new degree is likely to excite and
attract strong, ambitious candidates.”
ComLab External Advisory Board
2. Computational
Thinking as a
Fundamental Mode of
Understanding
Modes of Explanation (until 1600)
Purposive Design (God)
– Things in the world (e.g. animals, plants,
minerals) take the form they do because they
were designed to be that way.
Purposive Action (Aristotle)
19
– Things in general (humans, stones,
water, fire, planets etc.) behave as
they do because they are striving to
achieve some desired state, or to
avoid some abhorrent situation.
The Scientific Revolution (1609-87)
Mechanism (Galileo, Descartes)
– Physical objects move through inertia
and mechanical contact. (Only human
behaviour is governed by reason.)
Mathematical Instrumentalism (Newton)
20
– The action of gravity is not intelligible
to us in the way that mechanism is,
but we can predict its effects
mathematically, in terms of forces
that generate acceleration.
The Naturalistic Turn (1739-1859)
Naturalist Psychology (Hume)
– Human behaviour is governed
more by emotions and imagination
than by reason: it is more “animallike” than “god-like”.
Evolution (Darwin, Wallace)
– Biological organisms take the form they do
owing to inheritance of characteristics and
competition for survival and reproduction.
21
Darwin’s Reading of Hume
Darwin read Enquiries, Essays, Natural History of
Religion, History, Dialogues, and Hume biography.
Writes on Hume’s theory
of mind, Aug 24th 1838.
Early 1839, notebook
discusses Hume on
reason of animals, and
evolution of reason.
Autobiography describes
this period as crucial.
Modern Physics (1905-30)
General Relativity (Einstein)
– Space and time are integrated, and matter
affects their structure, “curving” space in a
way that generates gravitational movement.
Quantum Mechanics (Bohr, Heisenberg)
– Phenomena are described in terms of
interacting “wave functions”, which enable
prediction but which cannot be understood as
implying determinate underlying “states”.
23
Einstein on Hume’s Influence
“The type of critical reasoning required … [to question]
… the axiom of the absolute character of time … was
decisively furthered, in my case,
especially by … David Hume’s and
Ernst Mach’s philosophical writings.”
“this line of thought was of great
influence on my efforts – Mach and
still much more Hume, whose treatise on understanding I studied with
eagerness and admiration shortly
before finding relativity theory”.
The Computational Revolution (1936-)
Algorithms (Turing)
– Information processing can be
understood in terms of symbolic
inputs and outputs governed by
automatic processes.
– Information does not presuppose
an “understanding” mind.
– Likewise “intelligence” is possible without
consciousness, or even life.
– So even “purposive” information processing can
be explained in naturalistic terms.
25
What Most Unites Computer
Science and Philosophy
The dream to automate
reasoning …
Aristotle
Hobbes
26
Leibniz
Boole
Russell
Frege
Turing
Prostheses for the Mind
Where information and
methods of inference can be
captured appropriately,
– Mathematics can enable us to
reason far more accurately;
– The computer also enables
us to reason far more
accurately, and much faster
about anything at all!
27
A New Tool for Thought-Experiments
Daniel Dennett celebrates how
philosophers with computing
abilities have a wonderful tool for
extending their minds, through …
“the creation of prosthetically controlled
thought experiments of indefinite complexity
… kept honest by requirements that could
never be imposed on the naked mind of a human thinker
acting alone. … This is a great way of confirming or
disconfirming many of the intuitions or hunches that otherwise
have to pass as data … Philosophers who see this
opportunity will want to leap into the field, at whatever level of
abstraction suits their interests, and gird their conceptual loins
with the simulational virtuosity of computers.”
Understanding Evolution
Suppose that, like Darwin,
we are trying to understand
how evolution works.
– Again, computer programs can
enable us to model complex phenomena
involving thousands of individuals.
– Computer modelling has now become a central
tool in many areas of scientific investigation,
from epidemiology and medicine, to
palaeontology and climate science, to particle
physics and the origin of the universe.
Automated Thought-Experiments
Replacing insight with exhaustive trial:
– Why is the ratio of males to females close to 1:1
in humans, dogs, horses, cattle, … ?
Darwin (1871) considers monogamy as relevant.
– But one bull can cater for lots of cows, so why
does nature produce so many bulls?
Might it just be a statistical effect of biological
mechanisms (e.g. separation of gametes)?
– R. A. Fisher (1930) insightfully explained it, but
we can model it without such insight …
30
31
Complex Systems
Suppose that, like Thomas
Hobbes, you are trying to
understand how society works.
– Without a computer, only very
simple thought-experiments (such as the well-known
“Prisoners’ Dilemma”) are possible.
– Accordingly, standard Economic modelling typically
relies on simplistic assumptions, such as perfect
knowledge and rationality, in a population of identical
individuals who can be treated statistically and are
driven entirely by personal utility maximisation based
on consistent preferences.
Agent-Based Modelling
Computers allow complex models to be tried,
such as agent-based systems in which
interactions between thousands of different
“agents” can be tested.
Robert Axelrod conducted famous
computer experiments on the
Iterated Prisoners’ Dilemma,
showing that the development of
altruism can make evolutionary
sense, even for non-relatives.
Shocking Racial Segregation?
34
Find this program at turtle.hertford.ox.ac.uk
A Simple Model
A 60 x 40 grid with 100 spaces (randomly placed),
blues and oranges evenly distributed everywhere else.
Individuals are “unhappy” if the other colour has a
majority of 2 or more amongst their neighbours:
35
Happy:
Unhappy:
ME
ME
3. Introducing Students
to Computational
Thinking
Understanding, Creativity, Fun
Students – especially bright ones – most
enjoy understanding things, exploring their
own ideas, being creative and having fun;
not passive learning and routine exercises.
Since Computer Science doesn’t have to
be studied for a dedicated qualification,
this leaves enormous freedom to give
students the opportunity to teach
themselves in exactly this way.
A Taste of Programming
Most students will not have encountered
programming, so it widens their horizons
to be given the opportunity to try it out.
A basic mastery of programming concepts
is useful even more non-specialists, e.g. in
writing Office “macros” or scripts.
Programming can help students to learn
and investigate other disciplines (e.g.
simulation of the flight of a cannonball).
A Promising Path for Teaching
Computational Thinking
For young children, start from Scratch or another
block-based language.
Start text-based programming with a system based
on a limited programming language subset that
prepares the ground for more extensive systems:
– Even a non-specialist teacher can master and teach the
limited system, in days rather than years.
– Error messages can be precisely targetted, which is
impossible in an “industrial scale” system.
– Ideally, allow a variety of different programming
language “syntaxes”, to emphasise generic ideas.
Piaget and Constructivism
Theory of human intellectual development
has led to “constructivism”: knowledge is
constructed by the learner, rather than
taught by authorities or read passively. So:
– Prefer authentic learning tasks, that are
relevant to the learner;
– Encourage interaction (cf. Vygotsky and
Cognitive Apprenticeship Theory);
– Encourage ownership in the learning process:
students choose the problems.
Papert and Turtle Graphics
Building on Piaget, Seymour
Papert conceived the idea of
Turtle Graphics, whereby
students learn to program by
giving instructions to an
imaginary “turtle” moving
around the screen and painting as it goes.
Papert argues that such learning can
enhance general problem-solving skills.
Virtues of Turtle Graphics
Simple, based on an intuitive metaphor.
We naturally find visual comprehension far
easier and more natural than abstraction.
Results of program (e.g. looping or recursion)
can literally be seen. Helps in debugging and
“what if” experimentation.
Enables complex patterns to be generated.
Encourages creativity, and self-pacing.
Provides scope for endless challenges.
turtle.hertford.ox.ac.uk
43
Moving on From Turtling
General-purpose algorithms, written in a textbased language (Pascal, Java, Python, ...):
allowing a range of programming languages.
Simple but powerful structures:
– repeat, while, for loops, recursion
– procedures, functions, flexible parameters
– integers, booleans, chars, strings, arrays
– textual and graphical output
– real time control, mouse and keyboard input
Adding Depth of Understanding
System implements a (virtual) Turtle
Machine with a well-defined structure that
can easily be ported to other devices (e.g.
Web applets, Android, iPhone).
Source code is compiled to machine code
for the Turtle Machine:
– Machine/assembler code can be inspected
and understood, traced in real time, etc.
– Memory can be inspected, with help to see
dynamic treatment of variables etc.
Making Learning Easy
Fully documented online help;
Carefully graded exercises to introduce
the main facilities in an appropriate and
interesting way …
… with lots of scope for experimentation
and imagination;
Around 200 targeted error messages, to
pinpoint syntax errors precisely and easily.
Making Teaching Easy
Students’ creations can be assessed
visually with ease;
Minimal risk of plagiarism or copying,
since every creation is visibly different;
System reports on structures used within
each program, making it easy to set and
assess assignments that require use of
specific structures;
Model assignments provided.
Look Out for turtle.ox.ac.uk!
A new project has started at Oxford to
provide support and teaching materials
across the new Computing curriculum, partfunded by the Department for Education.
It will support both The Turtle
System and Mike Spivey’s
GeomLab, which teaches
functional programming
through creating Escher-style
recursive designs.