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 3 Colin Johnson 11th March 2009 Overview A project, plus three options per term from: Autumn Term • • • • • • • • CO529: HCI CO534: IT Consultancy Methods CO538: Concurrency Design and Practice CO633 Computer Networks and Communications CO634 Computer Security and Cryptography CO636 Cognitive Neural Networks CO645 IT Consultancy Practice 2 CB612 New Enterprise Start-Up Spanning both Terms •EL561 Intelligent Media and Security •EL667 Embedded Computer Systems Spring Term • • • • • • • • • CO528: Introduction to Intelligent Systems CO536: Advanced Programming Techniques CO639: E-commerce CO641: Computer Graphics and Animation CO643: Computing Law and Professional Responsibility CO645 IT Consultancy Practice 2 CO646: Computing in the Classroom CO831: Mobile and Ubiquitous Computing PL583: Philosophy of Artificial Intelligence Some General Points • Module registration: Online from 23rd March on SDS • Coursework:exam weightings under review. • Handbooks have been printed. • Some modules have pre-requisites or corequisites Later Today • 13:00-14:00 Project talk, GLT1 • 14:30-16:00 Project poster fair, Eliot 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 CO645 IT Consultancy Practice 2 (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 CO633 Computer Networks and Communications CO633: Computer Networks and Communications • Two main topics: – A comprehensive study of current networking and communications technologies, including network architectures and protocols – A look at some advanced topics in the area, looking at how network technologies will be built in the future. CO634 Computer Security and Cryptography CO634: Computer Security and Cryptography • Looking at: – Where security is important – What techniques are used in security – Security in operating systems, distributed systems, embedded systems – Underlying cryptographic algorithms 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. CB612 New Enterprise Start-Up CB612: New Enterprise start-up • Looking at how a business is started and what makes small businesses succeed. • Practical advice about starting up a business • Aspects: legal, planning, marketing, finance • Main assessment: producing a viable business plan EL673 Digital Systems Design EL673 – Digital Systems Design (CSE Only) • Digital Systems are composed of Processors, FPGAs, Memory + Random Logic. • Increasingly systems are being integrated into single ICs – Systems on a Chip – SoC. • This module covers different aspects of SoC. – Digitial System Realisation – Technologies, High Speed System Design, VHDL+FPGAs+Synthesis, Case Studies – Datapath Design – Design of Processor Datapaths and Controllers – Formal Testablity – Introduction to methods for testing large digital systems (JTAG) EL667 Embedded Computer Systems EL667 – Embedded Computer Systems (CS & CSE) • Embedded Computer Systems are everywhere! – Mobile Phones, DVD Players, Motor Vehicles… • All are based on an embedded microcomputer running a real time operating system. • This module covers Hardware and Software design for Embedded Systems and Real Time Operating Systems. • Based on real Case Studies • Includes a 1-day lab class – Engine Management Simulator. EL561 Intelligent Media and Security EL561 Intelligent Media and Security • • • • • Images and Image Processing Techniques – Image representation, analysis and manipulation techniques Analysing Images – Pattern recognition and classification techniques Media Security and Biometrics – Personal identification techniques and security Neural Systems Engineering – Practicalities of building machines which can learn and generalise Practical laboratories and classes 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 – electronic commerce • How e-commerce works • Technical side – focus on php MySql to implement electronic commerce, including security, encryption, avoiding sql insertions etc • Business aspects – structures of businesses, fraud, taxation • Two lectures with help sessions • Bob Keim with Gareth Owen [email protected] 74 CO643 Computing Law and Professional Responsibility CO643 – Computer Law and Professional Responsibility • What responsibilities do we have as computing professionals • What is it useful to know about the law? • Two lectures, one seminar per week – 40% coursework 60% exam – Bob Keim with Eerke Boiten • Visit the module page and the web forum CO641 Computer Graphics and Animation Computer Graphics and Animation (CO641) an option for CS, joint CS & some Applied Computing Image courtesy of www.cinematicwallpaper.com Aims • To understand the fundamental concepts of computer graphics and animation from the viewpoint of computer science. • To study a range of technologies, techniques and algorithms for acquiring, generating, manipulating, presenting and storing various kinds of visual data. • To apply this knowledge by developing computer graphics software. Syllabus 1/3 • Computer Graphics – – – – – – – – – – Graphics pipeline Transformations VRML Lines and antialiasing Filling, clipping 3D models Cameras and view volumes Visible surface detection Illumination and shading Ray tracing Syllabus 2/3 • Digital Imaging – Human vision – Colour models – Images and video – Capture and display – Contrast enhancement – Resizing, dithering – Storage and communication – Data compression – GIF, JPEG, MPEG Syllabus 3/3 • Computer Animation – Key-frame animation – Interpolation – Warping and morphing – – – – Articulated figures Kinematics, dynamics Collision detection Particle systems – Virtual humans – Photorealistic characters PL583 Philosophy of Artificial Intelligence PL583: Philosophy of Artificial Intelligence • Double module! • Considers issues about whether machines can be intelligent, and looks at various aspects of AI from a philosophical perspective. CO831 Mobile and Ubiquitous Computing CO831 Mobile & Ubiquitous Computing • What you should get out of it: – An understanding of the characteristics and limitations of hardware and software in mobile and ubiquitous computing – An understanding of security and privacy issues in mobile and ubiquitous computing – How to specify, design, implement and evaluate context-aware solutions on distributed small devices in a ubiquitous computing environment, using current tools and techniques • Assessment. 80% Exam, 20% Coursework: – Research-based with a written deliverable (essay) –5% – A Java programming assessment – 10% – Minor assessments based on papers we will ask you to read – 5% in total CO646 Computing in the Classroom CO646 Computing in the Classroom • Module subject to quota/interview • Learning about how to teach computing… • …and then putting this into place by making ten half-day visits to a local school, observing and helping with computing teaching in the school. • Assessment by devising an original project and implementing and evaluating it in the school, and by reflective writing on your experience in the school.