Visual Programming SFT 5030 See http://www.monash.edu.au/pubs/handbooks/units/CSE5030.html Bernd Meyer bernd.meyer@acm.org Ph: 9905 2240 Consultation Clayton Campus, Building 26, Room 115 Wednesdays 11:00-12:00 Caulfield Campus, by appointment Resources and Literature Will be made available at http://www.csse.monash.edu.au/~berndm/SFT5030/ Tutorials Always: Labs, Tuesday, 8pm-10pm B346B, B348B Tutor To be announced Assessment 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 n=3 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. Prerequisite 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) Cheating 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." Computing 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." Questionnaire 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? Visual IDEs (Visual Basic, Delphi …) Visual 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 > Me.ScaleWidth) Then X=0 End If If (Y > Me.ScaleHeight) Then Y=0 End If … End Sub Visual Computing Visual Programming Computer Graphics Algorithm Animation Scientific Visualization User Interfaces End User Languages Prograph Definition 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 (*) Related 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. Toontalk Literature at http://www.toontalk.com Goals 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 ! Course 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 Unit 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 Unit 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 Unit B: Implementation / Specification (2 Lectures) •Overview of VPL Implementation •Specification of VPLs •Visual Language Syntax and Parsing •Layout of VPLs Unit C: Diagrammatic Reasoning (1 Lectures) •Experimental Systems for Diagrammatic Reasoning °BITPICT °Inter-DR •Diagrammatic Calculi and Diagrammatic Proofs •Heterogeneous Reasoning “Proofs Without Words” b a (a b) a 2ab b 2 2 2 “Proofs Without Words” n n 2i 1 2 i 1 Example of an Induction Schema Reasoning by Diagram Transformation b a Diagrammatic “Proof” of Pythagorean Thorem: Circa 200 B.C. Reasoning by Diagram Transformation c b a Diagrammatic “Proof” of Pythagorean Thorem: Circa 200 B.C. Diagrams in Software Engineering Diagrammatic Refinement A B A C C D D C D B Are Diagrammatic “Proofs” for UML possible? Paradigms 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) ...))) Functional 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. Rule-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 => 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” Visual Production Systems used for implementing computations that directly operate on pictures. Mainly experimental research vehicle. Only real-world application: Visual Simulation / Creating Animation Example: BITPICT, a system for reasoning purely by diagram transformation. (For more information visit http://www.si.umich.edu/~furnas/) The given rules (right) count the number of trees in a “tangled forest” by reducing each tree to a single dot. Data 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 Prograph CPX runs on Windows and will be available in the CA Labs. Recommended 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.