Options for Stage II - School of Computing

Download Report

Transcript Options for Stage II - School of Computing

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.