143 research outputs found

    A Novice's Process of Object-Oriented Programming

    Get PDF
    Exposing students to the process of programming is merely implied but not explicitly addressed in texts on programming which appear to deal with 'program' as a noun rather than as a verb.We present a set of principles and techniques as well as an informal but systematic process of decomposing a programming problem. Two examples are used to demonstrate the application of process and techniques.The process is a carefully down-scaled version of a full and rich software engineering process particularly suited for novices learning object-oriented programming. In using it, we hope to achieve two things: to help novice programmers learn faster and better while at the same time laying the foundation for a more thorough treatment of the aspects of software engineering

    Space Communications Artificial Intelligence for Link Evaluation Terminal (SCAILET)

    Get PDF
    A software application to assis end-users of the Link Evaluation Terminal (LET) for satellite communication is being developed. This software application incorporates artificial intelligence (AI) techniques and will be deployed as an interface to LET. The high burst rate (HBR) LET provides 30 GHz transmitting/20 GHz receiving, 220/110 Mbps capability for wideband communications technology experiments with the Advanced Communications Technology Satellite (ACTS). The HBR LET and ACTS are being developed at the NASA Lewis Research Center. The HBR LET can monitor and evaluate the integrity of the HBR communications uplink and downlink to the ACTS satellite. The uplink HBR transmission is performed by bursting the bit-pattern as a modulated signal to the satellite. By comparing the transmitted bit pattern with the received bit pattern, HBR LET can determine the bit error rate BER) under various atmospheric conditions. An algorithm for power augmentation is applied to enhance the system's BER performance at reduced signal strength caused by adverse conditions. Programming scripts, defined by the design engineer, set up the HBR LET terminal by programming subsystem devices through IEEE488 interfaces. However, the scripts are difficult to use, require a steep learning curve, are cryptic, and are hard to maintain. The combination of the learning curve and the complexities involved with editing the script files may discourage end-users from utilizing the full capabilities of the HBR LET system. An intelligent assistant component of SCAILET that addresses critical end-user needs in the programming of the HBR LET system as anticipated by its developers is described. A close look is taken at the various steps involved in writing ECM software for a C&P, computer and at how the intelligent assistant improves the HBR LET system and enhances the end-user's ability to perform the experiments

    Research on knowledge representation, machine learning, and knowledge acquisition

    Get PDF
    Research in knowledge representation, machine learning, and knowledge acquisition performed at Knowledge Systems Lab. is summarized. The major goal of the research was to develop flexible, effective methods for representing the qualitative knowledge necessary for solving large problems that require symbolic reasoning as well as numerical computation. The research focused on integrating different representation methods to describe different kinds of knowledge more effectively than any one method can alone. In particular, emphasis was placed on representing and using spatial information about three dimensional objects and constraints on the arrangement of these objects in space. Another major theme is the development of robust machine learning programs that can be integrated with a variety of intelligent systems. To achieve this goal, learning methods were designed, implemented and experimented within several different problem solving environments

    A review and assessment of novice learning tools for problem solving and program development

    Get PDF
    There is a great demand for the development of novice learning tools to supplement classroom instruction in the areas of problem solving and program development. Research in the area of pedagogy, the psychology of programming, human-computer interaction, and cognition have provided valuable input to the development of new methodologies, paradigms, programming languages, and novice learning tools to answer this demand. Based on the cognitive needs of novices, it is possible to postulate a set of characteristics that should comprise the components an effective novice-learning tool. This thesis will discover these characteristics and provide recommendations for the development of new learning tools. This will be accomplished with a review of the challenges that novices face, an in-depth discussion on modem learning tools and the challenges that they address, and the identification and discussion of the vital characteristics that constitute an effective learning tool based on these tools and personal ideas

    Analyzing the Novice’s Gaze

    Get PDF

    Conceptual roles of data in program: analyses and applications

    Get PDF
    Program comprehension is the prerequisite for many software evolution and maintenance tasks. Currently, the research falls short in addressing how to build tools that can use domain-specific knowledge to provide powerful capabilities for extracting valuable information for facilitating program comprehension. Such capabilities are critical for working with large and complex program where program comprehension often is not possible without the help of domain-specific knowledge.;Our research advances the state-of-art in program analysis techniques based on domain-specific knowledge. The program artifacts including variables and methods are carriers of domain concepts that provide the key to understand programs. Our program analysis is directed by domain knowledge stored as domain-specific rules. Our analysis is iterative and interactive. It is based on flexible inference rules and inter-exchangeable and extensible information storage. We designed and developed a comprehensive software environment SeeCORE based on our knowledge-centric analysis methodology. The SeeCORE tool provides multiple views and abstractions to assist in understanding complex programs. The case studies demonstrate the effectiveness of our method. We demonstrate the flexibility of our approach by analyzing two legacy programs in distinct domains

    СИСТЕМАТИКА ШАБЛОНІВ У КОНТЕКСТІ ОБ’ЄКТНИХ ТЕХНОЛОГІЙ

    Get PDF
    Сучасні програмні системи відносяться до складних систем, одним із способів подолання складності є декомпозиція, причому переваги має об’єктна декомпозиція. Об’єктні технології залишаються складними не тільки при розробці реальних програмних систем, але й при вивченні їх студентами. На допомогу новачкам у програмуванні приходять шаблони, які акумулюють кращий досвід об’єктно-орієнтованої розробки програм. Оскільки кількість шаблонів обчислюється сотнями, а єдиної і повної класифікації шаблонів не існує, в роботі здійснена спроба систематизації шаблонів за фазами розробки програмних систем та рівнями абстракції. При вивченні курсу «Проектування програмних систем» пропонується націлювати студентів на використання представленої систематизації шаблонів з метою полегшення пошуку шаблонів, потрібних для реалізації навчальних завдань і проектів. Contemporary industrial software systems belong to complex systems. The complexity of such systems exceeds the human intellectual capacity. Essential property of all large systems is that we can only master their complexity, but never eliminate it. Using patterns is an effective way to master complexity and transfer knowledge of professionals to novices, including students, because patterns capture chunks of professional knowledge. It’s important that software developers do not invent patterns; they discover and describe patterns from experience in developing real systems. There is large number of patterns in different categories but unique whole and simple classification of them was not yet proposed. Analysis patterns, architectural patterns, design patterns, programming patterns, organizational patterns, and process patterns are the most popular categories of patterns among developers. It is not so simple to find and select appropriate pattern for novices. One of potential attempts for patterns systematization was made in this paper. Our systematization is based on the key principle: patterns should be organized around phases of software development and levels of abstraction. Our research shows that some pattern categories are related to software development phases and another are related to different levels of system architecture. Some standalone pattern categories are phase-independent or multi-phased. We hope that proposed categories systematization will help students to find appropriate pattern quick and easy

    Cooperating intelligent systems

    Get PDF
    Some of the issues connected to the development of a bureaucratic system are discussed. Emphasis is on a layer multiagent approach to distributed artificial intelligence (DAI). The division of labor in a bureaucracy is considered. The bureaucratic model seems to be a fertile model for further examination since it allows for the growth and change of system components and system protocols and rules. The first part of implementing the system would be the construction of a frame based reasoner and the appropriate B-agents and E-agents. The agents themselves should act as objects and the E-objects in particular should have the capability of taking on a different role. No effort was made to address the problems of automated failure recovery, problem decomposition, or implementation. Instead what has been achieved is a framework that can be developed in several distinct ways, and which provides a core set of metaphors and issues for further research

    An evolving approach to learning in problem solving and program development : the distributed learning model

    Get PDF
    Technological advances are paving the way for improvements in many sectors of society. The US education system needs to undergo a transformation of existing pedagogical methods to maximize utilization of new technologies. Traditional education has primarily been teacher driven, lectured-based in one location. Advances in technology are challenging existing paradigms by developing tools and educational environments that reach diverse learning styles and surpass the boundaries of current teaching methods. Distributed learning is an emerging paradigm today that has promise to contribute significantly to learning and improve overall academic success. This research first explores various systems that provide different modes of learning. The problem domain of this research is the difficulty novice programmers\u27 face when learning to program. This paper proposes how distributed learning can be used in a teaching environment to enrich learning and the impacts for the given problem domain

    Designing graphical interface programming languages for the end user

    Get PDF
    This thesis sets out to answer three simple questions: What tools are available for novice programmers to program GUIs? Are those tools fulfilling their role? Can anything be done to make better tools? Despite being simple questions, the answers are not so easily constructed. In answering the first question, it was necessary to examine the range of tools available and decide upon criteria which could be used to identify tools aimed specifically at the novice programmer (there being no currently agreed criteria for their identification). Having identified these tools, it was then necessary to construct a framework within which they could be sensibly compared. The answering of the second question required an investigation of what were the successful features of current tools and which features were less successful. Success or failure of given features was determined by research in both programming language design and studies of programmer satisfaction. Having discovered what should be retained and discarded from current systems, the answering of the third question required the construction of new systems through blending elements from visual languages, program editors and fourth generation languages. These final prototypes illustrate a new way of thinking about and constructing the next generation of GUI programming languages for the novice
    corecore