HAVING a good mental model of how a

Size: px
Start display at page:

Download "HAVING a good mental model of how a"

Transcription

1 DUSTIN RHODES CMPS261 PROJECT PROPOSAL 1 Dynamic Visualization of Code Control Flow Dustin Rhodes Abstract Having a good mental model of how computers execute code is important to becoming a good computer scientist. The area of program visualization and it s related field of visual programming both attempt to provide programmers with better tools for creating accurate models of their code. The majority of a program happens sequentially, however at certain critical points the flow of a programs execution jumps. This takes place at if statements, loops, and method calls. This paper shows a way of modeling if s and loops and a potential way of modeling function calls. A graph is created with sections of code being represented by nodes in the graph. A section of code is connected to all other sections of code which can potentially follow it. For the end of a loop for example the program can either jump to the top of the loop or continue on to the code after the loop. For the purpose of this paper a webpage was created which reads in a function written in javascript. It parses this code and creates a graph from it which is displayed alongside the original code. With this program I hope to provide a way of automatically producing clean, neat, and dynamic control graphs which can be changed and manipulated in real time. I believe this would be a very useful teaching tool which is not currently available. Index Terms flow graph, d3, javascript 1 INTRODUCTION HAVING a good mental model of how a program executes is both important for beginning programmers and often a difficult thing to learn. To aid in this learning there have been many program visualizations through out the years that attempt to allow a student to see what the program is doing visually. Most recently this work has been focused on generating animations of the code functioning or running the code in a glass box interpretor so the student can see the code as it runs. This visualization takes a different approach and attempts to display the running of a program as a single graphic. While this severely limits the amount of space available to view the code it allows for the user to see changes in their code as they edit. While a normal animation based visualization requires the animation to be rebuilt and re watched with a change in code this image based technique can dynamically change as the user edits. This visualization is based of a control flow diagram to show the user what sections of code get executed and when. Fig. 1. A snapshot of our visualization running on sample code 2 AREA OF RESEARCH This project touches on a number of areas of research. It is most at place in the field of

2 DUSTIN RHODES CMPS261 PROJECT PROPOSAL 2 program visualization, but it also uses some different ideas from the field of info viz to determine how it s final graph layout should look. As well as some other various info viz techniques to help to display the maximum amount of information clearly. Finally, while the project does not currently work in a visual programming way, it would be easy to extend it to that field. Most programmers form a mental model of code they are writing in their head while programming [7]. This mental model must contain elements such as program flow, memory constraints, and user input. Many modern programming techniques are used because they allow for a simplified mental model of a program. For instance method encapsulation helps immensely with program visualisation. If a method is free to modify any variables at will then we must fit all available variables into our mental model. If however we know that only a few variables which are passed in as parameters will be modified then it becomes much easier to reason about that section of code. Because these visualizations take place constantly while we program and we have so many programming paradigms to help us it is only natural that programmers would create viz representations to also help them understand their programs. These visualizations take place at many different levels, from the very high up and abstract, to the closer to code. algorithms. These animations proved helpful in teaching new students these algorithms however their use was very limited. Since each algorithm was created by hand they could not be applied to students own code or sculpted to instructor needs. Jeliot 3 Jeliot 3 uses animation to show the process of a program running in the java virtual machine. It is meant to show beginning programmers how a java program is executed. It models method calls, variables, and mathematical operations as animation. A key feature of this program is that the animations are created programatically and no special function calls in the code are needed to create an animation. Current work is being done on visualizing and animating objects in memory. [8] 2.1 Program Visualization Program visualizations come at many levels. Many of them work at a relatively high level. While these higher level viz applications are often helpful for experienced programmers to get a broad overview of their project they are of relatively little help for people just starting out. There is a whole class of programs used to help these students Early Work The first pushes in the area where static animations created to show fundamental computer science Fig. 2. this is jeliot 3 with code on the left and the current program state on the right. VINCE Vince is a similar program for C code. It focuses on showing the memory space of a program as it is being executed, instead of trying to show all the things jeliot does.

3 DUSTIN RHODES CMPS261 PROJECT PROPOSAL 3 [12] Bradman Bradman is a glass box interpretor for C code. It will run C code while showing the user the inner workings of the computer at the time it is running code. While previous work done in the animator field was focused on creating demos for class Bradman was meant to be used by students to run their own code. [9] Dr. Java and Jive Both of these programs combine a program editor with program visualization. Like Bradman students can watch as their code is executed. By combining the visualization with the coding environment it is possible to provide a very low barrier for entry to new students. Students simply type their code in and can then observe as it is executed and use the debugger to explore their code. [10] program visualizations to be developed. It does not feature an editor like Dr. Java or Jive and instead works more like older visualizations which read in source code and produced an animation. However, with Python Tutor the ease of creating these animations is greatly enhanced and the animations are interactive. Python tutor shows source code on the left and the function call stack and program memory on the right. The user can then step through their code, seeing which line is being executed and how it changes memory. The user can even step backwards in code. In addition to these features since it is online it offers many easy ways for professors to share code with their students. In addition it offers a nice view of objects in memory unlike previous visualizations.[11] Fig. 4. Python tutor in the middle of it s animation. The code that the animation is based off of and the current line are seen on the left hand side. On the right is the current function frame and also a picture of memory. Objects are well represented in memory. Fig. 3. Dr. Java editor while it is running it s debugger. The code editor can be seen on the top right with breakpoints and the stack represented in the middle section of the screen. Python Tutor Python Tutor is one of the newest Our visualization hopes to build off of these visualizations, in particular the ease of use of Python Tutor and the edit in place features of Dr. Java. It aims to display very different information from python tutor or any of the other visualizations though and does so as an image which represents your code instead of an animation which shows your code running.

