The C++ Tracing Tutor: Visualizing Computer Program Behavior for Beginning Programming Courses Rika Yoshii Alastair Milne Computer Science Department California.

Slides:



Advertisements
Similar presentations
compilers and interpreters
Advertisements

Programming Types of Testing.
1 CALICO 2003 Determining the Countability of English Nouns (DeCEN): A CALL System to Help Students Practice and Develop Reasoning in Determining the Countability.
1 ICCSA 2005 Tutor Writer Tool for Creating a Tutor as a Java Applet Kazumi Slott, M.S. Rika Yoshii, Ph.D. Computer Science Department.
Chapter 2: Algorithm Discovery and Design
Conversion of the Computer Aided Instruction Tools to use Database Connectivity International Conference on Computer Science and its Applications 2004.
Introduction to a Programming Environment
Programming Logic and Design, Introductory, Fourth Edition1 Understanding Computer Components and Operations (continued) A program must be free of syntax.
Chapter 1 Program Design
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Chapter 2: Algorithm Discovery and Design
Chapter 2: Algorithm Discovery and Design
Chapter 3 Planning Your Solution
Programming Logic and Design Fourth Edition, Introductory
Mgt 240 Lecture Website Construction: Software and Language Alternatives March 29, 2005.
Software Development Unit 6.
2012 •••••••••••••••••••••••••••••••••• Summer WorkShop Mostafa Badr
11 Chapter 4 LOOPS AND FILES. 22 THE INCREMENT AND DECREMENT OPERATORS To increment a variable means to increase its value by one. To decrement a variable.
CS190/295 Programming in Python for Life Sciences: Lecture 1 Instructor: Xiaohui Xie University of California, Irvine.
CS102 Introduction to Computer Programming
1 - buttons Click “Step Forward” to execute one line of the program. Click “Reset” to start over. “Play,” “Stop,” and “Step Back” are disabled in this.
Platforms for Learning in Computer Science July 28, 2005.
1 Chapter One A First Program Using C#. 2 Objectives Learn about programming tasks Learn object-oriented programming concepts Learn about the C# programming.
A First Program Using C#
CS413: Java Programming language Applications Applets
1 Software Development Topic 2 Software Development Languages and Environments.
COMPUTER SOFTWARE Section 2 “System Software: Computer System Management ” CHAPTER 4 Lecture-6/ T. Nouf Almujally 1.
Rika Yoshii, Ph.D. and Jacquelyn Hernandez CSIS Department California State University, San Marcos Send us suggestions and requests to.
Copyright © 2012 Pearson Education, Inc. Chapter 1: Introduction to Computers and Programming 1.
Copyright © 2012 Pearson Education, Inc. Chapter 1: Introduction to Computers and Programming.
CHAPTER FOUR COMPUTER SOFTWARE.
Chapter 2: Algorithm Discovery and Design Invitation to Computer Science, C++ Version, Third Edition.
Invitation to Computer Science, Java Version, Second Edition.
Goals of Course Introduction to the programming language C Learn how to program Learn ‘good’ programming practices.
Client Scripting1 Internet Systems Design. Client Scripting2 n “A scripting language is a programming language that is used to manipulate, customize,
Section 17.1 Add an audio file using HTML Create a form using HTML Add text boxes using HTML Add radio buttons and check boxes using HTML Add a pull-down.
CMPD 434 MULTIMEDIA AUTHORING Chapter 06 Multimedia Authoring Process IV.
Computer Programming A program is a set of instructions a computer follows in order to perform a task. solve a problem Collectively, these instructions.
Python – Part 1 Python Programming Language 1. What is Python? High-level language Interpreted – easy to test and use interactively Object-oriented Open-source.
Extending HTML CPSC 120 Principles of Computer Science April 9, 2012.
Copyright © 2007 Addison-Wesley. All rights reserved.1-1 Reasons for Studying Concepts of Programming Languages Increased ability to express ideas Improved.
IXA 1234 : C++ PROGRAMMING CHAPTER 1. PROGRAMMING LANGUAGE Programming language is a computer program that can solve certain problem / task Keyword: Computer.
Cs413_design04.ppt Design and Software Development Design : to create a functional interface that has high usability Development : an organized approach.
Java server pages. A JSP file basically contains HTML, but with embedded JSP tags with snippets of Java code inside them. A JSP file basically contains.
What is Programming? A program is a list of instructions that is executed by a computer to accomplish a particular task. Creating those instructions is.
CSD 340 (Blum)1 Starting JavaScript Homage to the Homage to the Square.
Introduction to JavaScript CS101 Introduction to Computing.
Sahar Mosleh California State University San MarcosPage 1 JavaScript Basic.
The Software Development Process
8-1 Compilers Compiler A program that translates a high-level language program into machine code High-level languages provide a richer set of instructions.
Introduction to programming Carl Smith National Certificate Year 2 – Unit 4.
CSD 340 (Blum)1 Starting JavaScript Homage to the Homage to the Square.
©2016 Pearson Education, Inc. Upper Saddle River, NJ. All Rights Reserved. CSC 110 – INTRO TO COMPUTING - PROGRAMMING Overview of Programming.
Textbook C for Scientists and Engineers © Prentice Hall 1997 Available at NUS CO-OP at S$35.10.
JavaScript 101 Introduction to Programming. Topics What is programming? The common elements found in most programming languages Introduction to JavaScript.
Web Programming Overview. Introduction HTML is limited - it cannot manipulate data How Web pages are extended (include): –Java: an object-oriented programming.
1 The Software Development Process ► Systems analysis ► Systems design ► Implementation ► Testing ► Documentation ► Evaluation ► Maintenance.
Alexandria University Faculty of Science Computer Science Department Introduction to Programming C++
Chapter 2: Algorithm Discovery and Design Invitation to Computer Science.
Lecture #1: Introduction to Algorithms and Problem Solving Dr. Hmood Al-Dossari King Saud University Department of Computer Science 6 February 2012.
Chapter 1: Introduction to Computers and Programming.
Programming Languages Concepts Chapter 1: Programming Languages Concepts Lecture # 4.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
Programming Logic and Design Seventh Edition Chapter 1 An Overview of Computers and Programming.
DDC 1023 – Programming Technique
Lecture 2 Introduction to Programming
Coding Concepts (Basics)
Primary School Computing
Programming Logic and Design Eighth Edition
Presentation transcript:

