Customization of Visualizations in a Functional Programming Environment

Size: px
Start display at page:

Download "Customization of Visualizations in a Functional Programming Environment"

Transcription

1 Customization of Visualizations in a Functional Programming Environment J. Ángel Velázquez-Iturbide and Antonio Presa-Vázquez Escuela Superior de Ciencias Experimentales y Tecnología Universidad Rey Juan Carlos C/ Tulipán s/n, Móstoles, Madrid, Spain Abstract CS first-year students expect the user interface of programming environments to be similar to that of common PC applications. A natural evolution of educational programming environments consists in incorporating many of their userfriendly facilities. We concentrate in this paper on the facilities that WinHIPE, an environment for functional programming, provides to students for customizing the visualization of expressions. Expressions can be either pretty-printed as text or displayed graphically, showing drawings of lists and binary trees. Besides, fonts, sizes, colors, lines and distances are parameters that can be customized for any visualization. Finally, the visualization of large expressions can be simplified to show only their most relevant parts. Students obtain several benefits from customization facilities. They feel more comfortable with the programming environment WinHIPE, because they can develop more readable programs, written in their personal style. Students can also experiment at small effort with different formats, becoming profident in style issues. Finally, customization facilities allow making clear in a course on programming languages the relevant role of visualizations in programming tools and their relative independence from language syntax. Introduction A good user interface for an educational programming environment must fulfil a series of requirements. The programming tools it integrates must provide the student with mental models consistent with those given in the classroom. It should also give a comprehensive assistance for errors. The user interface must be user-friendly; at least, it must meet the standards of commercial applications. In addition, other facilities for educational uses (tutoring, assessing, etc.) should also be provided. Professional programming environments often do not meet all of these requirements. The situation is worse that expected: computer scientists build complex, user-friendly programs, but they typically use complex programs (programming environments and tools) with poor user interfaces. Despite the consensus about the importance of program readability and the great improvements in programming environments in the last two decades, they are under the quality standards of commercial applications. This situation can be successfully managed by professionals, but it is completely unsatisfactory in an educational setting. Students who face programming environments for the first time do not compare them with other programming environments, but with other common applications, such as word processors, Web browsers, games, etc. If the interaction with the programming environment is not userfriendly, the student gets the wrong idea that computer science is too hard, boring or uninteresting. Moreover, if the student goes on, he/she can think that user interfaces are not an important part of programs. We concentrate in this paper on a facility that can make a programming environment user-friendly with respect to a very important part of its human-computer interaction: visualizations of programs. There have been many contributions related to this topic: pretty-printing in text editors [6] and syntax-directed editors [8], program visualization [9], documentation of programs [4], and application of typography to programs [1]. However the interaction with these systems is far from satisfactory: it is usually made in a batch fashion and it is isolated from common programming tools such as compilers and debuggers. Our claim is that visualizations should be as easily customizable as in commercial applications. (For instance, word processors allow to use different typographic styles for text by modifying font, size, color, etc. of characters.) We have implemented customizable graphical facilities in order to satisfy these goals in an educational environment for functional programming, called WinHIPE. As far as we know, the features included are original with respect to other programming environments. The integration and flexible use of ortogonal graphical facilities produces an synergetic effect in its effective use. The structure of the paper follows. The second section describes briefly the main features of WinHIPE. The third section contains the main contribution of the paper, three kinds of opportunities for customizing program visualizations: textual vs. graphical visualizations, typographic styles, and simplification of very large visualizations. Section 4 contains a discussion about the main benefits obtained from customizing visualizations. Finally, our main conclusions are included. 12b3-22

2 A functional programming environment: WinHIPE WinHIPE is the Windows version of a programming environment for the functional language Hope [2] (HIPE stands for Hope Integrated Programming Environment). On attempting to teach typed funcional programming, we found out that, although there were very good implementations, their corresponding environments were very poor, and inadequate for education. HIPE was designed according to the following design decisions [10]: Availability and integration of several programming tools (at least, an editor and an interpreter). Although this seems to be a trivial statement, the environments we found for modern functional languages were a simple shell with a command line to interact with the language processor, the file system, and little more. Graphical user interface, based on windows, menus and the mouse. High-level debugger. It should provide with mechanisms to control the progress of expression evaluation, based on an operational semantics of the language. The view of such an operational semantics should be consistent with the theoretical model given at the classroom. We have developed several versions of HIPE, being WinHIPE the latest [7]. The main features of WinHIPE can be better understood with the well-known factorial function. It can be defined in Hope as follows: dec fact: num -> num; --- fact n <= if n=0 then 1 else n*fact(n-1); This definition can be used to evaluate functional expressions involving the factorial function. A visualization of the step-by-step evaluation of the factorial of four follows: fact 4 if 4=0 then 1 else 4*fact(4-1) if false then 1 else 4*fact(4-1) 4*fact(4-1) 4*fact(3)... 4*(3*(2*(1*fact 0))) : num We can summarize the facilities that WinHIPE offers: Graphical user interface. It includes the typical components in Windows applications: menus and dialogs, buttons bar, files handling, multiple editing windows, and interactive help. Projects. The programmer can handle projects, which are groups of files. Their interest is educational, since a project allows clustering the files developed for one assignment, e.g. a file with the source code, another one with the expressions used for testing and others with traces of their evaluations. High level debugging of functional programs. As the previous example illustrated, WinHIPE models the evaluation of expressions as a rewriting process, showing the programmer the intermediate expressions she requests. The programmer can control evaluation in two different ways. First, she can select either eager or lazy evaluation strategy. Second, the advance in the evaluation can be controled according to five possibilities: one rewriting step, n rewriting steps, to evaluate the redex, to evaluate the whole expression, and to evaluate until achieving a breaking point. (The redex or reducible expression is the next subexpression to be rewritten or reduced.) Visualization of functional expressions. The programmer can choose several formats for the visualization of functional expressions, which are described in more detail in the following section. These and other customizable decisions can be kept in configuration files. Correction and assessment of assignments. WinHIPE gives some basic services for managing and correcting assignments based on program testing. These services are designed to be offered in a networked environment under protocol TCP/IP. The environment is being used since the academic year 1998/99 in a freshman course on programming languages, allowing to focus on the functional paradigm as a way of introducing both a programming language and programming language concepts. Customization of visualizations The environment allows the programmer to customize the visualization of intermediate expressions resulting during any evaluation. We want to remark that an important decision was that the environment must always show the whole expression, in order to know the current state of the evaluation. Customization can be done in three different but related ways. First, the programmer can select a graphical or a textual visualization of expressions. Second, the format of a visualization can be tailored with many parameters. Finally, long expressions can be shortened, showing the parts most relevant to understand the evaluation state. 12b3-23

