Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Options for Stage II Colin Johnson 9th March 2009 Overview Three compulsory modules per term, plus one of… Autumn Term • CO529: HCI • CO534: IT Consultancy Methods • CO538: Concurrency Design and Practice • CO636 Cognitive Neural Networks Spring Term • CO528: Introduction to Intelligent Systems • CO535: IT Consultancy Practice • CO536: Advanced Programming Techniques • CO639: E-commerce • CO643: Computing Law and Professional Responsibility Some General Points • Module registration: Online from 23rd March on SDS • Coursework:exam weightings under review. Some changes: – CO532 (Database Systems): moving to 40% CW, 60% exam. • Options not done this year will typically be available as options for your final year too (but you cannot do too many level I (intermediate) modules). • Handbooks available soon CO529 Human-Computer Interaction CO529: Human-Computer Interaction • Human-Computer interaction is complex • Involves many areas of study: design, technology, psychology, … • In this module, we study – How to analyse interaction problems, and then design effective interfaces for computers and similar devices – How to evaluate an interface, understand its effectiveness, and improve it. – The research that has been done into effective interface, both looking at specific research and research methods in the area. CO534 IT Consultancy Methods CO535 IT Consultancy Practice (link to ARR’s pdf slides) CO538 Concurrency: Design and Practice (Co538) Concurrency – Design & Practice Concurrency is many things happening at the same time: so is the real world – and computers, to be useful, have to model relevant bits of it; it’s needed to support multiple demands (e.g. internet services, games, robotics, graphics/GUIs, mobile phones, bio-systems experiments, big physics modelling , real-time control, operating systems, …), even when running on a single processor; it’s needed to exploit multicore and multiprocessor systems; it’s needed for distributed systems and supercomputing; it’s needed for hardware design, implementation and operation. pretty … core much Computer everything Science really … (Co538) Concurrency – Design & Practice Concurrency is many things happening at the same time: so is the real world – and computers, to be useful, have to model relevant bits of it; it’s needed to support multiple demands (e.g. internet services, games, robotics, graphics/GUIs, mobile phones, bio-systems experiments, big physics modelling , real-time control, operating systems, …), even when running on a single processor; it’s needed to exploit multicore and multiprocessor systems; it’s needed for distributed systems and supercomputing; it’s needed for hardware design, implementation and operation. pretty … core much Computer everything Science really … (Co538) Concurrency – Design & Practice Concurrency errors are responsible for over 85% of diagnosed Windows system crashes … [M.M.Swift et al., ACM SOSP-2003] So it’s important ! (Co538) Research Engagement a language for concurrency occam- JCSP a concurrency library for Java (Co538) Research Engagement For the past 20 years, this department has been a leading centre of research into the theory and (especially) the practice of concurrency. Programming technologies have been (are being) developed here: occam- (an industrial strength programming language based on the formal process algebras of CSP and the –calculus); JCSP (a 100% pure Java library providing an API that supports the same concurrency model as occam-); C++CSP / HCSP (a 100% pure C++ / Haskell library providing an API that supports the same concurrency model as occam-). This module will teach this model though the programming technologies (we won’t be doing the formal mathematics). There will be lots of programming in this module. (Co538) Research Engagement For the past 20 years, this department has been a leading centre of research into the theory and (especially) the practice of concurrency. Recent (EPSRC) funded projects: TUNA 2005-2007 (Kent, York, Surrey) Pilot Study on Emergence and Complex Systems RMoX 2007-2010 (Kent) Fast light safe concurrent operating systems (£0.3M) CoSMoS 2007-2012 (Kent, York) (+ Microsoft Research Cambridge, Celoxica Ltd., Chris Alexander) Complex Systems Modelling and Simulation (£1.3M) (Co538) Research Engagement For the past 20 years, this department has been a leading centre of research into the theory and (especially) the practice of concurrency. The key new concepts: processes (water-tight components) synchronised communication (over channels) networks (processes connected by channels – arbitrary shapes) choice (waiting for and reacting to events) dynamics (run-time network construction and re-shaping) structure (networks within networks) mobility (agents) Space (2D) and Mobile Agents The Matrix Mobile Agents Space (2D) and Mobile Agents Space (2D) and Mobile Agents Space (2D) and Mobile Agents Platelet Model (‘lazy’ CA) clot gen ∙∙∙ cell keywatch keyboard cell cell cell cell cell ∙∙∙ draw Platelet Model (‘lazy’ CA) clot gen ∙∙∙ cell cell cell cell cell cell ∙∙∙ phase 1 keywatch keyboard display screen draw Platelet Model (‘lazy’ CA) clot gen ∙∙∙ cell keywatch keyboard cell cell phase 0 cell display cell cell screen ∙∙∙ draw Platelet Model (‘lazy’ CA) clot gen ∙∙∙ cell keywatch keyboard cell cell cell display phase 0 cell cell screen ∙∙∙ draw Platelet Model (‘lazy’ CA) clot gen ∙∙∙ cell cell cell cell cell cell ∙∙∙ phase 1 keywatch keyboard display screen draw Platelet Model (‘lazy’ CA) clot gen ∙∙∙ cell keywatch keyboard cell cell cell display phase 0 cell cell screen ∙∙∙ draw Platelet Model (‘lazy’ CA) clot gen ∙∙∙ cell keywatch keyboard cell cell cell display cell phase 0 cell screen ∙∙∙ draw Platelet Model (‘lazy’ CA) clot gen ∙∙∙ cell cell clot cell cell cell cell ∙∙∙ phase 1 keywatch keyboard display screen draw Platelet Model (‘lazy’ CA) clot gen ∙∙∙ cell cell clot cell cell cell cell ∙∙∙ phase 1 keywatch keyboard display screen draw Platelet Model (‘lazy’ CA) clot gen ∙∙∙ cell cell clot cell cell cell cell ∙∙∙ phase 1 keywatch keyboard display screen draw Platelet Model (‘lazy’ CA) clot gen ∙∙∙ cell cell clot cell cell cell cell ∙∙∙ phase 1 keywatch keyboard display screen draw Platelet Model (‘lazy’ CA) clot gen ∙∙∙ cell cell cell cell cell cell ∙∙∙ phase 1 keywatch keyboard display screen draw Platelet Model (‘lazy’ CA) clot gen ∙∙∙ cell cell cell cell cell cell ∙∙∙ phase 1 keywatch keyboard display screen draw PROC numbers (CHAN OF INT out) CHAN OF INT a, b, c: PAR delta (a, out, b) succ (b, c) prefix (0, c, a) : 0 a b succ c numbers PROC integrate (CHAN OF INT in, out) CHAN OF INT a, b, c: PAR in delta (a, out, b) prefix (0, b, c) plus (in, c, a) : PROC pairs (CHAN OF INT in, out) CHAN OF INT a, b, c: PAR delta (in, a, c) tail (a, b) plus (b, c, out) : out + out b c 0 integrate a in a tail c b + pairs out PROC fibonacci (CHAN OF INT out) CHAN OF INT a, b, c, d: PAR delta (a, b, out) pairs (b, c) prefix (0, d, a) prefix (1, c, d) : PROC squares (CHAN OF INT out) CHAN OF INT a, b: PAR numbers (a) integrate (a, b) pairs (b, out) : out 1 d 0 a pairs c b fibonacci squares numbers a integrate b out pairs Mandelbrot Set Mandelbrot Set Mandelbrot Set scrolling cancel farmer iterations target ... control colours harvester >>> <<< displayList top left scale graphics mouseMovement key mouse canvas componentEvent ( ComponentEvent ) displayList ( GraphicsCommand ) general drawing focusEvent ( FocusEvent ) canvass toGraphics ( GraphicsProtocol ) keyEvent ( KeyEvent ) mouseEvent ( MouseEvent ) fromGraphics ( Object ) house-keeping (e.g. size?) mouseMotionEvent ( MouseEvent ) java.awt.events Multi-Pong left right MultiPong scorer keycontrol ... collision detect canvas control flasher mouse new game freeze Travelling Salesman Problem “jcsp://tsp.myrtle.ukc.ac.uk” Master myrtle Global minimum maintained in ring (made with one-place overwriting channel buffers) … easy!!! Mobile Processes (Agents) “ukc.agent.007” in a b c UKC Mobility via Mobile Channels (Tarzan) ... To swing down a chain of 1M servers, exchanging one INT during each visit: 770 nsecs/visit (P3), 280 nsecs/visit (P4) To swing down a chain of 1M servers, but doing no business: 450 nsecs/visit (P3), 120 nsecs/visit (P4) Threads-n-Locks Considered Harmful (Co538) Aims of this Module Present concurrency mechanisms that are easy to learn and easy to apply. Show how to cope with other approaches to concurrency, which are easy to learn but hard to apply. Apply this knowledge to solve real-world problems. Improve programming skills generally – lots of programming! Bring you into contact with research and researchers. Enable some cool final year projects. Have fun and satisfaction in achieving something really important. + lots more information on the Co538 website: www.cs.kent.ac.uk/co538 (Co538) Teaching Methods Two lectures per week. Support seminars and practical classes (one or two per week) – exercises with (virtual) robots take place within these classes. Anonymous on-line questions-and-answers (an extensive library already exists and is catalogued and indexed). Slides available on-line (Powerpoint and PDF formats). Additional course notes (basic and related technical papers). Anonymous feedback questionnaire (with space for free-form crticism/praise) will be on-line towards the end of the course. Previous year’s Co631* grade average: (07, 23) 70% (08, 42) 61% Previous year’s Co632 grade average: (07, 23) 68% * Co631 Co538 (Co538) Teaching Methods Two lectures per week. Support seminars and practical classes (one or two per week) – exercises with (virtual) robots take place within these classes. Anonymous on-line questions-and-answers (an extensive library already exists and is catalogued and indexed). Show video Slides available on-line (Powerpoint and PDF formats). Additional course notes (basic and related technical papers). Anonymous feedback questionnaire (with space for free-form crticism/praise) will be on-line towards the end of the course. Previous year’s Co631* grade average: (07, 23) 70% (08, 42) 61% Previous year’s Co632 grade average: (07, 23) 68% * Co631 Co538 (Co632) Advanced Concurrency – Design & Practice Concurrency is many things happening at the same time. This module introduces dynamics – the construction, evolution and termination of systems (or sub-systems) on-the-fly. This is needed for systems that: scale with demand (e.g. web services, air-traffic control); evolve with demand (e.g. peer-to-peer networking); model growing organisms (e.g. nanite assemblies); configure, load and run supercomputer resources (e.g. Grid computing, our TUNA and CoSMoS clusters). 32 * ( 3.0GHz. Pentium IV, 1GB RAM) + 48-way Fast Ethernet Switch funded and in procurement … (Co632) Advanced Concurrency – Design & Practice Concurrency is many things happening at the same time. This module introduces dynamics – the construction, evolution and termination of systems (or sub-systems) on-the-fly. This is needed for systems that: scale with demand (e.g. web services, air-traffic control); evolve with demand (e.g. peer-to-peer networking); model growing organisms (e.g. nanite assemblies); configure, load and run supercomputer resources (e.g. Grid computing, our TUNA and CoSMoS clusters). 32 * ( 3.0GHz. Pentium IV, 1GB RAM) + 48-way Fast Ethernet Switch funded and in procurement … (Co632) Advanced Concurrency – Design & Practice The TUNA cluster is for modelling self-assembling and evolving nanite assemblies (nanobots), in particular safety mechanisms allowing their deployment in human medicine. One study concerns artificial blood platelets for emergency response to major injuries. This is research council funded, but will be available to students taking this module. 32 * ( 3.0GHz. Pentium IV, 1GB RAM) + 48-way Fast Ethernet Switch CO636 Cognitive Neural Networks CO636: Cognitive Neural Networks Lecturer: Dr Howard Bowman How the brain computes • Electrochemical dynamics of neural circuits • Neurons, synapses, dendrites, axons, etc • Structure of the brain (subdivision into regions: sensory, association, action areas) • Activation dynamics, – excitatory, inhibitory, etc • Types of networks – feedforward, recurrent, etc Learning • • • • How do neural systems learn? How do humans learn? Change of synaptic efficiency Types of learning, – unsupervised • extracting correlations from environment • principle components analysis – supervised • learning to perform a task • back-propagation of error How the brain learns • Biologically plausible learning – Hebbian learning – The Generalised Recirculation Algorithm • run simulations using PDP++ simulation tool • autumn term: 2 hours lectures & 2 hours of practicals per week • course text book, R. O’Reilly & Y. Munakata: “Computational Explorations in Cognitive Neuroscience: Understanding the Mind by Simulating the Brain” MIT Press, 2000. CO528 Intro. To Intelligent Systems CO528: Intro. to Intelligent Systems • What does it mean for computers to act intelligently? • How can we take inspiration from natural intelligent systems to implement intelligence on computers? – Neural networks, genetic algorithms, swarm intelligence,… • How can we formalise the notion of intelligence and implement it using these formalities? – Logic-based intelligence, constraints, symbolic AI • Debates and questions: – Philosophical questions: what is intelligence? Methodological questions: Symbolic vs. subsymbolic? Bioinspired vs. automated reasoning? CO536 Advanced Programming Techniques CO536 Advanced Programming Techniques Unix Finding your way around + useful commands Assessed in an on-line test (no exam questions) C 9 lectures, terminal classes, graduated coursework Focus on aspects of C that are different from Java pointers, malloc(), preprocessor, program structure Advanced Java JVM – class loading and instantiation, JIT-compiling, object instantiation and initialisation, interning, garbage collection Advanced language and API features of Java, such as reflection, finalisers and generics CO639 E-Commerce CO639: E-Commerce • To understand the business processes in ecommerce • To be able to write programs that implement effective and safe e-commerce systems • To understanding and be able to implement security and cryptographic procedures relevant to e-commerce • To understand issues about payment in ecommerce • To understand relevant legal issues CO643 Computing Law and Professional Responsibility CO643: CLPR • Acting professionally in a computing career • Understanding and debating legal and ethical issues concerned with computing • Understanding and applying aspects of the law as it applies to computing topics, e.g. data privacy. • Understanding how legal and ethical issues impact upon the management of large scale IT projects