Animating Programs and Students in the Laboratory

Size: px
Start display at page:

Download "Animating Programs and Students in the Laboratory"

Transcription

1 Animating Programs and Students in the Laboratory James F. Korsh Paul S. LaFollette, Jr. Department of Computer and Information Sciences Temple University Philadelphia, PA Raghvinder Sangwan Department of Mathematics and Computer Science Shippensburg University Shippensburg, PA Abstract Program animation is a well-recognized tool for the enhancement of understanding of algorithms and data structures. The difficulty of creating animations, however, has limited the use of animation by students. This is especially so in introductory courses where the students need to concentrate on the material to be learned and should not be distracted by irrelevant details of an animation system. We have developed a prototype system which allows students (or instructors) to create C/C++ programs which are self-animating. Use of this system does not require learning any extra programming skills. Users need only specify which variables and data structures they want to be animated. This is done by declaring those elements of the program to be selfanimating types. Typically, this would mean substituting INT for int. Similar changes allow for the self-animation of arrays, structs, and pointers. At present, our implementation supports ints and types derived from ints using pointers, arrays, and structs. The resulting C/C++ program appears in an integrated display environment that provides animation of the selected data items, and also shows the source code with the currently animated instruction highlighted. The environment also organizes program information in a way that is meaningful to the programmer, and allows the programmer to control the degree of detail that he or she wants to see. Our experience has been that students are excited and enthusiastic about this technique. This paper will briefly describe the system and, by using examples, show the ease with which students or instructors can create animations in the laboratory or classroom. Introduction In this paper, we briefly describe our prototype system [14,15] which allows students (or instructors) to create C/C++ programs which are self-animating. We will demonstrate that the system does not require learning an additional programming language and that users need only specify those variables and data structures that they want animated. The resulting self-animating program appears in an integrated display environment which shows the source code with the currently animated instruction highlighted and presents the animated variables and data structures selected by the user, We will show how a student might use the system, and how an instructor might create an animated demonstration. Unlike visual debuggers and program development systems [4,7,8,9,11,12], our system displays the dynamics of a program and the context in which changes to data structures occur. Other software visualization systems [1,2,6,13,16] require that a programmer not only understands the program being animated, but also that he or she be directly involved in constructing the animation itself. The benefits of software visualization can be realized more easily if the task of creating visual representations of programs is transparent. Programmers need only concern themselves with what is to be visualized and not how the visualization is to be accomplished. Others have used the same philosophy [3,5], but our system uses a different approach. It requires only simple syntactic changes, almost entirely in declarations, to standard code. Example from a First Programming Course Consider the following simple program, which might be used, in a first programming course. #include <stdlib.h>

2 #include <iostream.h> int values[10]; int add(int v[], int size); void main() const int sentinel = 0; int temp, sum; int i, count; i = 0; cout << Enter a number ; cin >> temp; while ((temp!= sentinel) && (i < 10)) values[i] = temp; i++; cout << Enter a number ; cin >> temp; count = i; sum = add(values, count); cout << Sum is << sum; int add(int v[], int size) int total, k; for (k=0; k < size; i++) total = total + v[i]; return total; Figure 1 shows the display just as the highlighted while condition is being evaluated for the first time. You can see in the CODE pane the necessary modifications that have been made to obtain selfanimation. #include vc++.h is a statement required by our system. The other changes involve the decision to make the array values, and the variables i, count, sum, sentinel, total, and k self-animating, as well as the parameters of the function sum. Changing the "int" to "INT" in the respective declarations did this. No other changes were necessary to the source code. In addition, the title bar of the CODE pane indicates that the function main() is currently being executed. Notice that the window displays global and local variables in separate panes. It also shows dynamically created variables and function parameters in separate panes. One last pane shows the contents of the call stack. Thus, the global array, values, appears in the GLOBALS pane, while the variables local to main() appear in the LOCALS window. Because the function add() is not being executed currently, its local variables are not visible, since the LOCALS pane always displays the local variables of the function currently executing. The first two locations of the array values are visible and the other entries can be seen by using the scroll bar associated with the array. Because none of the elements of this array have been initialized, a "?" is displayed in each entry. The same is true for the local variables count and sum. The constant sentinel contains its initialized value, 0, and i was set to 0 by the assignment statement. The variable temp was set by the input statement cin >> temp. The OPEATIONS pane shows the evaluation of the first part of the while condition. Just prior to this, the values of temp and sentinel in the LOCALS pane would have been seen flowing into the OPERATIONS pane. The result of the evaluation, true, also appears. In general, an operation involving one or more self-animating variables will be displayed similarly in the OPERATIONS pane. In each case, the operands will be seen flowing from their various memory cells in appropriate panes into the OPERATIONS pane, and the result of the evaluation will flow back to memory cells when the result is assigned to a variable. Figure 2 represents the situation just as the call to the function add has been initiated. The OPERATIONS pane shows the actual value of the parameter count from main(), and the PARAMETERS pane shows the corresponding value of the formal parameter size. This value would have been seen flowing from the OPERATIONS pane. The function being executed, add, appears highlighted at the top of the CALL STACK pane. Parameter passing has been identified as an especially troublesome area for students [10]. In Figure 3, the highlighted statement total = total + v[k]is being executed. The OPERATIONS pane shows the operation currently being executed (+), its operands total and [3]", and its result, 28. As before, the values in these operands would have been seen flowing from their panes to indicate where they came from. Next the system would animate the assignment of the value 28 to the memory cell total in the LOCAL pane. In Figure 4, the call stack shows that we have returned to main().the return value, 58, appears in the OPERATIONS pane. There is also an unlabelled