4 DUSTIN RHODES CMPS261 PROJECT PROPOSAL Visual Programming Many recent program visualization tools stray into the realm of visual programming. Programs such as Dr. Java which combine a program visualization tool with an IDE come very close to being visual programming tools. Then there are other tools which function purely as visual programming tools whose results look an awful lot like common program visualization results. Our program fits into a similar spot. While it does not currently have any visual programming features implemented there are a variety of features which could be added to push it into this realm. 2.3 Info Viz Techniques In order to be a useful visualization of a program we will use a variety of different info viz techniques. The following common infoviz techniques are used. tree layout A standard tree is special graph in which each node only has 1 parent. drill down Drill down is a technique used to display more information when a user requests it. This allows for more information to be viewed then if all information was shown on screen at all times. heat map A heat map uses color to display information about an attribute. Usually cool colors are mapped to low values while hotter colors are mapped to higher values. 2.4 Motivation For beginning programmers learning which lines of a program are executed when and how often is a very important part of the learning process. Compared to other factors in code visualization it is the simplest to grasp and deals with the fundamental building blocks of code. Currently many intro programming lectures and books use hand drawn control flow graphs to explain if statements and loops. This implies that they are in fact useful for beginning programmers. There are not however any good tools currently available to allow these beginning programmers to view their own code as a flow graph. Graphs appearing in textbooks and slides are also by nature static. For those learning to code being able to play with the values of variables and see the effects this has on the execution of code is very important. A flow graph is a great way to see the effects changing variables can have on your code but there is currently no way to view this besides manually creating multiple flow graphs. 2.5 Dynamic Flow Tree The most basic idea for my program is that it generates a control flow graph based on the users inputted code. For the most part program flow starts at the top (line 1) and continues down line numbers. To represent this our graph is drawn as a dendrogram type structure. That is all elements with the same depth in the tree are drawn on the same line. This graph shows all possible flows that the program can take. If-Else statements are represented as a branching in the path of the control flow. Loops are represented like if statements as a branching but they also have a edge going back up the graph. The ends of loops are the only statements that link up the graph. Linking up the graph is of course a problem for a dendrogram type layout. While our graph is almost a tree in layout it is not quite. The fact that some nodes link upwards in the graph means that a particular node may have multiple parents. To get around this fact we assume that the depth of any given node is it s depth not counting looping. With out accounting for looping we can get an accurate depth of all nodes, place them in a dendrogram, and then draw the missing links. 2.6 Generating the Tree The first step in generating the tree is a parser. This parser reads in the user s code and generates a tree data structure from it. Each piece of this structure has a type, code, and children that it points to. Because this parser runs in real time in javascript it needs to be relatively fast for it to be usable. For this reason I used a parsing expression grammar instead of a context

5 DUSTIN RHODES CMPS261 PROJECT PROPOSAL 5 free grammar. The grammar only captures a tiny portion of javascript so the increased complexity of writing the parser as a PEG instead of a CFG was not large. However, because a PEG parser has no ambiguity like a CFG it can run in much faster time. While in the general case for analysing natural language it is still slow for much computer code it runs in O(n) time. As the parser reads through the users code it is generating the structure of the graph. There are however some differences in what the parser outputs and what the final graph shows. The first of these is if statements. An if statement has three children in this part of generation. It has a true child, a false child, and an after child. The true child is accessed if the statement in the if statement is true (this is stored as the code variable), the false is accessed if the if is false (this is the else portion if it exists), and the after child later gets pushed down so that the last statement in the if links to the after portion. Because the parser works in order it does not know at the time of parsing the if what the if s last child will be so it stores the after statment for later use. In the same manner of if statements loops also store the after portion in their own node for the parser portion of the code. The difference here is that loops just have a true child and an after child. There is no false child. The nodes created for while loops and for loops are identical after this stage so it is also the parsers job to convert for loops into a before code node, a loop node, and a code node that is executed at the end of the loop. Finally, the simplest change is the fact that in the parser each line of code receives it s own node. In the final graph this just leads to clutter so all code nodes which appear consecutively are combined into one node. This is easily accomplished by just making the link in that of the first nodes, the children that of the last nodes, and the code block that of all the code blocks added together. Now that the parser s work is done the code runs a couple of conversion methods on the tree that the parser outputs to fix the changes in what the parser outputs to what the user sees. After these have all been run we need to format the tree for display with d3. Because our graph is not technically a tree we can not give it to the dendrogram layout to layout automatically. We must compute depths ourselves in the way given earlier in the paper. After computing depths for each node we can set the appropriate y positions of each node using their depths. From here it is an easy task to set x positions such that true results appear to the left of false results. In order to create the graph code does not need to be completely syntactically correct. Only follow proper rules for creating ifs and loops. However, on the next step the user will run into problems if there are errors in the code. 2.7 Coloring the Tree Besides building a tree from the users code, the user is allowed to input specific values for their input variables and to see how their source tree is executed. Because, in building the tree our parser did not evaluate code it is perfectly possible that buggy code can generate a tree. However since this step must actually execute code in order to decide reachability it can not be run on buggy code. If buggy code is used a partial coloring of the graph will be outputted. This can be helpful for a user because they will be able to see what node the program stopped executing in and look for a bug around that area. In order to correctly color the tree the program first sets the variables that the user gives in the variables box. This box can be used by the user to set the input values of variables to be whatever they want so that they can test the graph on different inputs. After these variables are set a function is called on the root of the graph. This function calls exec on the code of the node, increments it s executed count by 1, and then calls the function on one of it s children. On a standard node with only one child that child is executed next. If the node is an if or while statement then the result of the exec statement is saved and used to decide which of the children to visit. Looping back up to the top of a loop is

6 DUSTIN RHODES CMPS261 PROJECT PROPOSAL 6 handled naturally because the only child of the bottom element of a loop is the top of the loop. At some point a node will have no children to visit and at that point we stop and are finished with our colouring. At this point our graph is complete and all the data is ready to be displayed so we give our graph data structure to d3 to display. 2.8 Reading the Graph On this graph nodes represent sections of code while links represent which code will possibly be executed next. For instance an if statement looks like the following (notice the green outlining)... The top node is executed and if it is found to be true then execution continues down along the green path. If the code is false execution instead follows down the red path and to the right. In general true statements stay to the left and follow green paths while false statements are shown on the right down red paths. That means that if all branches in your program evaluate to true the program will take a path straight down along the left hand side. This was chosen under the assumption that in general people assume a true if to be the default behaviour. While this is clearly not always the case it seemed more so then assumeing false to be the default. Here is an example of a while loop... As you can see it is structurally very similar to an if statement. It has two paths left and right with true being on the left and false being on the right. Unlike an if statement if the program takes the true path it will invariable loop back up to the top of the loop. This is shown by the purple connector going up. All connections which go up the tree are shown in purple and are shown as an arced line instead of a curve like the other paths. This is to prevent overlap as multiple statements can jump up to the same spot in code. To distinguish the node itself from an if node there are two things. First it is labelled to the left of it as a WHILE instead of as an IF. In addition to this the node is outlined in purple instead of green. Green is used for ifs, purple for loops, and blue for all other sections of code. To determine which nodes have been reached with the given inputs we look to the fill colors of the nodes. All nodes start out with a white fill and they keep this white fill if the node is not reached by the code. However if the node is reached it receives a yellow to red color. A pure yellow node will have been executed once while a pure red node will have been executed more then any other node. All the other nodes are coloured on a linear scale between these to. This allows for the user to easily see at a glance which nodes have or have not been reached and also lets them know which parts of their programs are running most often. 3 WHAT S NEW While other recent code visualization techniques have used animation to show a program executing this implementation uses a single image to show the entire execution path. While this gives you much less space to impart all the necessary information it does have a large advantage. While an animation must be generated and then watched my image can be updated as a user edits their code. This mean that if a user is using this visualization to debug their work then they can make changes and see these changes in real time, a case where an animation would not work. For example if a user is attempting to see if a given section of code ever executes they can generate a graph for their function and then try out various inputs. When they try a new input the graph will automatically recolor nodes to show which ones have been reached. This can allow them to very quickly find if

