630 likes | 777 Views
Options for Stage II. Colin Johnson 9th March 2009. 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
E N D
Options for Stage II Colin Johnson 9th March 2009
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 Overview Three compulsory modules per term, plus one of…
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 • 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.
CO534IT Consultancy MethodsCO535IT Consultancy Practice (link to ARR’s pdf slides)
pretty much everything really … … core Computer Science (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.
(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 much everything really … … core Computer Science Co538 (Autumn) is a pre-requisite for the Stage 3 module: “Advanced Concurrency – Design & Practice”, Co632 (Spring).
(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!
a language for concurrency occam- JCSP a concurrency library for Java (Co538) Research Engagement
(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 ofprogramming 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)
The Matrix Mobile Agents Space (2D) and Mobile Agents
clot gen ∙∙∙ ∙∙∙ cell draw cell cell cell cell cell keywatch keyboard Platelet Model (‘lazy’ CA)
clot gen draw cell cell phase 1 display keywatch screen keyboard Platelet Model (‘lazy’ CA) ∙∙∙ ∙∙∙ cell cell cell cell
clot gen phase 0 draw cell cell display keywatch screen keyboard Platelet Model (‘lazy’ CA) ∙∙∙ ∙∙∙ cell cell cell cell
clot gen phase 0 ∙∙∙ ∙∙∙ cell cell cell cell draw cell cell keywatch display screen keyboard Platelet Model (‘lazy’ CA)
clot gen ∙∙∙ ∙∙∙ cell cell cell cell draw cell cell phase 1 keywatch display screen keyboard Platelet Model (‘lazy’ CA)
clot gen phase 0 ∙∙∙ ∙∙∙ cell cell cell cell draw cell cell keywatch display screen keyboard Platelet Model (‘lazy’ CA)
clot gen phase 0 draw display keywatch screen keyboard Platelet Model (‘lazy’ CA) ∙∙∙ ∙∙∙ cell cell cell cell cell cell
clot clot gen ∙∙∙ ∙∙∙ cell cell cell cell cell cell draw phase 1 keywatch display screen keyboard Platelet Model (‘lazy’ CA)
clot clot gen ∙∙∙ ∙∙∙ cell cell cell cell cell draw cell phase 1 keywatch display screen keyboard Platelet Model (‘lazy’ CA)
clot clot gen draw cell phase 1 display keywatch screen keyboard Platelet Model (‘lazy’ CA) ∙∙∙ ∙∙∙ cell cell cell cell cell
clot clot gen draw cell phase 1 display keywatch screen keyboard Platelet Model (‘lazy’ CA) ∙∙∙ ∙∙∙ cell cell cell cell cell
clot gen draw cell phase 1 display keywatch screen keyboard Platelet Model (‘lazy’ CA) ∙∙∙ ∙∙∙ cell cell cell cell cell
clot gen ∙∙∙ ∙∙∙ cell cell cell cell cell draw cell phase 1 keywatch display screen keyboard Platelet Model (‘lazy’ CA)
out 0 a b succ c numbers + out in a b c 0 integrate tail a b + out in c pairs PROC numbers (CHAN OF INT out) CHAN OF INT a, b, c: PAR delta (a, out, b) succ (b, c) prefix (0, c, a) : PROC integrate (CHAN OF INT in, out) CHAN OF INT a, b, c: PAR 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 1 0 a d pairs c b fibonacci squares numbers a integrate out b pairs 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) :
scrolling cancel farmer iterations ... colours target control >>> harvester <<< displayList top left graphics scale canvas mouseMovement key mouse Mandelbrot Set
canvass componentEvent ( ComponentEvent ) focusEvent ( FocusEvent ) displayList ( GraphicsCommand ) keyEvent ( KeyEvent ) toGraphics ( GraphicsProtocol) mouseEvent ( MouseEvent ) general fromGraphics mouseMotionEvent drawing ( Object) ( MouseEvent ) house-keeping (e.g. size?) java.awt.events
left right new game flasher mouse freeze keycontrol ... collision detect control scorer canvas Multi-Pong
“jcsp://tsp.myrtle.ukc.ac.uk” Master myrtle ... Travelling Salesman Problem Global minimum maintained in ring (made with one-place overwriting channel buffers) … easy!!!
“ukc.agent.007” in a b c UKC Mobile Processes (Agents)
. . . 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)
(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). • 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% Show video * 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 …
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. Co538 (Autumn) is a pre-requisite for the Stage 3 module: “Advanced Concurrency – Design & Practice”, Co632 (Spring). 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 (Co632) Advanced Concurrency – Design & Practice TheTUNAcluster 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. Upgrading soon to CoSMoS cluster (4* the power)