3 variable in the LOCAL pane containing the value 58. This is the temporary memory cell which the compiler creates unbeknownst to the programmer and which holds the return value. This unlabelled memory cell, along with sum, will be the operands of the assignment statement that is about to be animated. Figure 4 also demonstrates the options window. Clicking on the options button activated this. It is used to control the amount of detail that is displayed as the program is animated. As shown, the operations button has been selected, allowing the user to select which operations (+, -, etc.) will be animated. Similarly the functions button allows the user not to animate selected subroutines. In this case, main() or add() could have been disabled. The views button allows the user to decide which panes will appear. For example, in animating a tree that is built in the heap, it is sometimes useful to display only the HEAP pane[15]. The miscellaneous button controls other features. We have not discussed the use of color coding or additional highlighting. Neither have we demonstrated the animation of pointers and pointer oriented data structures. These techniques are provided by the system but are difficult to discuss in a static medium such as this paper. At present our implementation supports ints, and types derived from ints using pointers, arrays, and structs. Discussion We hope that it is clear that a student can learn directly from using this system in the creation or the running of a program, and that an instructor can use this system to demonstrate a program. By making careful use of the ability to control which panes, operators, functions, and memory cells are animated, it is possible to either watch an overview of the program in action, or to focus in, for instance, on a single loop control variable. Thus, in the beginning laboratory the student can investigate in detail the behavior of loops and other control structures while in a more advanced laboratory the student can watch the effect of dynamic interaction between algorithms and complex data structures. It is impossible to see from our figures the way in which the system brings to life a program in execution. The context in which changes to variables and data structures occur becomes apparent and tangible. Not only are updated variables and data structures displayed in context, but also dynamic changes in the morphology of complex linked data structures become apparent as they are animated. An example of an AVL tree being created appears in Sangwan, Korsh and LaFollette [15]. We have exposed our system informally to colleagues and students who have uniformly wanted to have this system available for their use in both elementary programming and more advanced algorithm classes. Indeed, the authors in preparing this elementary example were able to observe from the animation itself that they had made a number of errors in the code, such as failing to read a new data value at the bottom of the while loop. References [1] Brown, M. Algorithm Animation: An ACM Distinguished Dissertation The MIT Press, Cambridge, MA, [2] Brown, M. "Zeus: A System for Algorithm Animation and Multi-View Editing." In Proceedings of the IEEE Workshop on Visual Languages, Kobe, Japan, October 1991, 4-9. [3] Carlson, P., Burnett, M., and Cadiz J. "A Seamless Integration of Algorithm Animation into a Visual Programming Language." In: ACM Proceedings of AVI'96: International Workshop on Advanced Visual Interfaces, Gubbio, Italy, May [4] Cox, P., Smedley, T, Garden, J., and McManus, M. "Experiences with Visual Programming In a Specific Domain" Visual Language Challenge ' IEEE Symposium on Visual Languages, Capri, Italy, [5] Haajanen, J., Personius, M., Sutinen, E., Tarhio, J., Terasvirta, T., and Vanninen, P. "Animation of User Algorithms on the Web." Proceedings of VL'97, IEEE Symposium of Visual Languages, IEEE 1997, [6] Heltulla, E., Hyrskykari, A., and Raiha, K. J. "Graphical Specification of Algorithm Animations with Aladdin." Proceedings of the International Conference on System Sciences, Volume II, Software Track, Hawaii, 1989, CS Press, Los Alamitos, CA, [7] Myers, B., "Incense: A System for Displaying Data Structures." Computer Graphics: SIGRAPH 83 17, 3, 1983, [8] Myers, B., Chandok, R., and Sareen, A. Automatic Data Visualization for Novice Programmers. In: IEEE Computer Society Workshop on Visual Languages, Pittsburgh, PA, October 1988,