7 DUSTIN RHODES CMPS261 PROJECT PROPOSAL 7 a given section is ever executed for a large array of inputs. If they find that that section is never executed simply changing the code will automatically produce a new graph where new inputs can be tried. 4 WHAT S NEXT So far all the work on this visualization has been on the program visualization side of things. As with most program visualization tools it is easy to see how the program could be modified to work in a visual programming way. In the current program if a user wishes to change her code she must edit the source code that is being input into the viz. At this point the visualization will update. It would be nicer if the user could edit their code directly in the visualization and these changes would be pushed back to the source code. Of more interest but also significantly more complicated it would be interesting if a user could edit the structure of the graph and have these structural changes be echoed back in source code. For example a user could create an edge between two nodes on the graph and give a condition on which this edge should be travelled. This change could then be pushed back to the code. Something like this would allow a user to build up an entire algorithm visually and not just edit an existing one. Beyond making the program a visual programming tool there are a number of ways that the visualization could be improved. Most importantly the visualization is currently only useful for visualizing a single function. In the context of a larger program each function can be thought of as having it s own graph representing it. Then when a function call is executed that is represented as a link from that node to the called functions root node. In addition to that all leaf nodes of the called function will point back to the calling node in the original function. While the idea is simple enough this produces a very large and complicated graph. Navigation within the graph becomes much more of an issue as you can not simply read mostly top to bottom as in the current graph. Finally there are a number of smaller changes that could be made to make the graph representation more complete. At the moment break, continue, and try catch statements all effect the flow of a program but are not modelled in this graph. None are particularly difficult to model however. A break statement simply links to the false statement of the nearest loop node up from it, a continue statement simply links back up to the nearest loop node up from it, and a try catch functions very similarly to an if statement as far as program flow is concerned. 5 CONCLUSION This project hopes to be a simple to use program which can create dynamic control flow graphs to aid students learning computer science. As of now there are currently no other programs that do this. All products currently available are aimed at advanced users and do not allow for dynamic manipulation of input variables or code. Hopefully, this tool will allow for easier understanding of some of the most basic components of computer science. REFERENCES [1] Tim Dwyer, Edge Compression Techniques for Visualization of Dense Directed Graphs. December 2013 [2] Pak Chung Wong, Dynamic Visualization of Graphs with Extended Labels. Pacific Northwest National Laboratory [3] [4] [5] [6] Erkki Kaila, Effects, Experiences and Feedback from Studies of a Program Visualization Tool.December 2008 [7] Hundhausen, C.D., Douglas, S.A. and Stasko, J.D., A Metastudy of algorithm visualization effectiveness. Journal of Visual Languages and Computing year=2011, publisher=jeliot [8], Ben-Ari, Mordechai and Sutinen, Erkki and MyIIer, N and Garcia, AM and Bednarik, R and RoBling, G and HauBge, G and Pineau, A and Rongas, T and Levy, RBB and others, Jeliot [9] Sorva, Juha, Ville Karavirta, and Lauri Malmi, A review of generic program visualization systems for introductory programming education.. ACM Transactions on Computing Education [10] Eric Allen, Robert Cartwright, and Brian Stoler, DrJava: A lightweight pedagogic environment for Java. September 7, 2001 Presented at SIGCSE 2002

8 DUSTIN RHODES CMPS261 PROJECT PROPOSAL 8 [11] Philip J. Guo, Online Python Tutor: Embeddable Web-Based Program Visualization for CS Education. In Proceedings of the ACM Technical Symposium on Computer Science Education (SIGCSE), March [12] Glenn Rowe and Gareth Thorburn, VINCE an on-line tutorial tool for teaching introductory programming Dept of Applied Computing University of Dundee DUNDEE DD1 4HN

GSPIM: Graphical Visualization Tool for MIPS Assembly

GSPIM: Graphical Visualization Tool for MIPS Assembly GSPIM: Graphical Visualization Tool for MIPS Assembly Programming and Simulation Patrick Borunda Science University of Arizona pborunda@u.arizona.edu Chris Brewer Science University of Arizona brewer@u.arizona.edu

More information

Program Visualization for Programming Education Case of Jeliot 3

Program Visualization for Programming Education Case of Jeliot 3 Program Visualization for Programming Education Case of Jeliot 3 Roman Bednarik, Andrés Moreno, Niko Myller Department of Computer Science University of Joensuu firstname.lastname@cs.joensuu.fi Abstract:

More information

A tool to facilitate interactive and collaborative learning of execution flow and code for novice computer science students

A tool to facilitate interactive and collaborative learning of execution flow and code for novice computer science students Institution of Innovation, Design and Engineering A tool to facilitate interactive and collaborative learning of execution flow and code for novice computer science students Author: Robert Westerlund Examiner:

More information

PRODUCING AN EDUCATIONALLY EFFECTIVE AND USABLE TOOL FOR LEARNING, THE CASE OF JELIOT FAMILY

PRODUCING AN EDUCATIONALLY EFFECTIVE AND USABLE TOOL FOR LEARNING, THE CASE OF JELIOT FAMILY PRODUCING AN EDUCATIONALLY EFFECTIVE AND USABLE TOOL FOR LEARNING, THE CASE OF JELIOT FAMILY Andrés Moreno and Niko Myller, University of Joensuu Introduction Jeliot Family is a group of program visualization

More information

JAWAA: Easy Web-Based Animation from CS 0 to Advanced CS Courses

JAWAA: Easy Web-Based Animation from CS 0 to Advanced CS Courses JAWAA: Easy Web-Based Animation from CS 0 to Advanced CS Courses Ayonike Akingbade, Thomas Finley, Diana Jackson, Pretesh Patel, and Susan H. Rodger Department of Computer Science Duke University Durham,

More information

A General Framework for Overlay Visualization

A General Framework for Overlay Visualization Replace this file with prentcsmacro.sty for your meeting, or with entcsmacro.sty for your meeting. Both can be found at the ENTCS Macro Home Page. A General Framework for Overlay Visualization Tihomir

More information

Frances: A Tool For Understanding Code Generation

