<<

Computer Science

Exciting Students to Consider a Wonderful Degree Option

Professor Peter Millican Faculties of Computer Science and Philosophy Hertford College, 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 job- market, 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; of information (privacy, secrecy etc.); Robots (moral codes, “autonomy” etc.); Aesthetics, Cognitive Science, Metaphysics, , 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) – 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. 19

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) – 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. 20

The Naturalistic Turn (1739-1859)

Naturalist Psychology (Hume) – Human behaviour is governed more by emotions and imagination than by reason: it is more “animal- like” 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 … ’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 treat- ise 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 Frege

Hobbes Leibniz Boole Russell Turing 26 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: Happy: Unhappy:

ME ME

35 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 text- based 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, part- funded 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.