Title: Visual Programming SFT 5030
1Visual ProgrammingSFT 5030
See http//www.monash.edu.au/pubs/handbooks/units/
CSE5030.html
Bernd Meyer bernd.meyer_at_acm.org Ph 9905 2240
2Consultation
Clayton Campus, Building 26, Room 115 Wednesdays
1100-1200 Caulfield Campus, by appointment
Resources and Literature
Will be made available at http//www.csse.monash.e
du.au/berndm/SFT5030/
3Tutorials
Always Labs, Tuesday, 8pm-10pm B346B, B348B
Tutor
To be announced
4Assessment
- 100 project-based homework
- Implementation project using an object-oriented
VPL - Design Paper (10 ) April 1
- Implementation (60 ) June 3
- Documentation (30 ) June 3
- Groupwork in pairs, if necessary one group with
n3 - Implementation basis Prograph CPX
- Assignments should be received at identify place
and process on or before the due date. - Late submissions will be penalised at the rate of
penalty rates. - If you believe that your assignment will be
delayed because of circumstances beyond your
control - such as illness you should apply for an extension
before the due date. - Medical certificates or certification supporting
your application may be required.
5Prerequisite Knowledge
- Working Knowledge of Object-Oriented Programming
- (no particular language)
- Basic Concepts of GUI Programming
- (Widget Programming, Event-driven Programming,
- Container Hierarchies, etc.)
- Overview of Alternative Programming Paradigms
- (as given e.g. in CSE 3322)
- Data-flow Programming
- Functional Programming
- Logic Programming (Introduction in Course)
6Cheating
It is important that your solutions to the
assignment questions be your own work. It is
perfectly acceptable to seek help and advice when
completing the assignments, but this must not be
taken to the point where what is submitted is in
part someone else's work. Please note that,
since the assignments are used in assessing your
final grade in this subject, the following
Faculty policy applies. "Students should note
that cheating is regarded as a very serious
offence which is likely to lead not only to
failure in the subject concerned but also to
additional penalties including exclusion.
Students should carefully note that the taking of
any unauthorised material into examinations such
as notes and unauthorised dictionaries will be
regarded as cheating. Students should also note
that essays, assignments and other work are
generally understood to be the student's own work
and where such work is identical with, or similar
to, another student's work, an assumption of
cheating may arise. Where students wish to
undertake work in conjunction with other
students, it is suggested that the matter be
discussed with the lecturer concerned." Faculty
of Computing and Information Technology Handbook
In addition, the following School policy applies.
"The assignments set in this subject are designed
primarily as learning exercises, but they also
contribute to your final grade. Copying of
other student's assignment solutions is
unacceptable. All students have a
responsibility to ensure that their assignment
solutions are their own work. You must ensure
that others do not obtain access to your
solutions for the purpose of copying a part of
them. Where such plagiarism is detected, both of
the assignments involved will receive no marks.
In significant cases of plagiarism, action may
be taken against the offenders under the
University's disciplinary regulations."
7Computing Resources
It is important that your solutions to the
assignment questions be your own work. It is
perfectly acceptable to seek help and advice when
completing the assignments, but this must not be
taken to the point where what is submitted is in
part someone else's work. Please note that,
since the assignments are used in assessing your
final grade in this subject, the following
Faculty policy applies. "Students should note
that cheating is regarded as a very serious
offence which is likely to lead not only to
failure in the subject concerned but also to
additional penalties including exclusion.
Students should carefully note that the taking of
any unauthorised material into examinations such
as notes and unauthorised dictionaries will be
regarded as cheating. Students should also note
that essays, assignments and other work are
generally understood to be the student's own work
and where such work is identical with, or similar
to, another student's work, an assumption of
cheating may arise. Where students wish to
undertake work in conjunction with other
students, it is suggested that the matter be
discussed with the lecturer concerned." Faculty
of Computing and Information Technology Handbook
In addition, the following School policy applies.
"The assignments set in this subject are designed
primarily as learning exercises, but they also
contribute to your final grade. Copying of
other student's assignment solutions is
unacceptable. All students have a
responsibility to ensure that their assignment
solutions are their own work. You must ensure
that others do not obtain access to your
solutions for the purpose of copying a part of
them. Where such plagiarism is detected, both of
the assignments involved will receive no marks.
In significant cases of plagiarism, action may
be taken against the offenders under the
University's disciplinary regulations."
8Questionnaire SFT5030
- Why have you taken this subject?
- What do you expect to learn?
- Which programming languages do you know?
- Have you heard of visual programming languages?
Which?
9Visual IDEs (Visual Basic, Delphi )
10Visual Basic is not a VPL!
Private Sub TimerMove () Static X As Long, Y As
Long X X 1 Y Y 1 'Keep the ball of the
edge If (X gt Me.ScaleWidth) Then X 0 End
If If (Y gt Me.ScaleHeight) Then Y 0 End
If End Sub
11Visual Computing
Visual Programming
Computer Graphics
Algorithm Animation
Scientific Visualization
User Interfaces
End User Languages
12Prograph
13Definition of Visual Programming
Visual Programming Languages Languages that
use visual notations or Diagrams for
expressing programming constructs, e.g.
Dataflow, Control flow, Abstraction
etc. Subfields End User Programming Domain
Specific Programming Universal Programming
Languages ()
14Related Areas
- Graphical User Interfaces
- Computer Graphics
- Information Visualization / Scientific
Visualization - End User Languages (Databases etc.)
- Special Purpose Languages (e.g. UML)
- Algorithm Animation
- Visual IDEs Visual Basic, Delphi etc.
15Toontalk
Literature at http//www.toontalk.com
16Goals of this course
- Learn about paradigms in VP
- Learn concrete VPLs in Research and Industry
- Learn implementation techniques for VPLs
- Learn about specification and formalization of
VPLs - Get a feeling for the potential of VPLs
- Learn about the limits of visual computing
- Implement a small project using an
object-oriented VPL !
17Course Outline
- Unit A Visual Dataflow Programming in Prograph
CPX - Unit B Paradigms of Visual Programming
- Unit C Implementation and Specification of VPLs
- Unit C Beyond Programming - Diagrammatic
Reasoning
18Unit A Prograph
(4 Lectures)
- Overview of Visual Programming Paradigms
- Aspects of Prograph
- Basic Dataflow Programming
- Object-oriented Programming
- Debugging
- Using an Application Framework
- Project work for assignment
19Unit B Paradigms
(5 Lectures)
- Data Flow Languages Prograph, Labview
- Functional Languages Clarity, VEX
- Logic and Constraint Languages, Rule Languages
TPM, Pictorial Janus, ToonTalk - Languages with new Paradigms Agentsheets,
KidSim, Forms3, ToonTalk
20Unit B Implementation / Specification
(2 Lectures)
- Overview of VPL Implementation
- Specification of VPLs
- Visual Language Syntax and Parsing
- Layout of VPLs
21Unit C Diagrammatic Reasoning
(1 Lectures)
- Experimental Systems for Diagrammatic Reasoning
- BITPICT
- Inter-DR
- Diagrammatic Calculi and Diagrammatic Proofs
- Heterogeneous Reasoning
22Proofs Without Words
23Proofs Without Words
Example of an Induction Schema
24Reasoning by Diagram Transformation
b
a
Diagrammatic Proof of Pythagorean Thorem Circa
200 B.C.
25Reasoning by Diagram Transformation
c
b
a
Diagrammatic Proof of Pythagorean Thorem Circa
200 B.C.
26Diagrams in Software Engineering
27Diagrammatic Refinement
Are Diagrammatic Proofs for UML possible?
28Paradigms of Visual Programming
- Dataflow Programming
- Nodes describe operations,
- arrows the flow of information between
- these nodes
- Rule-based visual Programming
- Basis Logical Implication
- if fact A holds, then fact B holds
- or Production-system like action rules
- if situation A is found, then do action B
- Functional Programming
- Basis mathematical functions (without
side-effects) - a program has the form
- f1(f2(f3(... (input) ...)))
29Functional Visual Programming
CLARITY (http//www.clarity-support.com/) Clarity
is a complete functional language in the style
of ML original motivation for Clarity was work on
the functional database model An important
aspect is the incremental, interactive design of
programs The claim of the Clarity designers is
that visualization introduces an additional
conceptual level.
30Rule-based Visual Programming
- Universal Programming Paradigms
- Visual Logic Programming (Prolog etc.)
- Visual Constraint Programming (Pictorial Janus,
Toontalk) - Programming Paradigms for Programming with
Pictures, - particularly visual Simulations
- Production-system languages pixel-based
BitPict high-level image based Agentsheets
(http//www.agentsheets.com) Visual
production systems generally have the
form SearchPicture gt Modification This is
interpreted as if you find the picture
SearchPicture in the current picture then apply
the right-hand side modification to the current
picture - Can be used for simplified Programming by
Example
31Visual Production Systems
- used for implementing computations that directly
operate on pictures. - Mainly experimental research vehicle. Only
real-world application Visual Simulation /
Creating AnimationExample - BITPICT, a system for reasoning purely by diagram
transformation. - (For more information visit http//www.si.umich.ed
u/furnas/)
The given rules (right) count the number of trees
in a tangled forest by reducing each tree to a
single dot.
32Data Flow Programs
Visual data-flow programming is the most common
visual programming paradigm. We use Prograph
CPX as described in Visual Programming with
Prograph CPX by Scott B. Steinman and Kevin G.
Carver, Manning Publications/Prentice Hall, ISBN
0134411633 The Power of Prograph CPX by D.
Shafer, The Reader Network, 1994. (out of
print) More information on (as well as the
implementations of) Prograph can be found
at http//www.pictorius.com/prograph.html Prograp
h CPX runs on Windows and will be available in
the CA Labs.
33Recommended Literature
There are no prescribed texts. Visual
Programming with Prograph CPX by Scott B.
Steinman and Kevin G. Carver, Manning
Publications/Prentice Hall, ISBN 0134411633 Is
recommended (the only available text on
Prograph), but not strictly required. Other
literature (research papers) will be referenced
throughout the subject and are generally
available on the web. For the project you should
read the following paper, which will be availble
on-line. Simulating Graphs as Physical Systems,
A. Frick, G. Sander and K. Wang in Dr. Dobbs
Journal, August 1999 R. Davidson and D. Harel.
Drawing Graphs Nicely Using Simulated Annealing.
ACM Transactions on Graphics, 15(4)301-331,
October 1996. Fruchtermann, T. M. J. and
Reingold, E. M. (1991). Graph drawing by
force -directed placement. Software Practice and
Experience, 21(11)1129--1164.