Frances: A Tool For Understanding Code Generation Frances: A Tool For Understanding Code Generation Tyler Sondag Dept. of Computer Science Iowa State University 226 Atanasoff Hall Ames, IA 50014 sondag@cs.iastate.edu Kian L. Pokorny Division of Computing

More information

PROGRAM VISUALIZATION: AN EXPLORATION OF GRAPH BASED VISUALIZATIONS TO ASSIST IN STUDENT LEARNING AND PROGRAMMATIC EVALUATION. A Thesis.

PROGRAM VISUALIZATION: AN EXPLORATION OF GRAPH BASED VISUALIZATIONS TO ASSIST IN STUDENT LEARNING AND PROGRAMMATIC EVALUATION. A Thesis. PROGRAM VISUALIZATION: AN EXPLORATION OF GRAPH BASED VISUALIZATIONS TO ASSIST IN STUDENT LEARNING AND PROGRAMMATIC EVALUATION A Thesis presented to the Faculty of California Polytechnic State University,

More information

Lifting the Hood of the Computer: * Program Animation with the Teaching Machine

Lifting the Hood of the Computer: * Program Animation with the Teaching Machine Lifting the Hood of the Computer: * Program Animation with the Teaching Machine Michael P. Bruce-Lockhart and Theodore S. Norvell Electrical and Computer Engineering Faculty of Engineering and Applied

More information

Selecting a Visualization System

Selecting a Visualization System 134 Third Program Visualization Workshop 1 Introduction Selecting a Visualization System Sarah Pollack, Mordechai Ben-Ari Department of Science Teaching, Weizmann Institute of Science, Israel moti.ben-ari@weizmann.ac.il

More information

TEACHING COMPUTER PROGRAMMING WITH PROGRAM ANIMATION

TEACHING COMPUTER PROGRAMMING WITH PROGRAM ANIMATION TEACHING COMPUTER PROGRAMMING WITH PROGRAM ANIMATION Theodore S. Norvell and Michael P. Bruce-Lockhart Electrical and Computer Engineering Faculty of Engineering and Applied Science Memorial University

More information

Voice Driven Animation System

Voice Driven Animation System Voice Driven Animation System Zhijin Wang Department of Computer Science University of British Columbia Abstract The goal of this term project is to develop a voice driven animation system that could take

More information

The Use of Computer Animation in Teaching Discrete Structures Course

The Use of Computer Animation in Teaching Discrete Structures Course The Use of Computer Animation in Teaching Discrete Structures Course Chi-Cheng Lin Mingrui Zhang Computer Science Department Winona State University Winona, Minnesota, MN 55987 {clin, mzhang}@winona.edu

More information

Advanced compiler construction. General course information. Teacher & assistant. Course goals. Evaluation. Grading scheme. Michel Schinz 2007 03 16

Advanced compiler construction. General course information. Teacher & assistant. Course goals. Evaluation. Grading scheme. Michel Schinz 2007 03 16 Advanced compiler construction Michel Schinz 2007 03 16 General course information Teacher & assistant Course goals Teacher: Michel Schinz Michel.Schinz@epfl.ch Assistant: Iulian Dragos INR 321, 368 64

More information

Matrix A Framework for Interactive Software Visualization

Matrix A Framework for Interactive Software Visualization Teknillinen korkeakoulu Tietotekniikan osasto Tietojenkäsittelyopin laboratorio B Helsinki University of Technology Department of Computer Science and Engineering Laboratory of Information Processing Science

More information

Animating Programs and Students in the Laboratory

Animating Programs and Students in the Laboratory Animating Programs and Students in the Laboratory James F. Korsh Paul S. LaFollette, Jr. Department of Computer and Information Sciences Temple University Philadelphia, PA 19122 Raghvinder Sangwan Department

More information

Debugging JavaScript and CSS Using Firebug. Harman Goei CSCI 571 1/27/13

Debugging JavaScript and CSS Using Firebug. Harman Goei CSCI 571 1/27/13 Debugging JavaScript and CSS Using Firebug Harman Goei CSCI 571 1/27/13 Notice for Copying JavaScript Code from these Slides When copying any JavaScript code from these slides, the console might return

More information

Using Hands-On Visualizations to Teach Computer Science from Beginning Courses to Advanced Courses

Using Hands-On Visualizations to Teach Computer Science from Beginning Courses to Advanced Courses Using Hands-On Visualizations to Teach Computer Science from Beginning Courses to Advanced Courses Susan H. Rodger Department of Computer Science Duke University Durham, NC 27705 rodger@cs.duke.edu Abstract

More information

Instructional Design Framework CSE: Unit 1 Lesson 1

Instructional Design Framework CSE: Unit 1 Lesson 1 Instructional Design Framework Stage 1 Stage 2 Stage 3 If the desired end result is for learners to then you need evidence of the learners ability to then the learning events need to. Stage 1 Desired Results

More information

MMGD0203 Multimedia Design MMGD0203 MULTIMEDIA DESIGN. Chapter 3 Graphics and Animations

MMGD0203 Multimedia Design MMGD0203 MULTIMEDIA DESIGN. Chapter 3 Graphics and Animations MMGD0203 MULTIMEDIA DESIGN Chapter 3 Graphics and Animations 1 Topics: Definition of Graphics Why use Graphics? Graphics Categories Graphics Qualities File Formats Types of Graphics Graphic File Size Introduction

More information

LOCATION-AWARE MOBILE LEARNING OF SPATIAL ALGORITHMS

LOCATION-AWARE MOBILE LEARNING OF SPATIAL ALGORITHMS LOCATION-AWARE MOBILE LEARNING OF SPATIAL ALGORITHMS Ville Karavirta Department of Computer Science and Engineering, Aalto University PO. Box 15400, FI-00076 Aalto, FINLAND ABSTRACT Learning an algorithm

More information

What a Novice Wants: Students Using Program Visualization in Distance Programming Course

What a Novice Wants: Students Using Program Visualization in Distance Programming Course Third Program Visualization Workshop 1 What a Novice Wants: Students Using Program Visualization in Distance Programming Course Osku Kannusmäki, Andrés Moreno, Niko Myller, and Erkki Sutinen Department

More information

Introducing PyLighter: Dynamic Code Highlighter

Introducing PyLighter: Dynamic Code Highlighter Introducing PyLighter: Dynamic Code Highlighter Michael G. Boland and Curtis Clifton Department of Computer Science and Software Engineering Rose-Hulman Institute of Technology 5500 Wabash Ave. Terre Haute,

More information

VisCG: Creating an Eclipse Call Graph Visualization Plug-in. Kenta Hasui, Undergraduate Student at Vassar College Class of 2015

