Solving Programming Problems in Intelligent Programming Tutors for Teaching the ObjectOriented Progr - PowerPoint PPT Presentation

1 / 11
About This Presentation
Title:

Solving Programming Problems in Intelligent Programming Tutors for Teaching the ObjectOriented Progr

Description:

... languages which combine the procedural and object-oriented programming paradigms. ... algorithms to a particular programming language. Knowledge Required ... – PowerPoint PPT presentation

Number of Views:111
Avg rating:3.0/5.0
Slides: 12
Provided by: nelishi
Category:

less

Transcript and Presenter's Notes

Title: Solving Programming Problems in Intelligent Programming Tutors for Teaching the ObjectOriented Progr


1
Solving Programming Problems in Intelligent
Programming Tutors for Teaching the
Object-Oriented Programming Paradigm
  • Nelishia Pillay
  • School of Geological and Computer Sciences
  • University of Natal Durban, KwaZulu Natal,
    South Africa

2
Introduction
  • Problems experienced by novice programmers.
  • Intelligent Tutoring Systems
  • PROUST (Johnson et. al. 1990)
  • Molehill (Singley et. al. 1991)
  • The Lisp Tutor ( Anderson et. al. 1985)
  • Pascal Loop Tutor (Wood et. al. 1996)
  • Intellitutor (Ueno 1991)
  • High developmental costs (Suthers 1996 and Murray
    1996)

3
Proposed Generic Architecture
  • Surveys were conducted to determine
  • The facilities that should be provided by an
    intelligent programming tutor.
  • The shortcomings of existing programming tutors
    in order to ensure that these shortcomings are
    not replicated in the generic architecture.
  • The domain is restricted to hybrid
    object-oriented languages which combine the
    procedural and object-oriented programming
    paradigms.
  • Topics covered object-oriented design, single
    inheritance, composition, abstract and concrete
    methods and polymorphism.

4
Overview of the Proposed Architecture
5
Types of Programming Problems
  • Debugging of learner programs (Du Boulay 1988)
  • Inducing solutions to programming problems.
  • Solve a programming problem by reusing existing
    classes (Singley et. al. 1991). The Expert Module
    must be capable of choosing suitable components
    from the Domain Module for reuse.

6
Solving Object-Oriented Programming Problems
  • Object-oriented design.
  • Developing algorithms for each method.
  • Developing algorithms for the driver program.
  • Convert the algorithms to a particular
    programming language.

7
Knowledge Required
  • The characteristics of entities in a domain and
    the relationships between the entities.
  • Methods that are applied to entities in the
    domain.
  • The tasks that must be performed by the program
    as specified in the question of the programming
    problem.
  • If a driver program is required the goal/s of the
    program is/are specified as a set of input and
    corresponding output states.

8
Input
  • Question
  • Object-oriented design Includes an inheritance
    hierarchy and induced algorithms.
  • Object-oriented design and driver program.
  • Application Domain
  • Entity Attributes, procedures which take the
    entity as input or output.
  • Procedure Destination, source, and test cases .

9
ExampleEntities
  • Bank Account Example Adapted from Problem
    Solving with C, The Object of Programming W.
    Savitch, 1999.

10
Example Procedures
11
Output
  • A listing containing all the classes and abstract
    classes and their corresponding attributes and
    procedures.
  • An inheritance hierarchy.
  • An algorithm for each method and driver program
    (if applicable) in the form of a parse tree.

12
Example Algorithms
13
Object-Oriented Design
  • The crux of object-oriented programming is
    object-oriented design (Barr , 1999).
  • This process involves determining the different
    classes, the relationship between classes and
    identifies aggregate, abstract and concrete
    classes (Harmon et. al. 1999 Winder et. al.,
    2000).
  • The Class, Responsibility and Collaboration
    method vs. the Searching and Requirements
    method (Winder et. al. , 2000).

14
The Knowledge Base and Object-Oriented Design
  • Conceptual graphs are used to represent the
    application domain and program goal/s.
  • Three data dictionaries the entity, type and
    procedure dictionary are maintained.
  • The projection matching procedure defined by Sowa
    (1984) is used to generate the inheritance
    hierarchy.
  • An extraction process is applied to the graphs
    to determine super classes and abstract super
    classes.

15
Algorithm Induction
  • Genetic programming (Koza, 1992) is used for the
    purposes of algorithm induction.
  • Overall Algorithm
  • Create an initial population.
  • Repeat
  • Evaluate each individual in the population.
  • Select individuals to apply the genetic
    operators to.
  • Create new individuals by application of the
    genetic operators.
  • Until the termination criterion has been met.

16
Discussion and Future Work
  • Structured Programs
  • Parsimonious programs
  • Modular programs
  • Problem types
  • Authoring components
  • Converting algorithms to a particular language.
  • Object-oriented languages
Write a Comment
User Comments (0)
About PowerShow.com