4 [9] Moher, T. PROVIDE: A Process Visualization and Debugging Environment. IEEE Transactions on Software Engineering 14, 6, 1988, [10] Naps, T. and Stenglein, J. "Tools for Visual Exploration of Scope and Parameter Passing in a Programming Languages Course." SIGCSE Bulletin, March 1996, [11] Reiss, S. "Working in the Garden environment for conceptual programming." IEEE Software Vol. 4(6), November 1987, [12] Reiss, S. "PECAN: Program development Systems that support multiple views." IEEE Transactions on Software Engineering, SE-11(3):276:85, March [13] Roman, G., Cox, K., Wilcox, C., and Plun, J. "Pavane: A System for Declarative Visualization of Concurrent Computations." Journal of Visual Languages and Computing 3, 1992, [14] Sangwan, R. "Algorithm Animation Using Self- Visualizing C." Ph.D. Dissertation Temple University May [15] Sangwan, R., Korsh, J., and LaFollette, P. "A System for Program Visualization in the Classroom." Proceedings of the twenty-ninth SIGCSE Technical Symposium on Computer Science Education, Feb ACM: [16] Stasko, J. "Tango: A Framework and System for Algorithm Animation." IEEE Computer 23, 9, 1990, Figure 1

5 Figure 2 Figure 3.

6 Figure 4

A System for Program Visualization in the Classroom

A System for Program Visualization in the Classroom A System for Program Visualization in the Classroom Raghvinder S. Sangwan Department of Mathematics and Computer Science Shippensburg University Shippensburg, PA 7257 James F. Kksh Pzkl S. LaFollette,

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

A SEAMLESS INTEGRATION OF INTO A VISUAL PROGRAMMING LANGUAGE

A SEAMLESS INTEGRATION OF INTO A VISUAL PROGRAMMING LANGUAGE To appear in ACM Proceedings of AVI'96: International Workshop on Advanced Visual Interfaces, Gubbio, Italy, May 27-29, 1996. A SEAMLESS INTEGRATION OF ALGORITHM ANIMATION INTO A VISUAL PROGRAMMING LANGUAGE

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

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

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

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

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

An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases

An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases Paul L. Bergstein, Priyanka Gariba, Vaibhavi Pisolkar, and Sheetal Subbanwad Dept. of Computer and Information Science,

More information

Visualization/ Animation of Programs based on Abstract Representations and Formal Mappings

Visualization/ Animation of Programs based on Abstract Representations and Formal Mappings Visualization/ Animation of Programs based on Abstract Representations and Formal Mappings Maria Joao Varanda Pereira Polithecnic Institute of Bragan~a - Portugal mjoao@ipb.pt Pedro Range! Henriques University

More information

ADVANCED SCHOOL OF SYSTEMS AND DATA STUDIES (ASSDAS) PROGRAM: CTech in Computer Science

ADVANCED SCHOOL OF SYSTEMS AND DATA STUDIES (ASSDAS) PROGRAM: CTech in Computer Science ADVANCED SCHOOL OF SYSTEMS AND DATA STUDIES (ASSDAS) PROGRAM: CTech in Computer Science Program Schedule CTech Computer Science Credits CS101 Computer Science I 3 MATH100 Foundations of Mathematics and

More information

DESIGNING WEB LABS FOR TEACHING SECURITY CONCEPTS ABSTRACT

DESIGNING WEB LABS FOR TEACHING SECURITY CONCEPTS ABSTRACT DESIGNING WEB LABS FOR TEACHING SECURITY CONCEPTS ABSTRACT Security education is critical in today s cyber threat environment. Many schools have investigated different approaches to teaching fundamental

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

Program Animation Based on the Roles of Variables

Program Animation Based on the Roles of Variables Best Paper Award Program Animation Based on the Roles of Variables Jorma Sajaniemi Department of Computer Science University of Joensuu Marja Kuittinen Department of Computer Science University of Joensuu

More information

HAVING a good mental model of how a

HAVING a good mental model of how a 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

More information

A Real-time Monitoring System for Programming Education using a Generator of Program Animation Systems

A Real-time Monitoring System for Programming Education using a Generator of Program Animation Systems 12 JOURNAL OF COMPUTERS, VOL. 2, NO. 3, MAY 2007 A Real-time Monitoring System for Programming Education using a Generator of Program Animation Systems Youzou Miyadera Tokyo Gakugei University / Division

More information

Software Visualization Tools for Component Reuse

Software Visualization Tools for Component Reuse Software Visualization Tools for Component Reuse Craig Anslow Stuart Marshall James Noble Robert Biddle 1 School of Mathematics, Statistics and Computer Science, Victoria University of Wellington, New

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

Glossary of Object Oriented Terms

Glossary of Object Oriented Terms Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction

More information

An Approach to Automatic Detection of Variable Roles in Program Animation

