Options for Stage II
Download
Report
Transcript Options for Stage II
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