The C++ Tracing Tutor: Visualizing Computer Program Behavior for Beginning Programming Courses Rika Yoshii Alastair Milne Computer Science Department California State University, San Marcos, USA

Background We developed a Web-delivered tutoring system for students in beginning programming courses. The Tutor is a Java applet that has been used at California State University, San Marcos in CS111 and CS211 classes. Developed under MacOS 8.5 and MacOS 9 with Metrowerks CodeWarrior (JDK1.1) Tested under MacOS 8.5 and 9, Windows 2000, and IBM’s AIX, a version of UNIX.

Common Student Problem –They cannot relate their programs to the sequence of machine actions they cause. –They were unable to analyze why a program works or does not, seeing no connection to the resulting actions by the machine. –The same students needed repeated explanations with examples.

Main Features  Visual representations of programs: the Tutor provides a live media visualization of the actions taken by the machine in executing a running program.  Conversational tutoring: the Tutor provides frequent interactions with free-form student answers.  Adaptive learning: the Tutor uses student answers to provide appropriate hints and to select the next exercise.  Mastery learning: the Tutor does not let the student move onto a different program example until the student shows no difficulty understanding the current one. Uses example programs written in the programming language C++, but its concepts can be used for any high-level programming language.

Two Forms Free Exploration – student controlled Conversational Tutor – system controlled –Asks the student to predict the program behavior Five different types of example programs that are often seen in CS111 with for-loops and while- loops. Permits adding more example programs without making major changes to the system (Each example program is a syntax tree of objects.)

Visual Model of Execution Shows the student which statement is executing at a time (color coded). Simulated computer memory shows the variable contents. Simulated keyboard shows input values typed by an imaginary user. Simulated display shows the outputs.

Tutoring Sequence If a wrong answer is given, –the tutor causes the example program to perform a partial execution at a measured pace before posing the question again. If the student is persistently unable to predict correctly, –the entire sequence of execution may be done, so that the answer will be displayed for the student. If the student has shown little or no difficulty in answering questions correctly on up to four different aspects of the program, –move onto another program with a slightly different or more challenging concept. If the student has needed a significant number of retries to work out correct answers, or has missed them altogether, –stay with the current program, but replace various constant values it contains with randomly-selected new values

Student Reactions Questionnaire to several advanced CS majors and three sections (approx 60 students) of the CS111 class to discover any problems with the user interface. –to improve the color scheme, to increase the size of the instruction window, improve the labels on the buttons, and to make it clear that the simulated keyboard and input display are for the simulated user.

Student Performance Using 5 sections of CS111, we collected data on any changes in the students’ programming as a result of using the Tutor. Preliminary analyses (of 4 sections) –Average improvement of 15% in points between the pre and post-tests after using the system for only two hours. –Pre-test : for-loop to obtain highest, total and average. –Post-test: while-loop with sentinel value to obtain highest, total and average. –Given 1 hour each. –No human instruction on the related materials between the tests.

Some Ideas in Building Applets A small amount of dynamic HTML in which Javascript code detects the hosting browser and operating system, and dynamically writes the applet-inclusion element that works for that form. If the browser and operating system are not recognized, the Javascript assumes they conform to HTML 4.0 standards. In order to minimize the chance of the Javascript itself being unusable to some browsers, its version and operations were kept as simple as possible.

Future Tasks Analyzing data on how programming errors change as the result of using the Tutor. Analyzing data on how student performance changes if only the Exploration module is used. Repeat the tests with more students and have a control group. Create additional tracks for more advanced constructs that are taught in introductory programming courses (e.g. arrays, functions, and switch). Create a separate remedial track for those students having problems with specific constructs. Provide an ability to add or change example programs easily by creating a translator that reads a text file containing an example program and builds a Java object representation of it. Current questions require us to look for simple values and expressions. As we include questions requiring more complex textual answers, we will need to incorporate a more powerful answer analyzer.