VisCG: Creating an Eclipse Call Graph Visualization Plug-in. Kenta Hasui, Undergraduate Student at Vassar College Class of 2015 VisCG: Creating an Eclipse Call Graph Visualization Plug-in Kenta Hasui, Undergraduate Student at Vassar College Class of 2015 Abstract Call graphs are a useful tool for understanding software; however,

More information

EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS

EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS EVALUATING METRICS AT CLASS AND METHOD LEVEL FOR JAVA PROGRAMS USING KNOWLEDGE BASED SYSTEMS Umamaheswari E. 1, N. Bhalaji 2 and D. K. Ghosh 3 1 SCSE, VIT Chennai Campus, Chennai, India 2 SSN College of

More information

JustClust User Manual

JustClust User Manual JustClust User Manual Contents 1. Installing JustClust 2. Running JustClust 3. Basic Usage of JustClust 3.1. Creating a Network 3.2. Clustering a Network 3.3. Applying a Layout 3.4. Saving and Loading

More information

MultiExperiment Viewer Quickstart Guide

MultiExperiment Viewer Quickstart Guide MultiExperiment Viewer Quickstart Guide Table of Contents: I. Preface - 2 II. Installing MeV - 2 III. Opening a Data Set - 2 IV. Filtering - 6 V. Clustering a. HCL - 8 b. K-means - 11 VI. Modules a. T-test

More information

First Bytes Programming Lab 2

First Bytes Programming Lab 2 First Bytes Programming Lab 2 This lab is available online at www.cs.utexas.edu/users/scottm/firstbytes. Introduction: In this lab you will investigate the properties of colors and how they are displayed

More information

Self-adaptive e-learning Website for Mathematics

Self-adaptive e-learning Website for Mathematics Self-adaptive e-learning Website for Mathematics Akira Nakamura Abstract Keyword searching and browsing on learning website is ultimate self-adaptive learning. Our e-learning website KIT Mathematics Navigation

More information

Syllabus for CS 134 Java Programming

Syllabus for CS 134 Java Programming - Java Programming Syllabus Page 1 Syllabus for CS 134 Java Programming Computer Science Course Catalog 2000-2001: This course is an introduction to objectoriented programming using the Java language.

More information

Technical paper review. Program visualization and explanation for novice C programmers by Matthew Heinsen Egan and Chris McDonald.

Technical paper review. Program visualization and explanation for novice C programmers by Matthew Heinsen Egan and Chris McDonald. Technical paper review Program visualization and explanation for novice C programmers by Matthew Heinsen Egan and Chris McDonald Garvit Pahal Indian Institute of Technology, Kanpur October 28, 2014 Garvit

More information

CS 325 Computer Graphics

CS 325 Computer Graphics CS 325 Computer Graphics 01 / 25 / 2016 Instructor: Michael Eckmann Today s Topics Review the syllabus Review course policies Color CIE system chromaticity diagram color gamut, complementary colors, dominant

More information

An Internet Course in Software Development with C++ for Engineering Students

An Internet Course in Software Development with C++ for Engineering Students An Internet Course in Software Development with C++ for Engineering Students Yosef Gavriel, Robert Broadwater Department of Electrical and Computer Engineering Virginia Tech Session 3232 Abstract This

More information

Language-Independent Interactive Data Visualization

Language-Independent Interactive Data Visualization Language-Independent Interactive Data Visualization Alistair E. R. Campbell, Geoffrey L. Catto, and Eric E. Hansen Hamilton College 198 College Hill Road Clinton, NY 13323 acampbel@hamilton.edu Abstract

More information

Departamento de Investigación. LaST: Language Study Tool. Nº 143 Edgard Lindner y Enrique Molinari Coordinación: Graciela Matich

Departamento de Investigación. LaST: Language Study Tool. Nº 143 Edgard Lindner y Enrique Molinari Coordinación: Graciela Matich Departamento de Investigación LaST: Language Study Tool Nº 143 Edgard Lindner y Enrique Molinari Coordinación: Graciela Matich Noviembre 2005 Para citar este documento: Lindner, Edgard; Enrique Molinari,

More information

For Introduction to Java Programming, 5E By Y. Daniel Liang

For Introduction to Java Programming, 5E By Y. Daniel Liang Supplement H: NetBeans Tutorial For Introduction to Java Programming, 5E By Y. Daniel Liang This supplement covers the following topics: Getting Started with NetBeans Creating a Project Creating, Mounting,

More information

A First Set of Design Patterns for Algorithm Animation

A First Set of Design Patterns for Algorithm Animation Fifth Program Visualization Workshop 119 A First Set of Design Patterns for Algorithm Animation Guido Rößling CS Department, TU Darmstadt Hochschulstr. 10 64289 Darmstadt, Germany roessling@acm.org Abstract

More information

NakeDB: Database Schema Visualization

NakeDB: Database Schema Visualization NAKEDB: DATABASE SCHEMA VISUALIZATION, APRIL 2008 1 NakeDB: Database Schema Visualization Luis Miguel Cortés-Peña, Yi Han, Neil Pradhan, Romain Rigaux Abstract Current database schema visualization tools

More information

VISUAL ALGEBRA FOR COLLEGE STUDENTS. Laurie J. Burton Western Oregon University

VISUAL ALGEBRA FOR COLLEGE STUDENTS. Laurie J. Burton Western Oregon University VISUAL ALGEBRA FOR COLLEGE STUDENTS Laurie J. Burton Western Oregon University VISUAL ALGEBRA FOR COLLEGE STUDENTS TABLE OF CONTENTS Welcome and Introduction 1 Chapter 1: INTEGERS AND INTEGER OPERATIONS

More information

TEACHING INTRODUCTORY COMPUTER GRAPHICS WITH THE PROCESSING LANGUAGE

TEACHING INTRODUCTORY COMPUTER GRAPHICS WITH THE PROCESSING LANGUAGE TEACHING INTRODUCTORY COMPUTER GRAPHICS WITH THE PROCESSING LANGUAGE Dino Schweitzer, Jeff Boleng, Paul Graham United States Air Force Academy, CO 80840 dino.schweitzer@usafa.edu ABSTRACT Different approaches

More information

SuperViz: An Interactive Visualization of Super-Peer P2P Network

SuperViz: An Interactive Visualization of Super-Peer P2P Network SuperViz: An Interactive Visualization of Super-Peer P2P Network Anthony (Peiqun) Yu pqyu@cs.ubc.ca Abstract: The Efficient Clustered Super-Peer P2P network is a novel P2P architecture, which overcomes

More information

Parsing Technology and its role in Legacy Modernization. A Metaware White Paper

Parsing Technology and its role in Legacy Modernization. A Metaware White Paper Parsing Technology and its role in Legacy Modernization A Metaware White Paper 1 INTRODUCTION In the two last decades there has been an explosion of interest in software tools that can automate key tasks