3 Text versus graphics The usual format for showing expressions is textual. Expressions are unparsed in a text window, pretty-printed to make them as readable as possible. Some examples of textual expressions resulting during the computation of fact 4 were included in the previous section. The textual presentation of expressions is natural for many problems, for instance mathematical problems. In addition, functional languages provide predefined and readable notations for simple data structures, such as tuples and lists. For instance, (0,4,true) is a 3-tuple which contains two integers and a boolean value. The expression [3,5,7,11] denotes a list containing four prime numbers, and abc denotes a list of characters with three letters. However, the situation changes when other data structures are involved. A data type definition for polymorphic binary trees follows: data TREE(alpha) == Empty ++ Node(TREE(alpha)#alpha#TREE(alpha)); where alpha stands for any data type. Given this definition, we can write expressions denoting binary trees. For instance, a tree containing four prime numbers can be represented as: Node (Node (Empty, 5, Empty), 3, Node(Node(Empty, 11, Empty), 7, Empty)) Notice that trees are much less readable than the data structures above. Anyway, we have written it with an indentation that facilitates its comprehension (it is similar to its graphical representation, rotated 90º to the left). The comprehension of more complex expressions, with trees, function applications, conditionals, etc. is more difficult. A remedy for this unreadability is to provide a graphical representation for data structures. We have decided to visualize graphically lists and binary trees [5]. The interest of the graphical visualization for trees is clear. With respect to lists, it is not so important for simple expressions, but a graphical representation increases the comprehension of complex expressions involving lists. We begin with two simple displays in Fig. 1, corresponding to a the list [3,5,7,11] and the tree above. The list representation is simply a sequence of its elements, with a small overlapping between consecutive elements. The tree representation is based on the following aesthetic criteria [12], similar to those in textbooks: All the nodes at the same depth in a tree are drawn at Figure 1. Visualization of a list and a tree the same level A node is drawn centered over its children Identical trees are drawn identical Symmetric trees are drawn symmetric In addition, empty trees are omitted for simplicity. The situation is more complicated for more complex expressions. The following function computes the mirror of a tree: dec mirror: TREE(alpha) -> TREE(alpha); --- mirror Empty <= Empty; --- mirror (Node(lt,x,rt)) <= Node(mirror(lt),x,mirror(rt)); Figure 2 corresponds to an expression that will compute the mirror of a binary tree. It is not a pure graphical format, but a mixed format, composed of text and graphics, that allows to represent easily arbitrary expressions: lists and trees are represented graphically, but other expressions (e.g. function application or the conditional expression) are Figure 2. An expression involving a tree 12b3-24

4 represented by text. Figure 3 shows the first expression resulting from applying the function mirror. This figure is more complex, with three kinds of rectangles used for different elements of the graphical representations of a tree: must still be inserted. The second figure shows the expression resulting after one rewriting step. Figure 3. Another expression involving a tree 1. A rectangle with a thick solid line represents a node of the binary tree. Technically, it is an expression with the pattern Node(_,_,_), obviously of type TREE(_). 2. A rectangle with a thin solid line represents a subtree whose shape is still unknown, i.e. a subtree that is not necessarily restricted to a single node. Technically, it is an arbitrary expression of type TREE(_). 3. A rectangle with a dotted line encloses a graphical representation of a tree. It is drawn when there is a switch from a textual visualization to the inner graphical one, thus easing to relate the tree with its enclosing expression. Technically, it is the same situation as in the first case, but the enclosing expression is different from Node(_,_,_). Similar rectangles are provided for lists. For example, the following function sorts lists by direct insertion: dec insert: num#list(num) -> list(num); --- insert (e,[]) <= [e]; --- insert (e,x::l) <= if e < x then e::(x::l) else x::insert(e,l); dec insertsort: list(num) -> list(num); --- insertsort [] <= []; --- insertsort (x::l) <= insert(x,insertsort(l)); The two expressions visualized in Fig. 4 are obtained on evaluating the expression insertsort[1,6,4,3]. The first one shows an expression where the two last elements of the original list are sorted, and the two first Figure 4. Two expressions involving lists The example shows that there are two rectangles for representing visually different elements of a list: 1. A rectangle with a thick solid line represents an element. 2. A rectangle with a thin solid line at the right side of a visualization of a list represents a sublist whose value is not known yet, i.e. it is an arbitrary expression of type list(_). WinHIPE allows students choosing the visualization format they prefer, either pure text or the mixed textualgraphical format. The choice is made by simply selecting the corresponding option in a dialog window. The programmer can even switch between both formats at any moment of an evaluation and as many times as she wants. Typographic styles A student using WinHIPE not only can visualize expressions in a textual or a mixed format, but she can customize many of its typographic features. Customization is achieved by tuning several parameters: The environment differentiates among several classes of windows capable of containing text, which can be given different background color, as well as font, font style and size of characters. The windows are customized with the same dialogs used in word processors to give formats. The redex can be highlighted by visualizing it in a color different from the color of the rest of the expression. This customization is made with a dialog equal to the previous one. This option is activated in the figures included in the paper, showing the redex in gray, rather than black. Textual visualization of functional expressions can be pretty-printed in user-defined ways. The programmer can define the textual format of every kind of expression. This customization is made by demonstration, with the user freely inserting line breaks, spaces and tabulators in 12b3-25

5 a template. The user can customize any part of an expression but its subexpressions, which are invariant parts of the expression. The specified format will write every part of the conditional expression in a different line and with the same indentation. The text produced for the conditional expression included above to compute the factorial of four is: if 4 = 0 then 1 else 4 * fact (4-1) An interesting feature is to allow pretty-printing expressions in a syntax forbidden in the programming language, but that the programmer considers to be readable. (As this is a dangerous feature, when the switch over the template is on, the consistency of the template with the language syntax is checked and thus enforced.) For instance, the same conditional expression, pretty-printed imitating Modula-2 is visualized as: IF 4 = 0 THEN 1 ELSE 4 * fact (4-1) END Graphical visualizations of lists and trees can be customized in any distance or typographic feature. In fact, the styles of lines described in the previous subsection are just the styles specified in the predefined configuration of the environment, but the programmer can freely modify them. The configurable elements for a list visualization are: distance between text and element border, overlapping between consecutive elements, and whether elements will have round corners. The empty list is drawn as special circular cell, whose radius can be defined. The configurable elements for a tree are: distance between text and node border, distance between nodes at the same level, distance between nodes at consecutive levels, whether nodes or subtrees have round corners, whether all the nodes or subtrees at the same level have the same height, and whether degenerate trees are drawn vertically or in diagonal. Empty trees are considered special trees which can be drawn square or round. The expression visualized in the second figure is visualized again in Fig. 5 with a different typographic style. Simplification of visualizations Figure 5. Another visualization of the second tree expression A visualization problem arising with non-trivial programs is the scaling problem: expressions can be too large to be easily understood, and even to fit in a window. Some mechanism must be provided to cope with large amounts of information. We provide a solution for the scaling problem with the technique known as fisheye views [3]. A fisheye view distorts a visualization, showing the most relevant parts and hiding the less important ones. The resulting visualization preserves a balance between global context given by the whole structure and the focus of interest. We have adapted the fisheye view technique to simplify the visualization of functional programs [11] in the following way. We can imagine a functional expression to be represented by its abstract syntax tree (AST). Global context is given by the whole expression, so the closer a subexpression to the root of the AST, the more interesting the subexpression. The local focus of interest is given by the next subexpression to rewrite, i.e. the redex. As a consequence, the most interesting part of an expression is the path along its AST that links the root and the redex. Given this definition of the most important part of an expression, we need a simple way to control the amount of information to visualize. The minimum visualizable part would be just the path between the root and the redex. We can show more parts of the expression by visualizing slices around the path. A number allows the programmer to state the desired number of visible slices. We can illustrate the technique with an example. Let us consider the following expression again: if 4=0 then 1 else 4*fact(4-1) where we have highlighted the redex. With an appropriate number (here, greater than or equal to 4), the whole expression is visualized. However, as the programmer reduces such a number to 3, 2, 1, and 0, the visualization is being simplified as follows: 12b3-26

6 if 4=0 then 1 else 4*fact( ) if 4=0 then 1 else 4*fact... if 4=0 then 1 else...*... if 4=0 then... else... Acknowledgments This work was partially supported by the Comunidad Autónoma de Madrid with project no. 07T/0036/98 Notice that the most relevant part for the current state of the computation (i.e. the condition) is preserved, and more distant parts, are successively hidden. The fisheye view technique is general and independent from the particular display format, so both textual and graphical visualizations can be simplified. Figure 6 shows a simplification of our tree. Benefits of customizations Programmers in general, and students in particular, obtain several benefits from customization facilities integrated in WinHIPE. The most evident advantage is that students feel more comfortable with the programming environment. This comfort comes from three facts. First, readability of programs is enhanced. Second, they feel to be using state-of-the-art software, as user-friendly as commercial applications. Third, they can develop programs in their personal style. Students get interested in style issues since they can experiment at small effort with different formats. Therefore, they quickly become profident in style matters and do not observe style as a personal taste of the teacher. WinHIPE is currently being used in a course on programming languages, and its customization facilities also allow us illustrating some concepts during the course. In particular, they allow us making clear the relevant role of visualizations in programming tools and their relative independence from language syntax. Students study the programming language with pure text syntax, but they are also given the equivalent, graphical representations. Conclusions We have shown the visualization facilities in a functional programming environment, WinHIPE, with especial emphasis on facilities for customizing them. They fit in three categories: textual vs. graphical visualizations, typographic formats, and scaling of visualizations. We have also described some of the advantages that customizations provide in a subject on programming languages. We think that, given the current state of the art in visualization, programming language processing and programming environments, it is not too difficult to include facilities such as those described here in educational environments. Clearly, this is one of the most promising lines of research and development for educational uses. Figure 6. Simplification of the second tree expression References [1] Baecker, R.M., Marcus, A., Human Factors and Typography for More Readable Programs, ACM Press, 1990 [2] Burstall, R., MacQueen, D., Sanella, D., HOPE: An experimental applicative language, The 1980 LISP Conference, pp [3] Furnas, G.W., Generalized fisheye views, ACM SIGCHI 86 Conference on Human Factors in Computing Systems, pp [4] Knuth, D.E., Literate programming, The Computer Journal, Vol. 27, No. 2, May 1984, pp [5] Jiménez-Peris, R., Pareja-Flores, C., Patiño-Martínez, M., Velázquez-Iturbide, J.Á., Graphical visualization of the evaluation of functional programs, SIGCSE/SIGCUE Conference on Integrating Technology into Computer Science Education (ITiCSE'96), June 1996, pp [6] Oppen, D.C., Prettyprinting, ACM Trans. on Programming Languages and Systems, Vol. 5, No. 4, October 1983, pp [7] Presa-Vázquez, A., WinHIPE: un entorno educativo de programación funcional para Windows, Master s Thesis, Facultad de Informática, Universidad Politécnica de Madrid, January 1999 [8] Rubin, L.F., Syntax directed pretty-printing A first step towards a syntax-directed editor, IEEE Trans. on Software Engineering, Vol. SE-9, No. 2, March 1983, pp [9] Stasko, J., Domingue, J., Brown, M.H., Price, B.A. (eds.), Software Visualization, The MIT Press, b3-27

7 [10] Velázquez-Iturbide, J.Á., Improving functional programming environments for education, in Man- Machine Communication for Educational Systems Design, M.D. Brouwer-Janse and T.L. Harrington (eds.), Springer- Verlag, 1994, pp [11] Velázquez-Iturbide, J.Á., Automatic simplification of the visualization of functional expressions by means of fisheye views, Joint Conference on Declarative Programming (AGP 98), July 1998, pp [12] Walker II, J.Q., A node-positioning algorithm for general trees, Software Practice and Experience, Vol. 20, Nº. 7, July 1990, pp b3-28

A Progressive Approach to Recursion

A Progressive Approach to Recursion A Progressive Approach to Recursion J. Ángel Velázquez-Iturbide Escuela Superior de Ciencias Experimentales y Tecnología Universidad Rey Juan Carlos C/ Tulipán s/n, 28933 Móstoles, Madrid, Spain Abstract

More information

DRAWING AND UNDERSTANDING RECURSIVE FUNCTIONS *

DRAWING AND UNDERSTANDING RECURSIVE FUNCTIONS * DRAWING AND UNDERSTANDING RECURSIVE FUNCTIONS * Gregory D. Weber Indiana University East 2325 Chester Boulevard Richmond, IN 47374 gdweber@iue.edu ABSTRACT Sifflet is a visual, functional programming language

More information

Chapter No. 2 Class modeling CO:-Sketch Class,object models using fundamental relationships Contents 2.1 Object and Class Concepts (12M) Objects,

Chapter No. 2 Class modeling CO:-Sketch Class,object models using fundamental relationships Contents 2.1 Object and Class Concepts (12M) Objects, Chapter No. 2 Class modeling CO:-Sketch Class,object models using fundamental relationships Contents 2.1 Object and Class Concepts (12M) Objects, Classes, Class Diagrams Values and Attributes Operations

More information

TILC: The Interactive Lambda-Calculus Tracer 1

TILC: The Interactive Lambda-Calculus Tracer 1 To appear in PROLE 2008 TILC: The Interactive Lambda-Calculus Tracer 1 David Ruiz and Mateu Villaret 2,3 Informàtica i Matemàtica Aplicada Universitat de Girona Girona, Spain Abstract This paper introduces

More information

3D Graphics Programming Mira Costa High School - Class Syllabus,

3D Graphics Programming Mira Costa High School - Class Syllabus, 3D Graphics Programming Mira Costa High School - Class Syllabus, 2009-2010 INSTRUCTOR: Mr. M. Williams COURSE GOALS and OBJECTIVES: 1 Learn the fundamentals of the Java language including data types and

More information

LUCAS An Interactive Visualization System Supporting Teaching of Algorithms and Data Structures

LUCAS An Interactive Visualization System Supporting Teaching of Algorithms and Data Structures LUCAS An Interactive Visualization System Supporting Teaching of Algorithms and Data Structures Erich Schikuta Department of Knowledge and Business Engineering, University of Vienna, Austria erich.schikuta@univie.ac.at

More information

Classification and Generation of 3D Discrete Curves

Classification and Generation of 3D Discrete Curves Applied Mathematical Sciences, Vol. 1, 2007, no. 57, 2805-2825 Classification and Generation of 3D Discrete Curves Ernesto Bribiesca Departamento de Ciencias de la Computación Instituto de Investigaciones

More information

Script for Visualization of Algorithms: Framework for Animation Environment and Composite Structures

Script for Visualization of Algorithms: Framework for Animation Environment and Composite Structures DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING, IIT KHARAGPUR Script for Visualization of Algorithms: Framework for Animation Environment and Composite Structures A synopsis of the thesis to be submitted

More information

CSC312 Principles of Programming Languages : Functional Programming Language. Copyright 2006 The McGraw-Hill Companies, Inc.

CSC312 Principles of Programming Languages : Functional Programming Language. Copyright 2006 The McGraw-Hill Companies, Inc. CSC312 Principles of Programming Languages : Functional Programming Language Overview of Functional Languages They emerged in the 1960 s with Lisp Functional programming mirrors mathematical functions:

More information

Curriculum Map Grade(s): Subject: AP Computer Science

Curriculum Map Grade(s): Subject: AP Computer Science Curriculum Map Grade(s): 11-12 Subject: AP Computer Science (Semester 1 - Weeks 1-18) Unit / Weeks Content Skills Assessments Standards Lesson 1 - Background Chapter 1 of Textbook (Weeks 1-3) - 1.1 History

More information

Picture Maze Generation by Repeated Contour Connection and Graph Structure of Maze

Picture Maze Generation by Repeated Contour Connection and Graph Structure of Maze Computer Science and Engineering 2013, 3(3): 76-83 DOI: 10.5923/j.computer.20130303.04 Picture Maze Generation by Repeated Contour Connection and Graph Structure of Maze Tomio Kurokawa Department of Information

More information

DOING MORE WITH EXCEL: MICROSOFT OFFICE 2013

DOING MORE WITH EXCEL: MICROSOFT OFFICE 2013 DOING MORE WITH EXCEL: MICROSOFT OFFICE 2013 GETTING STARTED PAGE 02 Prerequisites What You Will Learn MORE TASKS IN MICROSOFT EXCEL PAGE 03 Cutting, Copying, and Pasting Data Basic Formulas Filling Data

More information

2 Sets. 2.1 Notation. last edited January 26, 2016

2 Sets. 2.1 Notation. last edited January 26, 2016 2 Sets Sets show up in virtually every topic in mathematics, and so understanding their basics is a necessity for understanding advanced mathematics. As far as we re concerned, the word set means what

More information

PROBLEM SOLVING AND OFFICE AUTOMATION. A Program consists of a series of instruction that a computer processes to perform the required operation.

PROBLEM SOLVING AND OFFICE AUTOMATION. A Program consists of a series of instruction that a computer processes to perform the required operation. UNIT III PROBLEM SOLVING AND OFFICE AUTOMATION Planning the Computer Program Purpose Algorithm Flow Charts Pseudo code -Application Software Packages- Introduction to Office Packages (not detailed commands

More information

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture - 43 Dynamic Binding (Polymorphism): Part III Welcome to Module

More information

The MOVA Tool: User Manual (version 0.2)

The MOVA Tool: User Manual (version 0.2) The MOVA Tool: User Manual (version 0.2) Manuel Clavel Marina Egea Viviane Torres da Silva February 12, 2007 Contents 1 Overview 1 2 MOVA UML modeling 2 2.1 The top menu............................. 2

More information

If Statements, For Loops, Functions

If Statements, For Loops, Functions Fundamentals of Programming If Statements, For Loops, Functions Table of Contents Hello World Types of Variables Integers and Floats String Boolean Relational Operators Lists Conditionals If and Else Statements

More information

Scheme of work Cambridge International AS & A Level Computing (9691)

Scheme of work Cambridge International AS & A Level Computing (9691) Scheme of work Cambridge International AS & A Level Computing (9691) Unit 2: Practical programming techniques Recommended prior knowledge Students beginning this course are not expected to have studied

More information

FROM 4D WRITE TO 4D WRITE PRO INTRODUCTION. Presented by: Achim W. Peschke

FROM 4D WRITE TO 4D WRITE PRO INTRODUCTION. Presented by: Achim W. Peschke 4 D S U M M I T 2 0 1 8 FROM 4D WRITE TO 4D WRITE PRO Presented by: Achim W. Peschke INTRODUCTION In this session we will talk to you about the new 4D Write Pro. I think in between everyone knows what

More information

Creating Icons for Leopard Buttons

Creating Icons for Leopard Buttons Creating Icons for Leopard Buttons Introduction Among the new features that C-Max 2.0 brings to the Ocelot and Leopard controllers, one of the more sophisticated ones allows the user to create icons that

More information

Interactive learning on a ClassPad 300

Interactive learning on a ClassPad 300 Interactive learning on a ClassPad 300 Barry Kissane School of Education Murdoch University http://wwwstaff.murdoch.edu.au/~kissane 1. Getting oriented Use the stylus to tap the Menu icon at the bottom

More information

Chapter 2 The Language PCF

Chapter 2 The Language PCF Chapter 2 The Language PCF We will illustrate the various styles of semantics of programming languages with an example: the language PCF Programming language for computable functions, also called Mini-ML.

More information

5 The Control Structure Diagram (CSD)

5 The Control Structure Diagram (CSD) 5 The Control Structure Diagram (CSD) The Control Structure Diagram (CSD) is an algorithmic level diagram intended to improve the comprehensibility of source code by clearly depicting control constructs,

More information

Exercises: Instructions and Advice

Exercises: Instructions and Advice Instructions Exercises: Instructions and Advice The exercises in this course are primarily practical programming tasks that are designed to help the student master the intellectual content of the subjects

More information

Visual programming language for modular algorithms

Visual programming language for modular algorithms Visual programming language for modular algorithms Rudolfs Opmanis, Rihards Opmanis Institute of Mathematics and Computer Science University of Latvia, Raina bulvaris 29, Riga, LV-1459, Latvia rudolfs.opmanis@gmail.com,

More information

Topic 7: Algebraic Data Types

Topic 7: Algebraic Data Types Topic 7: Algebraic Data Types 1 Recommended Exercises and Readings From Haskell: The craft of functional programming (3 rd Ed.) Exercises: 5.5, 5.7, 5.8, 5.10, 5.11, 5.12, 5.14 14.4, 14.5, 14.6 14.9, 14.11,

More information

Math 6 Long Range Plans Bill Willis. Strand: NUMBER Develop number sense. Textbook: Math Makes Sense 6

Math 6 Long Range Plans Bill Willis. Strand: NUMBER Develop number sense. Textbook: Math Makes Sense 6 Math 6 Long Range Plans 2012-2013 Bill Willis Rationale: Based upon the mathematics program of studies, our learning environment will value and respect the diversity of students experiences and ways of

More information

Topic: 1-One to Five

Topic: 1-One to Five Mathematics Curriculum Kindergarten Suggested Blocks of Instruction: 12 days /September Topic: 1-One to Five Know number names and the count sequence. K.CC.3. Write numbers from 0 to 20. Represent a number

More information

Algorithms and Flowcharts

Algorithms and Flowcharts UNIT 2 Chapter 1 Algorithms and Flowcharts After studying this lesson, the students will be able to understand the need of Algorithm and Flowcharts; solve problems by using algorithms and flowcharts; get

More information

SciGraphica. Tutorial Manual - Tutorials 1and 2 Version 0.8.0

SciGraphica. Tutorial Manual - Tutorials 1and 2 Version 0.8.0 SciGraphica Tutorial Manual - Tutorials 1and 2 Version 0.8.0 Copyright (c) 2001 the SciGraphica documentation group Permission is granted to copy, distribute and/or modify this document under the terms

More information

Mathematics Grade 5. COMMON CORE STATE STANDARDS for MATHEMATICS

Mathematics Grade 5. COMMON CORE STATE STANDARDS for MATHEMATICS Mathematics Grade 5 In Grade 5, instructional time should focus on three critical areas: (1) developing fluency with addition and subtraction of fractions, and developing understanding of the multiplication

More information

Ensuring a Rigorous Curriculum: Practices and Goals

Ensuring a Rigorous Curriculum: Practices and Goals Ensuring a Rigorous Curriculum: Practices and Goals Allen B. Tucker Bowdoin College www.bowdoin.edu/~allen April 12, 2002 1 of 30 Goals of an Undergraduate Program To prepare graduates for the computing

More information

Full file at

Full file at Java Programming: From Problem Analysis to Program Design, 3 rd Edition 2-1 Chapter 2 Basic Elements of Java At a Glance Instructor s Manual Table of Contents Overview Objectives s Quick Quizzes Class

More information

Using Microsoft Word. Working With Objects

Using Microsoft Word. Working With Objects Using Microsoft Word Many Word documents will require elements that were created in programs other than Word, such as the picture to the right. Nontext elements in a document are referred to as Objects

More information

Semester (kick-off) project: The BRAINF CK Language

Semester (kick-off) project: The BRAINF CK Language Semester (kick-off) project: The BRAINF CK Language Sébastien Mosser mosser@i3s.unice.fr 2016 Third Year Polytech Nice Sophia Antipolis 1 Introduction & Objectives The goal of this project is to leverage

More information

Formal semantics of loosely typed languages. Joep Verkoelen Vincent Driessen

Formal semantics of loosely typed languages. Joep Verkoelen Vincent Driessen Formal semantics of loosely typed languages Joep Verkoelen Vincent Driessen June, 2004 ii Contents 1 Introduction 3 2 Syntax 5 2.1 Formalities.............................. 5 2.2 Example language LooselyWhile.................

More information

Higres Visualization System for Clustered Graphs and Graph Algorithms

Higres Visualization System for Clustered Graphs and Graph Algorithms Higres Visualization System for Clustered Graphs and Graph Algorithms Ivan A. Lisitsyn and Victor N. Kasyanov A. P. Ershov s Institute of Informatics Systems, Lavrentiev av. 6, 630090, Novosibirsk, Russia

More information

EXCEL 2003 DISCLAIMER:

EXCEL 2003 DISCLAIMER: EXCEL 2003 DISCLAIMER: This reference guide is meant for experienced Microsoft Excel users. It provides a list of quick tips and shortcuts for familiar features. This guide does NOT replace training or

More information

Automatic assessment of students program codes

Automatic assessment of students program codes Automatic assessment of students program codes Ahmed Hashim {ahashim@cs.joensuu.fi} June 22, 2006 1 Introduction Automatic assessment provides an effective method for giving immediate 24/7 feedback service

More information

AGB 260: Agribusiness Data Literacy. Excel Basics

AGB 260: Agribusiness Data Literacy. Excel Basics AGB 260: Agribusiness Data Literacy Excel Basics Useful Chapters in the Textbook Regarding this Lecture Chapter 1: Introducing Excel Chapter 2: Entering and Editing Worksheet Data Chapter 3: Essential

More information

Digital Halftoning Algorithm Based o Space-Filling Curve

Digital Halftoning Algorithm Based o Space-Filling Curve JAIST Reposi https://dspace.j Title Digital Halftoning Algorithm Based o Space-Filling Curve Author(s)ASANO, Tetsuo Citation IEICE TRANSACTIONS on Fundamentals o Electronics, Communications and Comp Sciences,

More information

A Simple Method of the TEX Surface Drawing Suitable for Teaching Materials with the Aid of CAS

A Simple Method of the TEX Surface Drawing Suitable for Teaching Materials with the Aid of CAS A Simple Method of the TEX Surface Drawing Suitable for Teaching Materials with the Aid of CAS Masataka Kaneko, Hajime Izumi, Kiyoshi Kitahara 1, Takayuki Abe, Kenji Fukazawa 2, Masayoshi Sekiguchi, Yuuki

More information

CompuScholar, Inc. Alignment to Nevada "Computer Science" Course Standards

CompuScholar, Inc. Alignment to Nevada Computer Science Course Standards CompuScholar, Inc. Alignment to Nevada "Computer Science" Course Standards Nevada Course Details: Course Name: Computer Science Primary Cluster: Information and Media Technologies Standards Course Code(s):

More information

Handout 9: Imperative Programs and State

Handout 9: Imperative Programs and State 06-02552 Princ. of Progr. Languages (and Extended ) The University of Birmingham Spring Semester 2016-17 School of Computer Science c Uday Reddy2016-17 Handout 9: Imperative Programs and State Imperative

More information

Anima-LP. Version 2.1alpha. User's Manual. August 10, 1992

Anima-LP. Version 2.1alpha. User's Manual. August 10, 1992 Anima-LP Version 2.1alpha User's Manual August 10, 1992 Christopher V. Jones Faculty of Business Administration Simon Fraser University Burnaby, BC V5A 1S6 CANADA chris_jones@sfu.ca 1992 Christopher V.

More information

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Programming in C++ Prof. Partha Pratim Das Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture 04 Programs with IO and Loop We will now discuss the module 2,

More information

MIAMI-DADE COUNTY PUBLIC SCHOOLS District Pacing Guide GEOMETRY HONORS Course Code:

MIAMI-DADE COUNTY PUBLIC SCHOOLS District Pacing Guide GEOMETRY HONORS Course Code: Topic II: Transformations in the Plane Pacing Date(s) Traditional 14 09/15/14-10/03/14 Block 07 09/15/14-10/03/14 MATHEMATICS FLORIDA STANDARDS & MATHEMATICAL PRACTICE (MP) MATHEMATICAL PRACTICE (MP) ESSENTIAL

More information

The American University in Cairo. Academic Computing Services. Word prepared by. Soumaia Ahmed Al Ayyat

The American University in Cairo. Academic Computing Services. Word prepared by. Soumaia Ahmed Al Ayyat The American University in Cairo Academic Computing Services Word 2000 prepared by Soumaia Ahmed Al Ayyat Spring 2001 Table of Contents: Opening the Word Program Creating, Opening, and Saving Documents

More information

Open PROMOL: An Experimental Language for Target Program Modification

Open PROMOL: An Experimental Language for Target Program Modification Open PROMOL: An Experimental Language for Target Program Modification Vytautas Štuikys, Robertas Damaševičius, Giedrius Ziberkas Software Engineering Department, Kaunas University of Technology Studentų

More information

L. S. Tang Department of Mathematics and Computer Science Western New England College Springfield, MA 01119

L. S. Tang Department of Mathematics and Computer Science Western New England College Springfield, MA 01119 SOME EFFECTIVE OOP EXAMPLES L. S. Tang Department of Mathematics and Computer Science Western New England College Springfield, MA 01119 1. INTRODUCTION Object-oriented programming has become increasingly

More information

Mathematics. Accelerated GSE Algebra I/Geometry A Unit 7: Transformations in the Coordinate Plane

Mathematics. Accelerated GSE Algebra I/Geometry A Unit 7: Transformations in the Coordinate Plane Georgia Standards of Excellence Frameworks Mathematics Accelerated GSE Algebra I/Geometry A Unit 7: Transformations in the Coordinate Plane These materials are for nonprofit educational purposes only.

More information

Semantics via Syntax. f (4) = if define f (x) =2 x + 55.

Semantics via Syntax. f (4) = if define f (x) =2 x + 55. 1 Semantics via Syntax The specification of a programming language starts with its syntax. As every programmer knows, the syntax of a language comes in the shape of a variant of a BNF (Backus-Naur Form)

More information

Mathematics. Unit 5: Transformations in the Coordinate Plane

Mathematics. Unit 5: Transformations in the Coordinate Plane CCGPS Frameworks Student Edition Mathematics CCGPS Coordinate Algebra Unit 5: Transformations in the Coordinate Plane These materials are for nonprofit educational purposes only. Any other use may constitute

More information

The American University in Cairo. Academic Computing Services. Excel prepared by. Maha Amer

The American University in Cairo. Academic Computing Services. Excel prepared by. Maha Amer The American University in Cairo Excel 2000 prepared by Maha Amer Spring 2001 Table of Contents: Opening the Excel Program Creating, Opening and Saving Excel Worksheets Sheet Structure Formatting Text

More information

A Java Execution Simulator

A Java Execution Simulator A Java Execution Simulator Steven Robbins Department of Computer Science University of Texas at San Antonio srobbins@cs.utsa.edu ABSTRACT This paper describes JES, a Java Execution Simulator that allows

More information

CPS 506 Comparative Programming Languages. Programming Language Paradigm

CPS 506 Comparative Programming Languages. Programming Language Paradigm CPS 506 Comparative Programming Languages Functional Programming Language Paradigm Topics Introduction Mathematical Functions Fundamentals of Functional Programming Languages The First Functional Programming

More information

Work with Shapes. Concepts CHAPTER. Concepts, page 3-1 Procedures, page 3-5

Work with Shapes. Concepts CHAPTER. Concepts, page 3-1 Procedures, page 3-5 3 CHAPTER Revised: November 15, 2011 Concepts, page 3-1, page 3-5 Concepts The Shapes Tool is Versatile, page 3-2 Guidelines for Shapes, page 3-2 Visual Density Transparent, Translucent, or Opaque?, page

More information

MASTER OF ENGINEERING PROGRAM IN INFORMATION

MASTER OF ENGINEERING PROGRAM IN INFORMATION MASTER OF ENGINEERING PROGRAM IN INFORMATION AND COMMUNICATION TECHNOLOGY FOR EMBEDDED SYSTEMS (INTERNATIONAL PROGRAM) Curriculum Title Master of Engineering in Information and Communication Technology

More information

VISUAL GUIDE to. RX Scripting. for Roulette Xtreme - System Designer 2.0. L J Howell UX Software Ver. 1.0

VISUAL GUIDE to. RX Scripting. for Roulette Xtreme - System Designer 2.0. L J Howell UX Software Ver. 1.0 VISUAL GUIDE to RX Scripting for Roulette Xtreme - System Designer 2.0 L J Howell UX Software 2009 Ver. 1.0 TABLE OF CONTENTS INTRODUCTION...ii What is this book about?... iii How to use this book... iii

More information

Co. Cavan VEC. Co. Cavan VEC. Programme Module for. Word Processing. leading to. Level 5 FETAC. Word Processing 5N1358. Word Processing 5N1358

Co. Cavan VEC. Co. Cavan VEC. Programme Module for. Word Processing. leading to. Level 5 FETAC. Word Processing 5N1358. Word Processing 5N1358 Co. Cavan VEC Programme Module for Word Processing leading to Level 5 FETAC 1 Introduction This programme module may be delivered as a standalone module leading to certification in a FETAC minor award.

More information

6.001 Notes: Section 8.1

6.001 Notes: Section 8.1 6.001 Notes: Section 8.1 Slide 8.1.1 In this lecture we are going to introduce a new data type, specifically to deal with symbols. This may sound a bit odd, but if you step back, you may realize that everything

More information

DASHBOARDPRO & DASHBOARD

DASHBOARDPRO & DASHBOARD DASHBOARDPRO & DASHBOARD In a world where text rules the flow of knowledge, how do you expand the content and present it in such a way that the viewer appreciates your hard work and effort to a greater

More information

Programming Languages

Programming Languages Programming Languages As difficult to discuss rationally as religion or politics. Prone to extreme statements devoid of data. Examples: "It is practically impossible to teach good programming to students

More information

LAB # 2 3D Modeling, Properties Commands & Attributes

LAB # 2 3D Modeling, Properties Commands & Attributes COMSATS Institute of Information Technology Electrical Engineering Department (Islamabad Campus) LAB # 2 3D Modeling, Properties Commands & Attributes Designed by Syed Muzahir Abbas 1 1. Overview of the

More information

Unit 8: Analysis of Algorithms 1: Searching

Unit 8: Analysis of Algorithms 1: Searching P Computer Science Unit 8: nalysis of lgorithms 1: Searching Topics: I. Sigma and Big-O notation II. Linear Search III. Binary Search Materials: I. Rawlins 1.6 II. Rawlins 2.1 III. Rawlins 2.3 IV. Sigma

More information

Definition: A data structure is a way of organizing data in a computer so that it can be used efficiently.

Definition: A data structure is a way of organizing data in a computer so that it can be used efficiently. The Science of Computing I Lesson 4: Introduction to Data Structures Living with Cyber Pillar: Data Structures The need for data structures The algorithms we design to solve problems rarely do so without

More information

MS Publisher County of Henrico Public Libraries

MS Publisher County of Henrico Public Libraries MS Publisher 2013 I. About Publisher A. What is it? Publisher is a desktop publishing program that assists you in designing and producing professional documents that combine text, graphics, illustrations,

More information

Java Class Visualization for Teaching Object-Oriented Concepts

Java Class Visualization for Teaching Object-Oriented Concepts Java Class Visualization for Teaching Object-Oriented Concepts Herbert L. Dershem and James Vanderhyde Department of Computer Science Hope College Holland, MI 49422-9000 dershem@cs.hope.edu Abstract Visualization

More information

What is Publisher, anyway?

What is Publisher, anyway? What is Publisher, anyway? Microsoft Publisher designed for users who need to create and personalize publications such as marketing materials, business stationery, signage, newsletters and other items

More information

Figure 4.1: The evolution of a rooted tree.

Figure 4.1: The evolution of a rooted tree. 106 CHAPTER 4. INDUCTION, RECURSION AND RECURRENCES 4.6 Rooted Trees 4.6.1 The idea of a rooted tree We talked about how a tree diagram helps us visualize merge sort or other divide and conquer algorithms.

More information

Using Symbolic Geometry to Teach Secondary School Mathematics - Geometry Expressions Activities for Algebra 2 and Precalculus

Using Symbolic Geometry to Teach Secondary School Mathematics - Geometry Expressions Activities for Algebra 2 and Precalculus Using Symbolic Geometry to Teach Secondary School Mathematics - Geometry Expressions Activities for Algebra and Precalculus Irina Lyublinskaya, CUNY College of Staten Island, Staten Island, NY, USA and

More information

A Formalization of Transition P Systems

A Formalization of Transition P Systems Fundamenta Informaticae 49 (2002) 261 272 261 IOS Press A Formalization of Transition P Systems Mario J. Pérez-Jiménez and Fernando Sancho-Caparrini Dpto. Ciencias de la Computación e Inteligencia Artificial

More information

Geneva CUSD 304 Content-Area Curriculum Frameworks Grades 6-12 Business

Geneva CUSD 304 Content-Area Curriculum Frameworks Grades 6-12 Business Geneva CUSD 304 Content-Area Curriculum Frameworks Grades 6-12 Business Mission Statement In the Business Department, our mission is to: Provide a variety of subject areas. Introduce students to current

More information

Consider a description of arithmetic. It includes two equations that define the structural types of digit and operator:

Consider a description of arithmetic. It includes two equations that define the structural types of digit and operator: Syntax A programming language consists of syntax, semantics, and pragmatics. We formalize syntax first, because only syntactically correct programs have semantics. A syntax definition of a language lists

More information

CSE 100 Advanced Data Structures

CSE 100 Advanced Data Structures CSE 100 Advanced Data Structures Overview of course requirements Outline of CSE 100 topics Review of trees Helpful hints for team programming Information about computer accounts Page 1 of 25 CSE 100 web

More information

Toward Part-based Document Image Decoding

Toward Part-based Document Image Decoding 2012 10th IAPR International Workshop on Document Analysis Systems Toward Part-based Document Image Decoding Wang Song, Seiichi Uchida Kyushu University, Fukuoka, Japan wangsong@human.ait.kyushu-u.ac.jp,

More information

APPLICATION OF A METASYSTEM IN UNIVERSITY INFORMATION SYSTEM DEVELOPMENT

APPLICATION OF A METASYSTEM IN UNIVERSITY INFORMATION SYSTEM DEVELOPMENT APPLICATION OF A METASYSTEM IN UNIVERSITY INFORMATION SYSTEM DEVELOPMENT Petr Smolík, Tomáš Hruška Department of Computer Science and Engineering, Faculty of Computer Science and Engineering, Brno University

More information

Publisher I-Introduction-2013 Version

Publisher I-Introduction-2013 Version Publisher I-Introduction-2013 Version I. About Publisher A. What is it? Publisher is a desktop publishing program that assists you in designing and producing professional documents that combine text, graphics,

More information

C A R I B B E A N E X A M I N A T I O N S C O U N C I L REPORT ON CANDIDATES WORK IN THE SECONDARY EDUCATION CERTIFICATE EXAMINATIONS MAY/JUNE 2010

C A R I B B E A N E X A M I N A T I O N S C O U N C I L REPORT ON CANDIDATES WORK IN THE SECONDARY EDUCATION CERTIFICATE EXAMINATIONS MAY/JUNE 2010 C A R I B B E A N E X A M I N A T I O N S C O U N C I L REPORT ON CANDIDATES WORK IN THE SECONDARY EDUCATION CERTIFICATE EXAMINATIONS MAY/JUNE 2010 INFORMATION TECHNOLOGY GENERAL PROFICIENCY Copyright

More information

40. Sim Module - Common Tools

40. Sim Module - Common Tools HSC Sim Common Tools 15021-ORC-J 1 (33) 40. Sim Module - Common Tools Table of Contents 40.1. Drawing flowsheets and adding tables to flowsheets... 2 40.1.1. Drawing units... 2 40.1.2. Drawing streams...

More information

Introduction Accessing MICS Compiler Learning MICS Compiler CHAPTER 1: Searching for Data Surveys Indicators...

Introduction Accessing MICS Compiler Learning MICS Compiler CHAPTER 1: Searching for Data Surveys Indicators... Acknowledgement MICS Compiler is a web application that has been developed by UNICEF to provide access to Multiple Indicator Cluster Survey data. The system is built on DevInfo technology. 3 Contents Introduction...

More information

Fundamental Concepts. Chapter 1

Fundamental Concepts. Chapter 1 Chapter 1 Fundamental Concepts This book is about the mathematical foundations of programming, with a special attention on computing with infinite objects. How can mathematics help in programming? There

More information

EXCEL BASICS: MICROSOFT OFFICE 2007

EXCEL BASICS: MICROSOFT OFFICE 2007 EXCEL BASICS: MICROSOFT OFFICE 2007 GETTING STARTED PAGE 02 Prerequisites What You Will Learn USING MICROSOFT EXCEL PAGE 03 Opening Microsoft Excel Microsoft Excel Features Keyboard Review Pointer Shapes

More information

VALLIAMMAI ENGNIEERING COLLEGE SRM Nagar, Kattankulathur DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING QUESTION BANK

VALLIAMMAI ENGNIEERING COLLEGE SRM Nagar, Kattankulathur DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING QUESTION BANK VALLIAMMAI ENGNIEERING COLLEGE SRM Nagar, Kattankulathur 603203. DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING QUESTION BANK Degree & Branch : B.E E.C.E. Year & Semester : II / IV Section : ECE 1, 2 &

More information

Key Properties for Comparing Modeling Languages and Tools: Usability, Completeness and Scalability

Key Properties for Comparing Modeling Languages and Tools: Usability, Completeness and Scalability Key Properties for Comparing Modeling Languages and Tools: Usability, Completeness and Scalability Timothy C. Lethbridge Department of Electrical Engineering and Computer Science, University of Ottawa

More information

Programming Paradigms

Programming Paradigms PP 2017/18 Unit 11 Functional Programming with Haskell 1/37 Programming Paradigms Unit 11 Functional Programming with Haskell J. Gamper Free University of Bozen-Bolzano Faculty of Computer Science IDSE

More information

Topic: Topic 1-Numeration

Topic: Topic 1-Numeration Suggested Blocks of Instruction: 10 days /September Use place value understanding and properties of operations to perform multi-digit arithmetic. 3.NBT.1. Use place value understanding to round whole numbers

More information

Drawing Bipartite Graphs as Anchored Maps

Drawing Bipartite Graphs as Anchored Maps Drawing Bipartite Graphs as Anchored Maps Kazuo Misue Graduate School of Systems and Information Engineering University of Tsukuba 1-1-1 Tennoudai, Tsukuba, 305-8573 Japan misue@cs.tsukuba.ac.jp Abstract

More information

Basic concepts. Chapter Toplevel loop

Basic concepts. Chapter Toplevel loop Chapter 3 Basic concepts We examine in this chapter some fundamental concepts which we will use and study in the following chapters. Some of them are specific to the interface with the Caml language (toplevel,

More information

Integrated Graphical Program in Lumousoft Visual Programming Language

Integrated Graphical Program in Lumousoft Visual Programming Language 142 Int'l Conf. Embedded Systems, Cyber-physical Systems, & Applications ESCS'16 Integrated Graphical Program in Lumousoft Visual Programming Language Xianliang Lu Lumousoft Inc. Waterloo Ontario Canada

More information

1. true / false By a compiler we mean a program that translates to code that will run natively on some machine.

1. true / false By a compiler we mean a program that translates to code that will run natively on some machine. 1. true / false By a compiler we mean a program that translates to code that will run natively on some machine. 2. true / false ML can be compiled. 3. true / false FORTRAN can reasonably be considered

More information

Language Basics. /* The NUMBER GAME - User tries to guess a number between 1 and 10 */ /* Generate a random number between 1 and 10 */

Language Basics. /* The NUMBER GAME - User tries to guess a number between 1 and 10 */ /* Generate a random number between 1 and 10 */ Overview Language Basics This chapter describes the basic elements of Rexx. It discusses the simple components that make up the language. These include script structure, elements of the language, operators,

More information

Part II: Creating Visio Drawings

Part II: Creating Visio Drawings 128 Part II: Creating Visio Drawings Figure 5-3: Use any of five alignment styles where appropriate. Figure 5-4: Vertical alignment places your text at the top, bottom, or middle of a text block. You could

More information

Student Outcomes. Classwork. Opening Exercises 1 2 (5 minutes)

Student Outcomes. Classwork. Opening Exercises 1 2 (5 minutes) Student Outcomes Students use the Pythagorean Theorem to determine an unknown dimension of a cone or a sphere. Students know that a pyramid is a special type of cone with triangular faces and a rectangular

More information

Impress Guide. Chapter 1 Introducing Impress

Impress Guide. Chapter 1 Introducing Impress Impress Guide Chapter 1 Introducing Impress Copyright This document is Copyright 2005 2009 by its contributors as listed in the section titled Authors. You may distribute it and/or modify it under the

More information

An Incomplete Language Feature

An Incomplete Language Feature N3139=10-0129 Bjarne Stroustrup 9/4/2010 An Incomplete Language Feature Abstract As the draft standard stands, we cannot use -style initialization in default arguments. This paper argues that this is a

More information

Point Cloud Filtering using Ray Casting by Eric Jensen 2012 The Basic Methodology

Point Cloud Filtering using Ray Casting by Eric Jensen 2012 The Basic Methodology Point Cloud Filtering using Ray Casting by Eric Jensen 01 The Basic Methodology Ray tracing in standard graphics study is a method of following the path of a photon from the light source to the camera,

More information

A Small Interpreted Language

A Small Interpreted Language A Small Interpreted Language What would you need to build a small computing language based on mathematical principles? The language should be simple, Turing equivalent (i.e.: it can compute anything that

More information

CS2110 Assignment 3 Inheritance and Trees, Summer 2008

CS2110 Assignment 3 Inheritance and Trees, Summer 2008 CS2110 Assignment 3 Inheritance and Trees, Summer 2008 Due Sunday July 13, 2008, 6:00PM 0 Introduction 0.1 Goals This assignment will help you get comfortable with basic tree operations and algorithms.

More information

POWERPOINT 2003 OVERVIEW DISCLAIMER:

POWERPOINT 2003 OVERVIEW DISCLAIMER: DISCLAIMER: POWERPOINT 2003 This reference guide is meant for experienced Microsoft Office users. It provides a list of quick tips and shortcuts for familiar features. This guide does NOT replace training

More information