An Approach to Automatic Detection of Variable Roles in Program Animation 86 Third Program Visualization Workshop An Approach to Automatic Detection of Variable Roles in Program Animation 1 Introduction Petri Gerdt, Jorma Sajaniemi University of Joensuu, Finland {Petri.Gerdt

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

How a Visualization Tool Can Be Used - Evaluating a Tool in a Research & Development Project

How a Visualization Tool Can Be Used - Evaluating a Tool in a Research & Development Project 12 th Workshop of the Psychology of Programming Interest Group, Cozenza Italy, April 2000 How a Visualization Tool Can Be Used - Evaluating a Tool in a Research & Development Project Matti Lattu (1 Jorma

More information

RECEPTIVENESS OF EDUCATIONAL MULTIMEDIA TOOLS IN COMPUTER PROGRAMMING EDUCATION

RECEPTIVENESS OF EDUCATIONAL MULTIMEDIA TOOLS IN COMPUTER PROGRAMMING EDUCATION RECEPTIVENESS OF EDUCATIONAL MULTIMEDIA TOOLS IN COMPUTER PROGRAMMING EDUCATION Nouf Albarakati 1, Ibrahim Albidewi 2 1,2 College of Computer Science and Information Technology King Abdul Aziz University

More information

VIP, a Visual Interpreter for Learning Introductory Programming with C++

VIP, a Visual Interpreter for Learning Introductory Programming with C++ VIP, a Visual Interpreter for Learning Introductory Programming with C++ Antti T. Virtanen Tampere University of Technology Institute of Software Systems Tampere, Finland antti.virtanen@tut.fi Essi Lahtinen

More information

Teaching Roles of Variables in Elementary Programming Courses

Teaching Roles of Variables in Elementary Programming Courses Teaching Roles of Variables in Elementary Programming Courses Marja Kuittinen University of Joensuu Department of Computer Science P.O.Box 111 FIN-80101 Joensuu, Finland Marja.Kuittinen@cs.joensuu.fi Jorma

More information

C Compiler Targeting the Java Virtual Machine

C Compiler Targeting the Java Virtual Machine C Compiler Targeting the Java Virtual Machine Jack Pien Senior Honors Thesis (Advisor: Javed A. Aslam) Dartmouth College Computer Science Technical Report PCS-TR98-334 May 30, 1998 Abstract One of the

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

CS 241 Data Organization Coding Standards

CS 241 Data Organization Coding Standards CS 241 Data Organization Coding Standards Brooke Chenoweth University of New Mexico Spring 2016 CS-241 Coding Standards All projects and labs must follow the great and hallowed CS-241 coding standards.

More information

Teaching and Learning with BlueJ: an Evaluation of a Pedagogical Tool

Teaching and Learning with BlueJ: an Evaluation of a Pedagogical Tool Issues in Informing Science and Information Technology Teaching and Learning with BlueJ: an Evaluation of a Pedagogical Tool Kelsey Van Haaster and Dianne Hagan Monash University, Melbourne, Australia

More information

School of Computing and Information Sciences. Course Title: Computer Programming III Date: April 9, 2014

School of Computing and Information Sciences. Course Title: Computer Programming III Date: April 9, 2014 Course Title: Computer Date: April 9, 2014 Course Number: Number of Credits: 3 Subject Area: Programming Subject Area Coordinator: Tim Downey email: downeyt@cis.fiu.edu Catalog Description: Programming

More information

Computer Science vs. Computer Literacy Which to Teach?

Computer Science vs. Computer Literacy Which to Teach? Computer Science vs. Computer Literacy Which to Teach? Viera K. Proulx College of Computer Science, Northeastern University Boston, MA, 02115, USA vkp@ccs.neu.edu With the widespread use of computers in

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

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

An Introduction to Software Visualization. Visualization. Types of Software Visualization. Course Overview

An Introduction to Software Visualization. Visualization. Types of Software Visualization. Course Overview An Introduction to Software Dr. Jonathan I. Maletic Software DevelopMent Laboratory Department of Computer Science Kent State University Course Overview Introductory Lectures Software visualization

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

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

Objects: Visualization of Behavior and State

Objects: Visualization of Behavior and State Objects: Visualization of Behavior and State Wanda Dann* Toby Dragon Ithaca College Ithaca, NY 14850 1-607-274-3602 wpdann @ ithaca.edu Stephen Cooper* Kevin Dietzler Kathleen Ryan Saint Joseph's University

More information

Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries

Bachelor of Games and Virtual Worlds (Programming) Subject and Course Summaries First Semester Development 1A On completion of this subject students will be able to apply basic programming and problem solving skills in a 3 rd generation object-oriented programming language (such as

More information

SDT: A Programming Language for Debugging (Working Paper)

SDT: A Programming Language for Debugging (Working Paper) SDT: A Programming Language for Debugging (Working Paper) Steven P. Reiss Department of Computer Science Brown University Providence, RI 02912 spr@cs.brown.edu (401) 863-7641 January, 1989 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

Passaic County Technical Institute. Curriculum of Instruction. Computer Science IV. Grade 12

Passaic County Technical Institute. Curriculum of Instruction. Computer Science IV. Grade 12 Passaic County Technical Institute Curriculum of Instruction Computer Science IV Grade 12 2014 2015 Prepared by Anjali Wahi Computer Science IV COURSE DESCRIPTION Concentration: Object Oriented Programming

More information

Course MS10975A Introduction to Programming. Length: 5 Days

Course MS10975A Introduction to Programming. Length: 5 Days 3 Riverchase Office Plaza Hoover, Alabama 35244 Phone: 205.989.4944 Fax: 855.317.2187 E-Mail: rwhitney@discoveritt.com Web: www.discoveritt.com Course MS10975A Introduction to Programming Length: 5 Days

More information

El Dorado Union High School District Educational Services

El Dorado Union High School District Educational Services El Dorado Union High School District Course of Study Information Page Course Title: ACE Computer Programming I (#494) Rationale: A continuum of courses, including advanced classes in technology is needed.

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

Virtual Machines as an Aid in Teaching Computer Concepts

Virtual Machines as an Aid in Teaching Computer Concepts Virtual Machines as an Aid in Teaching Computer Concepts Ola Ågren Department of Computing Science Umeå University SE-901 87 Umeå, SWEDEN E-mail: Ola.Agren@cs.umu.se Abstract A debugger containing a set

More information

Algorithm Animation. Chapter 1. Introduction. Andreas Kerren 1 and John T. Stasko 2

Algorithm Animation. Chapter 1. Introduction. Andreas Kerren 1 and John T. Stasko 2 Chapter 1 Algorithm Animation Introduction Andreas Kerren 1 and John T. Stasko 2 1 FR 6.2 Informatik, Saarland University, PO Box 15 11 50, D-66041 Saarbrücken, Germany. Email: kerren@cs.uni-sb.de, URL:

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

A Survey of Research on the Jeliot Program Animation System

A Survey of Research on the Jeliot Program Animation System 41 A Survey of Research on the Jeliot Program Animation System Ronit Ben-Bassat Levy Weizmann Institute of Science ronit.ben-bassat@weizmann.ac.il Mordechai Ben-Ari Weizmann Institute of Science mordechai.ben-ari@weizmann.ac.il

More information

COMPUTER SCIENCE. FACULTY: Jennifer Bowen, Chair Denise Byrnes, Associate Chair Sofia Visa

COMPUTER SCIENCE. FACULTY: Jennifer Bowen, Chair Denise Byrnes, Associate Chair Sofia Visa FACULTY: Jennifer Bowen, Chair Denise Byrnes, Associate Chair Sofia Visa COMPUTER SCIENCE Computer Science is the study of computer programs, abstract models of computers, and applications of computing.

More information

Improving learning outcomes for first year introductory programming students

Improving learning outcomes for first year introductory programming students Improving learning outcomes for first year introductory programming students Sven Venema School of Information and Communication Technology, Griffith University, Brisbane, Australia Abstract Andrew Rock

More information

Curriculum Map. Discipline: Computer Science Course: C++

Curriculum Map. Discipline: Computer Science Course: C++ Curriculum Map Discipline: Computer Science Course: C++ August/September: How can computer programs make problem solving easier and more efficient? In what order does a computer execute the lines of code

More information

CURRICULUM VITAE EDUCATION:

CURRICULUM VITAE EDUCATION: CURRICULUM VITAE Jose Antonio Lozano Computer Science and Software Development / Game and Simulation Programming Program Chair 1902 N. Loop 499 Harlingen, TX 78550 Computer Sciences Building Office Phone:

More information

Course Development of Programming for General-Purpose Multicore Processors

Course Development of Programming for General-Purpose Multicore Processors Course Development of Programming for General-Purpose Multicore Processors Wei Zhang Department of Electrical and Computer Engineering Virginia Commonwealth University Richmond, VA 23284 wzhang4@vcu.edu

More information

Teaching Computer Programming Courses (Using the Internet) in a Computer Laboratory Environment

Teaching Computer Programming Courses (Using the Internet) in a Computer Laboratory Environment Session 1033 Teaching Computer Programming Courses (Using the Internet) in a Computer Laboratory Environment Asad Azemi Department of Engineering Penn State University Delaware County Campus Media, PA

More information

USEFULNESS OF LEARNING OBJECTS IN COMPUTER SCIENCE LEARNING

USEFULNESS OF LEARNING OBJECTS IN COMPUTER SCIENCE LEARNING USEFULNESS OF LEARNING OBJECTS IN COMPUTER SCIENCE LEARNING The Codewitz project Ásrún Matthíasdóttir Assistant Professor Reykjavik University asrun@ru.is ABSTRACT In this paper the author explains the

More information

A System for Building Animated Presentations over the Web

A System for Building Animated Presentations over the Web A System for Building Animated Presentations over the Web Benedetto A. Colombo Camil Demetrescu Irene Finocchi Luigi Laura Abstract We describe Leonardo Web, a collection of tools for building animated

More information

How Programmers Use Internet Resources to Aid Programming

How Programmers Use Internet Resources to Aid Programming How Programmers Use Internet Resources to Aid Programming Jeffrey Stylos Brad A. Myers Computer Science Department and Human-Computer Interaction Institute Carnegie Mellon University 5000 Forbes Ave Pittsburgh,

More information

Rethinking the First Year Programming Course

Rethinking the First Year Programming Course Rethinking the First Year Programming Course William David Lubitz Assistant Professor, School of Engineering, University of Guelph wlubitz@uoguelph.ca Abstract The use of microcontrollers in beginning

More information

110a. Algorithm Animation Using 3D Interactive Graphics

110a. Algorithm Animation Using 3D Interactive Graphics 110a Algorithm Animation Using 3D Interactive Graphics Marc H. Brown and Marc A. Najork September 15, 1993 d i g i t a l Systems Research Center 130 Lytton Avenue Palo Alto, California 94301 Systems Research

More information

Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation

Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science updated 03/08/2012 Unit 1: JKarel 8 weeks http://www.fcps.edu/is/pos/documents/hs/compsci.htm

More information

Know or Go Practical Quest for Reliable Software

Know or Go Practical Quest for Reliable Software Know or Go Practical Quest for Reliable Software Dr.-Ing. Jörg Barrho Dr.-Ing. Ulrich Wünsche AVACS Project meeting 25.09.2014 2014 Rolls-Royce Power Systems AG The information in this document is the

More information

University of Dayton Department of Computer Science Undergraduate Programs Assessment Plan DRAFT September 14, 2011

University of Dayton Department of Computer Science Undergraduate Programs Assessment Plan DRAFT September 14, 2011 University of Dayton Department of Computer Science Undergraduate Programs Assessment Plan DRAFT September 14, 2011 Department Mission The Department of Computer Science in the College of Arts and Sciences

More information

Education. Research Experience (Funded Projects)

Education. Research Experience (Funded Projects) Mark Floryan (540) 672-8850 mfloryan@cs.virginia.edu Department of Computer Science 85 Engineer's Way Charlottesville, VA 24018 Education University of Massachusetts: Amherst, MA Fall 2008 Spring 2013

More information

Designing and Evaluating a Web-Based Collaboration Application: A Case Study

Designing and Evaluating a Web-Based Collaboration Application: A Case Study Designing and Evaluating a Web-Based Collaboration Application: A Case Study Wenli Zhu Microsoft Corporation, One Microsoft Way, Redmond, WA 98052 USA ABSTRACT The Web has evolved from a simple browsing

More information

Gadget: A Tool for Extracting the Dynamic Structure of Java Programs

Gadget: A Tool for Extracting the Dynamic Structure of Java Programs Gadget: A Tool for Extracting the Dynamic Structure of Java Programs Juan Gargiulo and Spiros Mancoridis Department of Mathematics & Computer Science Drexel University Philadelphia, PA, USA e-mail: gjgargiu,smancori

More information

Teaching Information Retrieval With Web-based Interactive Visualization

Teaching Information Retrieval With Web-based Interactive Visualization Teaching Information Retrieval With Web-based Interactive Visualization Peter Brusilovsky School of Information Sciences, University of Pittsburgh, Pittsburgh, PA 15260. E-mail: peterb@pitt.edu Jae-wook

More information

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students Eastern Washington University Department of Computer Science Questionnaire for Prospective Masters in Computer Science Students I. Personal Information Name: Last First M.I. Mailing Address: Permanent

More information

CS 300 Data Structures Syllabus - Fall 2014

CS 300 Data Structures Syllabus - Fall 2014 CS 300 Data Structures Syllabus - Fall 2014 Catalog Description Data structures are fundamental to advanced, efficient programming. Topics including asymptotic analysis, stacks, queues, linked lists, trees,

More information

Course Syllabus. COSC 1437 Programming Fundamentals II. Revision Date: August 21, 2013

Course Syllabus. COSC 1437 Programming Fundamentals II. Revision Date: August 21, 2013 Course Syllabus COSC 1437 Programming Fundamentals II Revision Date: August 21, 2013 Catalog Description: This course contains further applications of programming techniques in the C++ programming language.

More information

Information Systems. Administered by the Department of Mathematical and Computing Sciences within the College of Arts and Sciences.

Information Systems. Administered by the Department of Mathematical and Computing Sciences within the College of Arts and Sciences. Information Systems Dr. Haesun Lee Professor Dr. Haesun Lee is a Professor of Computer Science. She received her Ph.D. degree from Illinois Institute of Technology, Chicago, Illinois (1997). Her primary

More information

IMPROVING STUDENTS FOCUS IN INTRODUCTORY PROGRAMMING COURSES

IMPROVING STUDENTS FOCUS IN INTRODUCTORY PROGRAMMING COURSES DAAAM INTERNATIONAL SCIENTIFIC BOOK 2015 pp. 165-172 Chapter 15 IMPROVING STUDENTS FOCUS IN INTRODUCTORY PROGRAMMING COURSES KONECKI, M. Abstract: Introductory programming courses struggle with low passing

More information

CS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013

CS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013 Oct 4, 2013, p 1 Name: CS 141: Introduction to (Java) Programming: Exam 1 Jenny Orr Willamette University Fall 2013 1. (max 18) 4. (max 16) 2. (max 12) 5. (max 12) 3. (max 24) 6. (max 18) Total: (max 100)

More information

ASSEMBLY PROGRAMMING ON A VIRTUAL COMPUTER

ASSEMBLY PROGRAMMING ON A VIRTUAL COMPUTER ASSEMBLY PROGRAMMING ON A VIRTUAL COMPUTER Pierre A. von Kaenel Mathematics and Computer Science Department Skidmore College Saratoga Springs, NY 12866 (518) 580-5292 pvonk@skidmore.edu ABSTRACT This paper

More information

A User Centered Approach for the Design and Evaluation of Interactive Information Visualization Tools

A User Centered Approach for the Design and Evaluation of Interactive Information Visualization Tools A User Centered Approach for the Design and Evaluation of Interactive Information Visualization Tools Sarah Faisal, Paul Cairns, Ann Blandford University College London Interaction Centre (UCLIC) Remax

More information

How To Teach Students To Program A Virtual World

How To Teach Students To Program A Virtual World Gaming for Middle School Students: Building Virtual Worlds CHARLES R. HARDNETT Spelman College Computer Science Department Atlanta, GA 30314 hardnett@spelman.edu ABSTRACT We can begin engaging new talented

More information

Please consult the Department of Engineering about the Computer Engineering Emphasis.

Please consult the Department of Engineering about the Computer Engineering Emphasis. COMPUTER SCIENCE Computer science is a dynamically growing discipline. ABOUT THE PROGRAM The Department of Computer Science is committed to providing students with a program that includes the basic fundamentals

More information

Pattern-based Program Visualization

Pattern-based Program Visualization Pattern-based Program Visualization Daniela da Cruz 1, Pedro Rangel Henriques 1, and Maria João Varanda Pereira 2 1 University of Minho - Department of Computer Science, Campus de Gualtar, 4715-057, Braga,

More information

Visualizing principles of abstract machines by generating interactive animations

Visualizing principles of abstract machines by generating interactive animations Future Generation Computer Systems 16 (2000) 831 839 Visualizing principles of abstract machines by generating interactive animations Stephan Diehl, Thomas Kunze FB-14 Informatik, Universität des Saarlandes,

More information

Storage Classes CS 110B - Rule Storage Classes Page 18-1 \handouts\storclas

Storage Classes CS 110B - Rule Storage Classes Page 18-1 \handouts\storclas CS 110B - Rule Storage Classes Page 18-1 Attributes are distinctive features of a variable. Data type, int or double for example, is an attribute. Storage class is another attribute. There are four storage

More information

Bob Boothe. Education. Research Interests. Teaching Experience

Bob Boothe. Education. Research Interests. Teaching Experience Bob Boothe Computer Science Dept. University of Southern Maine 96 Falmouth St. P.O. Box 9300 Portland, ME 04103--9300 (207) 780-4789 email: boothe@usm.maine.edu 54 Cottage Park Rd. Portland, ME 04103 (207)

More information

LEARNING OBJECTS FOR JAVA PROGRAMMING LANGUAGE

LEARNING OBJECTS FOR JAVA PROGRAMMING LANGUAGE LEARNING OBJECTS FOR JAVA PROGRAMMING LANGUAGE Ion MIERLUS MAZILU Department of Mathematics and Computer Science Technical University of Civil Engineering, Bucharest B-ul. Lacul Tei, Nr. 122-124, Sector

More information

Exploring Computer Science A Freshman Orientation and Exploratory Course

Exploring Computer Science A Freshman Orientation and Exploratory Course Exploring Computer Science A Freshman Orientation and Exploratory Course Stephen U. Egarievwe and Vivian J. Fielder Center for Internet Based Education and Research Department of Mathematics and Computer

More information

Lecture 1 Introduction to Android

Lecture 1 Introduction to Android These slides are by Dr. Jaerock Kwon at. The original URL is http://kettering.jrkwon.com/sites/default/files/2011-2/ce-491/lecture/alecture-01.pdf so please use that instead of pointing to this local copy

More information

Computational Modeling and Simulation for Learning an Automation Concept in Programming Course

Computational Modeling and Simulation for Learning an Automation Concept in Programming Course Computational Modeling and Simulation for Learning an Automation Concept in Programming Course Yong Cheon Kim, Dai Young Kwon, and Won Gyu Lee Abstract Computational thinking is a fundamental skill for

More information

Gild: An Integrated Learning and Development plug-in for Eclipse

Gild: An Integrated Learning and Development plug-in for Eclipse Gild: An Integrated Learning and Development plug-in for Eclipse Teaching students how to program can be a challenging task. Unfortunately, there is a lack of tools that provide pedagogical support for

More information

Computer Programming I & II*

Computer Programming I & II* Computer Programming I & II* Career Cluster Information Technology Course Code 10152 Prerequisite(s) Computer Applications, Introduction to Information Technology Careers (recommended), Computer Hardware

More information

Pattern-based Program Visualization

Pattern-based Program Visualization Proceedings of the International Multiconference on Computer Science and Information Technology pp. 1025 1036 ISSN 1896-7094 c 2007 PIPS Pattern-based Program Visualization Daniela da Cruz 1, Pedro Rangel

More information

Lumousoft Visual Programming Language and its IDE

Lumousoft Visual Programming Language and its IDE Lumousoft Visual Programming Language and its IDE Xianliang Lu Lumousoft Inc. Waterloo Ontario Canada Abstract - This paper presents a new high-level graphical programming language and its IDE (Integration

More information

COMPARISON OF OBJECT-ORIENTED AND PROCEDURE-BASED COMPUTER LANGUAGES: CASE STUDY OF C++ PROGRAMMING

COMPARISON OF OBJECT-ORIENTED AND PROCEDURE-BASED COMPUTER LANGUAGES: CASE STUDY OF C++ PROGRAMMING COMPARISON OF OBJECT-ORIENTED AND PROCEDURE-BASED COMPUTER LANGUAGES: CASE STUDY OF C++ PROGRAMMING Kuan C. Chen, Ph.D. Assistant Professor Management Information Systems School of Management Purdue University

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

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

Using Visualization to Teach Security

Using Visualization to Teach Security Using Visualization to Teach Security Dino Schweitzer, Wayne Brown Academy Center for Cyberspace Research, United States Air Force Academy, CO dino.schweitzer@usafa.edu Abstract. Interactive visualization

More information

How to Succeed in 3 rd and 4 th Year Computer Science Classes

How to Succeed in 3 rd and 4 th Year Computer Science Classes How to Succeed in 3 rd and 4 th Year Computer Science Classes Dr. Beth Simon Science Learning and Teaching Fellow Computer Science Department esimon@cs.ubc.ca PhD in CS Why listen to me? Computer Architecture:

More information

Figure 1. An embedded chart on a worksheet.

Figure 1. An embedded chart on a worksheet. 8. Excel Charts and Analysis ToolPak Charts, also known as graphs, have been an integral part of spreadsheets since the early days of Lotus 1-2-3. Charting features have improved significantly over the

More information

Object Oriented Software Design II

Object Oriented Software Design II Object Oriented Software Design II Introduction to C++ Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa February 20, 2012 G. Lipari (Scuola Superiore Sant Anna) C++ Intro February

More information

An Approach to Teaching Introductory-Level Computer Programming

An Approach to Teaching Introductory-Level Computer Programming Olympiads in Informatics, 2013, Vol. 7, 14 22 14 2013 Vilnius University An Approach to Teaching Introductory-Level Computer Programming Michael DOLINSKY Department of Mathematics, Gomel State University

More information

Encouraging Playful Design in Computer Science

Encouraging Playful Design in Computer Science Encouraging Playful Design in Computer Science Gregory Garrett Creativity and Design Cognition, Spring 2010 Georgia Institute of Technology gte180w@gatech.edu Abstract In this paper we describe our vision

More information

Development of Program Visualization Systems 1

Development of Program Visualization Systems 1 Development of Program Visualization Systems 1 Aulikki Hyrskykari Department of Computer Science University of Tampere P.O. Box 607 SF-33101 Tampere Finland E-mail: ah@cs.uta.fi The last decade has been

More information

Evaluating a new programming language

Evaluating a new programming language In G. Kadoda (Ed). Proc. PPIG 13 Pages 275-289 Evaluating a new programming language Steven Clarke Microsoft Corporation 1 Microsoft Way Redmond, WA 98052 USA +1 425 705 5978 stevencl@microsoft.com Keywords:

More information