More information

Visualizing Software Projects in JavaScript

Visualizing Software Projects in JavaScript Visualizing Software Projects in JavaScript Tim Disney Abstract Visualization techniques have been used to help programmers deepen their understanding of large software projects. However the existing visualization

More information

Teaching an Introductory Computer Science Sequence with Python

Teaching an Introductory Computer Science Sequence with Python Teaching an Introductory Computer Science Sequence with Python Bradley N. Miller Department of Computer Science Luther College Decorah, Iowa 52101 bmiller@luther.edu David L. Ranum Department of Computer

More information

International Journal of Software and Web Sciences (IJSWS) www.iasir.net

International Journal of Software and Web Sciences (IJSWS) www.iasir.net International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research) ISSN (Print): 2279-0063 ISSN (Online): 2279-0071 International

More information

1 Introduction. 2 Overview of the Tool. Program Visualization Tool for Educational Code Analysis

1 Introduction. 2 Overview of the Tool. Program Visualization Tool for Educational Code Analysis Program Visualization Tool for Educational Code Analysis Natalie Beams University of Oklahoma, Norman, OK nataliebeams@gmail.com Program Visualization Tool for Educational Code Analysis 1 Introduction

More information

VISUALIZING HIERARCHICAL DATA. Graham Wills SPSS Inc., http://willsfamily.org/gwills

VISUALIZING HIERARCHICAL DATA. Graham Wills SPSS Inc., http://willsfamily.org/gwills VISUALIZING HIERARCHICAL DATA Graham Wills SPSS Inc., http://willsfamily.org/gwills SYNONYMS Hierarchical Graph Layout, Visualizing Trees, Tree Drawing, Information Visualization on Hierarchies; Hierarchical

More information

A) What Web Browser do I need? B) Why I cannot view the most updated content? C) What can we find on the school website? Index Page Layout:

A) What Web Browser do I need? B) Why I cannot view the most updated content? C) What can we find on the school website? Index Page Layout: A) What Web Browser do I need? - Window 7 / Window 8.1 => Internet Explorer Version 9 or above (Best in Version 11+) Download Link: http://windows.microsoft.com/zh-hk/internet-explorer/download-ie - Window

More information

METHODOLOGIES FOR STUDIES OF PROGRAM VISUALIZATION

METHODOLOGIES FOR STUDIES OF PROGRAM VISUALIZATION Full paper ABSTRACT METHODOLOGIES FOR STUDIES OF PROGRAM VISUALIZATION Niko Myller & Roman Bednarik Department of Computer Science University of Joensuu PO Box 111, FI-80101 firstname.surname@cs.joensuu.fi

More information

CS1010 Programming Methodology A beginning in problem solving in Computer Science. Aaron Tan http://www.comp.nus.edu.sg/~cs1010/ 20 July 2015

CS1010 Programming Methodology A beginning in problem solving in Computer Science. Aaron Tan http://www.comp.nus.edu.sg/~cs1010/ 20 July 2015 CS1010 Programming Methodology A beginning in problem solving in Computer Science Aaron Tan http://www.comp.nus.edu.sg/~cs1010/ 20 July 2015 Announcements This document is available on the CS1010 website

More information

Visualising Java Data Structures as Graphs

Visualising Java Data Structures as Graphs Visualising Java Data Structures as Graphs John Hamer Department of Computer Science University of Auckland J.Hamer@cs.auckland.ac.nz John Hamer, January 15, 2004 ACE 2004 Visualising Java Data Structures

More information

An Interactive Tutorial System for Java

An Interactive Tutorial System for Java An Interactive Tutorial System for Java Eric Roberts Stanford University eroberts@cs.stanford.edu ABSTRACT As part of the documentation for its library packages, the Java Task Force (JTF) developed an

More information

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY

INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY INTERNATIONAL JOURNAL OF PURE AND APPLIED RESEARCH IN ENGINEERING AND TECHNOLOGY A PATH FOR HORIZING YOUR INNOVATIVE WORK A REVIEW ON THE USAGE OF OLD AND NEW DATA STRUCTURE ARRAYS, LINKED LIST, STACK,

More information

Outline. 1 Denitions. 2 Principles. 4 Implementation and Evaluation. 5 Debugging. 6 References

Outline. 1 Denitions. 2 Principles. 4 Implementation and Evaluation. 5 Debugging. 6 References Outline Computer Science 331 Introduction to Testing of Programs Mike Jacobson Department of Computer Science University of Calgary Lecture #3-4 1 Denitions 2 3 4 Implementation and Evaluation 5 Debugging

More information

Flash Tutorial Part I

Flash Tutorial Part I Flash Tutorial Part I This tutorial is intended to give you a basic overview of how you can use Flash for web-based projects; it doesn t contain extensive step-by-step instructions and is therefore not

More information

THE TOP TEN TIPS FOR USING QUALTRICS AT BYU

THE TOP TEN TIPS FOR USING QUALTRICS AT BYU THE TOP TEN TIPS FOR USING QUALTRICS AT BYU TIP #1: CREATING A SURVEY FROM A COPY AND COLLABORATING ON SURVEYS TIP #2: CREATING AND USING PANELS TIP #3: LIBRARIES AND HOW TO USE THEM TIP #4: BASIC SKIP

More information

Video, film, and animation are all moving images that are recorded onto videotape,

Video, film, and animation are all moving images that are recorded onto videotape, See also Data Display (Part 3) Document Design (Part 3) Instructions (Part 2) Specifications (Part 2) Visual Communication (Part 3) Video and Animation Video, film, and animation are all moving images

More information

A TOOL FOR DATA STRUCTURE VISUALIZATION AND USER-DEFINED ALGORITHM ANIMATION

A TOOL FOR DATA STRUCTURE VISUALIZATION AND USER-DEFINED ALGORITHM ANIMATION A TOOL FOR DATA STRUCTURE VISUALIZATION AND USER-DEFINED ALGORITHM ANIMATION Tao Chen 1, Tarek Sobh 2 Abstract -- In this paper, a software application that features the visualization of commonly used

More information

Before you can use the Duke Ambient environment to start working on your projects or

Before you can use the Duke Ambient environment to start working on your projects or Using Ambient by Duke Curious 2004 preparing the environment Before you can use the Duke Ambient environment to start working on your projects or labs, you need to make sure that all configuration settings

More information

Content management system (CMS) guide for editors

Content management system (CMS) guide for editors Content management system (CMS) guide for editors This guide is intended for content authors and editors working on the TfL website using the OpenText Web Site Management Server (RedDot) content management

More information

Week 2 Practical Objects and Turtles

