Lecture 0 PPT

Download Report

Transcript Lecture 0 PPT

Computing Fundamentals 2
Overview
Lecturer: Patrick Browne
Room [KA] - 3-020, Lab [KA] - 1-017
Based on Chapter 19.
A Logical approach to Discrete Math
By David Gries and Fred B. Schneider
http://www.comp.dit.ie/pbrowne/compfund2/compfun2.htm
Computing Fundamentals 2
• This module presents further theoretical aspects
of computer science which are necessary to
support and enhance other modules on the
course. In particular topics covered on this
module will be required in computer technology,
databases, object oriented programming,
graphics programming, software engineering,
programming, artificial intelignece, and
algorithms. This module builds on the
Fundamental of Computing 1 and also provides
an introduction to graphs, lattices, algebras, and
statistics.
Computing Fundamentals 2
• Discrete mathematics permits us to describe our
perception of the world and to describe systems that
manage information about that perception.
• A specification is the description of what a system
should do.
• Discrete mathematics allows us to define functions, data
types, operations, without prescribing algorithms. Logic
allows us to prove that a design fulfills a specification.
• Ideally, we would prefer not to build a logical scaffolding
around some less formal representation, rather we want
to construct our specifications and programs by including
logical systems in the representation.
Computing Fundamentals 2
• Software and information engineers use
materials (i.e. concepts) whose behaviour is well
understood.
• Our materials should have simple mathematical
models from which it is easy to predict the actual
behaviour when placed in a know situation or
context.
• The material used for Computing Fundamentals
1 & 2 are mathematical concepts represented in
CafeOBJ language.
What is a Programming Language?
• A PL helps people to express ideas in a
form that can be understood by a
computer.
Figure based on: Java Programming for Spatial Sciences by Jo Wood
Computing Fundamentals 2
• Mathematics helps minimize ambiguity.
• The following pair of signs are displayed at
the foot of an escalator. What do they
mean?
Shoes
Dogs
Must Be
Must Be
Worn
Carried
Computing Fundamentals 2
• Mathematics helps minimize ambiguity.
• The following pair of signs are displayed at
the foot of an escalator. What do they
mean? (see handout)
Shoes
Dogs
Must Be
Must Be
Carried
Worn
Possible formalizations of above.
A. x (useEscalator(x) 
B. x,y(useEscalator(x)
y (PairOfShoes(y)  isWearing(x,y))
 isDog(x) 
isPerson(y)) 
isCarried(y,x))
Still many tacit assumptions e.g. in A x is assumed to be a person, in A & B the desire
to ascend the escalator is assumed.
Computing Fundamentals 2
• Graph Theory: Definition, properties,
graph representation, types, paths, cycles,
isomorphism of graphs, planar graph,
application of graphs to computing.
• Lattice Theory: lattice notation and
definition, relations, closure of relations,
ordered sets, partial orders, linear orders,
application of lattices to computing.
Computing Fundamentals 2
• Algebraic Structures and Techniques:
algebras, theories, models, composition,
abstract data types (ADTs), languages for
algebraic specification and programming,
applications to lists, strings, queues, sacks,
trees, etc.
• Statistics: range, mode, median, mean,
standard deviation, variance, sampling and
sampling distributions, probability, hypothesis
testing, applications of statistics.
Computing Fundamentals 2
• Supporting software: The above topics
will be supported by CafeOBJ and
Concept Explorer.
• Two small assignments.
– CafeOBJ, Graph Theory.
– Concept Explorer, Lattices