Week 2 Practical Objects and Turtles Week 2 Practical Objects and Turtles Aims and Objectives Your aim in this practical is: to practise the creation and use of objects in Java By the end of this practical you should be able to: create objects

More information

White Paper: Designing Resourceful Graphical User Interfaces (GUIs) for Healthcare Applications

White Paper: Designing Resourceful Graphical User Interfaces (GUIs) for Healthcare Applications Accelerate Development Reduce Time to Product Automate Critical Tasks White Paper: Designing Resourceful Graphical User Interfaces (GUIs) for Healthcare Applications The ASHVINS GROUP, Inc. 6161 Blue Lagoon

More information

Hierarchical Data Visualization

Hierarchical Data Visualization Hierarchical Data Visualization 1 Hierarchical Data Hierarchical data emphasize the subordinate or membership relations between data items. Organizational Chart Classifications / Taxonomies (Species and

More information

Effective Features of Algorithm Visualizations

Effective Features of Algorithm Visualizations Effective Features of Algorithm Visualizations Purvi Saraiya, Clifford A. Shaffer, D. Scott McCrickard and Chris North Department of Computer Science Virginia Tech Blacksburg, VA 24061 {psaraiya shaffer

More information

NetBeans Profiler is an

NetBeans Profiler is an NetBeans Profiler Exploring the NetBeans Profiler From Installation to a Practical Profiling Example* Gregg Sporar* NetBeans Profiler is an optional feature of the NetBeans IDE. It is a powerful tool that

More information

ISSH 2011 ABM Track - Hands-on Exercise

ISSH 2011 ABM Track - Hands-on Exercise ISSH 2011 ABM Track - Hands-on Exercise Authors: Shawn Brown, University of Pittsburgh, stbrown@psc.edu John Grefenstette, University of Pittsburgh, gref@pitt.edu Nathan Stone, Pittsburgh Supercomputing

More information

A Tutorial on dynamic networks. By Clement Levallois, Erasmus University Rotterdam

A Tutorial on dynamic networks. By Clement Levallois, Erasmus University Rotterdam A Tutorial on dynamic networks By, Erasmus University Rotterdam V 1.0-2013 Bio notes Education in economics, management, history of science (Ph.D.) Since 2008, turned to digital methods for research. data

More information

(Refer Slide Time: 2:03)

(Refer Slide Time: 2:03) Control Engineering Prof. Madan Gopal Department of Electrical Engineering Indian Institute of Technology, Delhi Lecture - 11 Models of Industrial Control Devices and Systems (Contd.) Last time we were

More information

Monitoring, Tracing, Debugging (Under Construction)

Monitoring, Tracing, Debugging (Under Construction) Monitoring, Tracing, Debugging (Under Construction) I was already tempted to drop this topic from my lecture on operating systems when I found Stephan Siemen's article "Top Speed" in Linux World 10/2003.

More information

Augmenting software development with information scripting

Augmenting software development with information scripting Augmenting software development with information scripting Master Thesis Description Lukas Vogel luvogel@student.ethz.ch May 26, 2015 1 Introduction Today s large software projects are associated with

More information

Vanderbilt University School of Nursing. Running Scopia Videoconferencing from Windows

Vanderbilt University School of Nursing. Running Scopia Videoconferencing from Windows Vanderbilt University School of Nursing Running Scopia Videoconferencing from Windows gordonjs 3/4/2011 Table of Contents Contents Installing the Software... 3 Configuring your Audio and Video... 7 Entering

More information

CTutor. Tiago Aguiar tiago.afonso.aguiar@ist.utl.pt. Instituto Superior Técnico, Lisboa, Portugal November 2014

CTutor. Tiago Aguiar tiago.afonso.aguiar@ist.utl.pt. Instituto Superior Técnico, Lisboa, Portugal November 2014 CTutor Tiago Aguiar tiago.afonso.aguiar@ist.utl.pt Instituto Superior Técnico, Lisboa, Portugal November 2014 Abstract CTutor is a program visualization tool for the programming language, C. As the name

More information

Effectiveness of Program Visualization: A Case Study with the ViLLE Tool

Effectiveness of Program Visualization: A Case Study with the ViLLE Tool Journal of Information Technology Education: Volume 7, 2008 Innovations in Practice Effectiveness of Program Visualization: A Case Study with the ViLLE Tool Teemu Rajala Mikko-Jussi Laakso, Erkki Kaila,

More information

Introduction to the course, Eclipse and Python

Introduction to the course, Eclipse and Python As you arrive: 1. Start up your computer and plug it in. 2. Log into Angel and go to CSSE 120. Do the Attendance Widget the PIN is on the board. 3. Go to the Course Schedule web page. Open the Slides for

More information

Programming Languages & Tools

Programming Languages & Tools 4 Programming Languages & Tools Almost any programming language one is familiar with can be used for computational work (despite the fact that some people believe strongly that their own favorite programming

More information

HTML5 Data Visualization and Manipulation Tool Colorado School of Mines Field Session Summer 2013

HTML5 Data Visualization and Manipulation Tool Colorado School of Mines Field Session Summer 2013 HTML5 Data Visualization and Manipulation Tool Colorado School of Mines Field Session Summer 2013 Riley Moses Bri Fidder Jon Lewis Introduction & Product Vision BIMShift is a company that provides all

More information

Chapter 12 Programming Concepts and Languages

Chapter 12 Programming Concepts and Languages Chapter 12 Programming Concepts and Languages Chapter 12 Programming Concepts and Languages Paradigm Publishing, Inc. 12-1 Presentation Overview Programming Concepts Problem-Solving Techniques The Evolution

More information

A Visualisation Tool for the Programming Process

A Visualisation Tool for the Programming Process A Visualisation Tool for the Programming Process Charles Boisvert School of Computing & Info. Systems, Norwich City College Ipswich road, Norwich NR2 2LJ, UK (+44) 01603 77 3203 cboisver@ccn.ac.uk ABSTRACT

More information

An Extensible Framework for Providing Dynamic Data Structure Visualizations in a Lightweight IDE

An Extensible Framework for Providing Dynamic Data Structure Visualizations in a Lightweight IDE An Extensible Framework for Providing Dynamic Data Structure Visualizations in a Lightweight IDE T. Dean Hendrix, James H. Cross II, and Larry A. Barowski Computer Science and Software Engineering Auburn

More information

Investment Analysis using the Portfolio Analysis Machine (PALMA 1 ) Tool by Richard A. Moynihan 21 July 2005

Investment Analysis using the Portfolio Analysis Machine (PALMA 1 ) Tool by Richard A. Moynihan 21 July 2005 Investment Analysis using the Portfolio Analysis Machine (PALMA 1 ) Tool by Richard A. Moynihan 21 July 2005 Government Investment Analysis Guidance Current Government acquisition guidelines mandate the

More information

Recovering Business Rules from Legacy Source Code for System Modernization

Recovering Business Rules from Legacy Source Code for System Modernization Recovering Business Rules from Legacy Source Code for System Modernization Erik Putrycz, Ph.D. Anatol W. Kark Software Engineering Group National Research Council, Canada Introduction Legacy software 000009*

More information

B.A IN GRAPHIC DESIGN

B.A IN GRAPHIC DESIGN COURSE GUIDE B.A IN GRAPHIC DESIGN GRD 126 COMPUTER GENERATED GRAPHIC DESIGN I UNIVERSITY OF EDUCATION, WINNEBA DEPARTMENT OF GRAPHIC DESIGN Copyright Acknowledgements The facilitating agent of the course

More information

RuleBender 1.1.415 Tutorial

RuleBender 1.1.415 Tutorial RuleBender 1.1.415 Tutorial Installing and Launching RuleBender Requirements OSX Getting Started Linux Getting Started Windows Getting Started Using the Editor The Main Window Creating and Opening Files

More information

GCE APPLIED ICT A2 COURSEWORK TIPS

GCE APPLIED ICT A2 COURSEWORK TIPS GCE APPLIED ICT A2 COURSEWORK TIPS COURSEWORK TIPS A2 GCE APPLIED ICT If you are studying for the six-unit GCE Single Award or the twelve-unit Double Award, then you may study some of the following coursework

More information

Chapter 13: Program Development and Programming Languages

Chapter 13: Program Development and Programming Languages 15 th Edition Understanding Computers Today and Tomorrow Comprehensive Chapter 13: Program Development and Programming Languages Deborah Morley Charles S. Parker Copyright 2015 Cengage Learning Learning

More information

High level code and machine code

High level code and machine code High level code and machine code Teacher s Notes Lesson Plan x Length 60 mins Specification Link 2.1.7/cde Programming languages Learning objective Students should be able to (a) explain the difference

More information

In: Proceedings of RECPAD 2002-12th Portuguese Conference on Pattern Recognition June 27th- 28th, 2002 Aveiro, Portugal

In: Proceedings of RECPAD 2002-12th Portuguese Conference on Pattern Recognition June 27th- 28th, 2002 Aveiro, Portugal Paper Title: Generic Framework for Video Analysis Authors: Luís Filipe Tavares INESC Porto lft@inescporto.pt Luís Teixeira INESC Porto, Universidade Católica Portuguesa lmt@inescporto.pt Luís Corte-Real

More information

2010-2011 Assessment for Master s Degree Program Fall 2010 - Spring 2011 Computer Science Dept. Texas A&M University - Commerce

2010-2011 Assessment for Master s Degree Program Fall 2010 - Spring 2011 Computer Science Dept. Texas A&M University - Commerce 2010-2011 Assessment for Master s Degree Program Fall 2010 - Spring 2011 Computer Science Dept. Texas A&M University - Commerce Program Objective #1 (PO1):Students will be able to demonstrate a broad knowledge

More information

Towards Enhanced Presentation-based Teaching of Programming An Interactive Source Code Visualisation Approach

Towards Enhanced Presentation-based Teaching of Programming An Interactive Source Code Visualisation Approach Towards Enhanced Presentation-based Teaching of Programming An Interactive Source Code Visualisation Approach Reinout Roels, Paul Meştereagă and Beat Signer Web & Information Systems Engineering Lab, Vrije

More information

Sales Performance Management Using Salesforce.com and Tableau 8 Desktop Professional & Server

Sales Performance Management Using Salesforce.com and Tableau 8 Desktop Professional & Server Sales Performance Management Using Salesforce.com and Tableau 8 Desktop Professional & Server Author: Phil Gilles Sales Operations Analyst, Tableau Software March 2013 p2 Executive Summary Managing sales

More information

Using Web-based Tools to Enhance Student Learning and Practice in Data Structures Course

Using Web-based Tools to Enhance Student Learning and Practice in Data Structures Course Using Web-based Tools to Enhance Student Learning and Practice in Data Structures Course 1. Introduction Chao Chen January 2014 The purpose of this project is to enhance student learning and practice in

More information

Towards a Framework for Generating Tests to Satisfy Complex Code Coverage in Java Pathfinder

Towards a Framework for Generating Tests to Satisfy Complex Code Coverage in Java Pathfinder Towards a Framework for Generating Tests to Satisfy Complex Code Coverage in Java Pathfinder Matt Department of Computer Science and Engineering University of Minnesota staats@cs.umn.edu Abstract We present

More information

Fall 2012 Q530. Programming for Cognitive Science

Fall 2012 Q530. Programming for Cognitive Science Fall 2012 Q530 Programming for Cognitive Science Aimed at little or no programming experience. Improve your confidence and skills at: Writing code. Reading code. Understand the abilities and limitations

More information

High School Algebra Reasoning with Equations and Inequalities Solve equations and inequalities in one variable.

High School Algebra Reasoning with Equations and Inequalities Solve equations and inequalities in one variable. Performance Assessment Task Quadratic (2009) Grade 9 The task challenges a student to demonstrate an understanding of quadratic functions in various forms. A student must make sense of the meaning of relations

More information

Programming in Access VBA

Programming in Access VBA PART I Programming in Access VBA In this part, you will learn all about how Visual Basic for Applications (VBA) works for Access 2010. A number of new VBA features have been incorporated into the 2010

More information

Chapter 13: Program Development and Programming Languages

Chapter 13: Program Development and Programming Languages Understanding Computers Today and Tomorrow 12 th Edition Chapter 13: Program Development and Programming Languages Learning Objectives Understand the differences between structured programming, object-oriented

More information

Parallelization: Binary Tree Traversal

Parallelization: Binary Tree Traversal By Aaron Weeden and Patrick Royal Shodor Education Foundation, Inc. August 2012 Introduction: According to Moore s law, the number of transistors on a computer chip doubles roughly every two years. First

More information

Link Prediction in Social Networks

Link Prediction in Social Networks CS378 Data Mining Final Project Report Dustin Ho : dsh544 Eric Shrewsberry : eas2389 Link Prediction in Social Networks 1. Introduction Social networks are becoming increasingly more prevalent in the daily

More information

GUI and Web Programming

GUI and Web Programming GUI and Web Programming CSE 403 (based on a lecture by James Fogarty) Event-based programming Sequential Programs Interacting with the user 1. Program takes control 2. Program does something 3. Program

More information

Security visualisation

Security visualisation Security visualisation This thesis provides a guideline of how to generate a visual representation of a given dataset and use visualisation in the evaluation of known security vulnerabilities by Marco

More information