Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Barry L. Kurtz is active.

Publication


Featured researches published by Barry L. Kurtz.


technical symposium on computer science education | 1989

Teaching multiple programming paradigms: a proposal for a paradigm general pseudocode

Mark B. Wells; Barry L. Kurtz

Initial overexposure to the imperative programming paradigm can make it very difficult to introduce students to other paradigms, such as the functional, object oriented and logical paradigms. It is important that students be exposed to several programming paradigms early. Two techniques commonly used to accomplish this are a “survey of languages” approach and use of a language, such as Scheme, that overlaps several paradigms. We propose the use of a paradigm-general pseudocode that can then be translated into the most appropriate target language. This paper describes in detail the features and form of this pseudocode using familiar algorithms. This approach has been used successfully in an upper division class and we believe it can be refined and introduced earlier in the curriculum.


technical symposium on computer science education | 1990

Implementing a single classwide project in software engineering using Ada tasking for synchronization and communcation

Barry L. Kurtz; Thomas H. Puckett

Most software engineering classes are project-oriented and an increasing number are using Ada as the implementation language. Reports on Ada usage usually mention packages, generics, and exception handling, but few, if any, mention tasking. This paper describes the evolution of a software engineering course where a single project was implemented by the entire class with each group working on a separate subsystem. Ada’s rendezvous mechanism for synchronization and communication was used to integrate these components. The three projects used in three successive semesters are described and the results of this experiment are discussed. We conclude with some specific recommendations concerning the use of Ada and the use of a classwide project, followed by a more general discussion of the role of software engineering in the undergraduate curriculum. Undergraduate Software Engineering Education During the last decade most universities have introduced a one or two course sequence in software engineering at the undergraduate level. Most of these courses involve projects of moderate size implemented by a team of students. This project-oriented approach to software engineering is reviewed in the first section. Many schools have introduced Ada into the undergraduate curriculum in the software engineering course or possibly earlier. Several such efforts are discussed in the second section. In the final section, the goals of this experiment in using Ada in a software engineering class are described. This approach is different from previous efforts in that the tasking feature of Ada was used explicitly to provide communications between programming teams each implementing a subsystem of a single, large project implemented by the entire class. Organization of Project Courses There are several ways to organize a project course. We will discuss three approaches: all teams do the same project: each team does a different project; and the entire class does one project subdivided into different components, one for each team. This choice often interacts Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific permission.


sei conference on software engineering education | 1990

A state-of-the-art CS undergraduate lab

J. Mack Adams; Barry L. Kurtz

This paper describes the development of a high-quality laboratory for computer science majors over the last decade and plans for its continued development. We start with the historical background and then describe the current situation that involves moving the introductory programming course to Unix workstations. This decision has resulted in many benefits and a few unanticipated problems. Finally, we speculate about future development and describe two possible scenarios: one evolutionary, based on continued adaptation of the original lab concept, and the other revolutionary, based on rethinking the underlying goals of the introductory CS curriculum.


technical symposium on computer science education | 1991

The design, implementation, and use of DSTutor: a tutoring system for denotational semantics

Barry L. Kurtz; Richard L. Oliver; Edward M. Collins

A tutoring system typically contains a domain expert, a student model, a pedagogical expert and the user interface. We will discuss the design and implementation of DSTutor, a tutoring system for denotational semantics, with particular emphasis on the development of the user interface and the domain expert. The X Window System provides powerful tools for the development of a user interface with a familiar look and feel. Prolog provides a flexible and relatively easy way to implement a domain expert. Language parsing is handled by a definite clause grammar in Prolog. DSTutor currently works with one miniIanguage, a simple imperative language, and is being adapted to a second mini-language that supports program blocks, procedures with parameters, and recursion. It has been used successfully with students in a graduate class on formal semantics for programming languages. 1. Denotational Semantics and Graduate Computer Science Education Denotational semantics is an important approach to the formal specification of programming language semantics that should be studied by every graduate student in computer science. This can be accomplished by having an entire course devoted to denotational semantics or a course on the formal specification of programming languages with denotational semantics Permissionto copy without fee all or part of this material is grantedprovidedthat the copies are not madeor distributed for direct commercialadvantage,the ACM copyright notica and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific permission. a ~991 ACM 0.89791-377-9/91/0002.01 69...


technical symposium on computer science education | 1986

Converting from Pascal to Modula-2 in the undergraduate curriculum

Philippe J. Gabrini; J. Mack Adams; Barry L. Kurtz

1.50 as a major topic. New Mexico State University follows the latter approach with a course on formal methods for programming language specification that is required for all Ph.D. students and highly recommended for Master’s level students. It follows a senior level programming language structure course. It is distinct from the compiler course and a prerequisite for more advanced courses in programming languages. Major topics in the course are a review of BNF, attribute grammars, two level grammars, denotational semantics and axiomatic semantics. The text currently used IS Formal Specification of Programming Languages: A Panoramic Primer by Frank G. Pagan[l 981]. The material on the Vienna Definition Language (VDL) is not covered while the material on denotational semantics and axiomatic semantics is supplemented from more extensive treatments, such as that given by David Schmidt [1986] for denotational semantics and by Raymond Gumb [1989] for axiomatic semantics. Only one fourth of the course is devoted to denotational semantics, so the treatment cannot be extensive. DSTutor is designed to supporl this effort and uses Pam, a mini-language used throughout Pagan’s text, to test a student’s understanding of denotational semantics. The programming languages Pam and Eva Pam is a very simple programming language that contains no declarations, no blocks, and only variables of type integer. Seven types of statements are contained in the language: read, write, if-then, if-thenelse, the iterative to-loop, a while-loop and the assignment statement. A full description of the language can b,e found in Pagan [1981]. Eva is a much richer language and includes block


technical symposium on computer science education | 1985

Cognitive processes in programming (panel session)

Laurie Werth; Jeff Bonar; Saj-Nicole Joni; Barry L. Kurtz; Dave Scanlan

Modula-2 has been adopted as the primary programming language at New Mexico State University. This paper discusses the reasons which led to this choice of a new primary programming language. It compares some of the features of Pascal, Modula-2 and Ada. It also gives the results of our implementation efforts.


technical symposium on computer science education | 1991

Laboratory activities for studying the formal semantics of programming languages

Barry L. Kurtz

and ABSTRACT This panel will discuss (a) the cognitive processes used in computer programming (b) how to use these processes in teaching computer science. Laurie Werth will introduce the panel members and give a brief background of work in this area. A short review of studies predicting success in beginning computer science classes, as well as copies of two computer science placement examinations, will be available as handouts. Barry Kurtz will briefly describe Piagets intellectual development levels and a computer science test which he has designed to measure the correspondence between Piagets levels and success in a beginning programming class. Dave Scanlan will discuss the differences between right an left brain cognitive abilities and the need for tapping right brain abilities in teaching computer science. Saj-nicole Joni will present a brief overview of the cognitive methodology used in cognitive phychology and artificial intelligence research. Using the programming knowledge which has been identified, she will present some ideas on helping novice programmers to correct non-buggy programs. Jeff Bonar will discuss cognitive elements in programming which he has measured and then explain a plan-based intelligent tutoring environment which he developed for beginning programmers. In a 1988 article, I reported on using a students level of intellectual development, according to Piagets notion of concrete and formal operational stages, to predict performance in an introductory programming course. I will give a brief explanation of intellectual development, a review of the test items, and a synopsis of results. While at the Educational Technology Center, U.C. Irvine, I attempted to computerize both the presentation and the analysis of responses for some standard Piaget tasks. The failure of simple pattern matching as an adequate analysis mechanism, led me to my current interests in augmenting computer based education with natural language interfaces to knowledge based systems. 373 ! •


international conference on computer assisted learning | 1989

Quadratic Grapher: An Intelligent Tutoring System for Graphing Quadratic Equations

Marilyn Loser; Barry L. Kurtz

The current thrust in undergraduate computer science education is to emphasize the laboratory nature of the discipline, but little has been done to introduce laboratories at the graduate level. Teaching techniques for the formal semantics of programming languages still rely on pencil and paper activities. For the last two years at New Mexico State University we have tried to enliven this approach by introducing some laboratory activities. We still cover the same topics: attribute grammars, two level grammars, denotational semantics, axiomatic semantics, and programming languages as metalanguages. The laborato~ activities are based on logic programming in Prolog, including definite clause grammars, the Synthesizer Generator development system, and functional programming in Lisp. Two mini-languages, Pam and Eva, are used for most lab activities; these languages come from the course text: Formal Specification of Programming Languages: A Panoramic Primer by Frank Pagan [1981]. The lab activities can be adapted to other mini-languages or to subsets of real languages. Most students reacted positively to practical applications of theoretical concepts; however, a minority of students did not like lab activities in a graduate class. Students performed as well on written exams covering theoretical concepts as previous classes that spent their time studying only the theory. A Course on the Formal Semantics of Programming Languages Our first graduate level course in programming language concepts deals with techniques for formally Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and ite date appear, and notice is given that copying ie by permission of the Association for Computing Machinery. To copy otherwiee, or to republish, requires a fee and/or specific permission. 01991 ACM 0-89791 -377 -919110002-0162 . ..S1 .50 specifying programming language semantics. It assumes a senior level programming language structure course as a prerequisite. Representative texts for this prerequisite course would be Sethi [1989] or Watt [1990]. The major topics covered in the formal semantics course are programming languages as metalanguages, attribute grammars, two level (or W) grammars, denotational semantics, and axiomatic semantics. Some instructors include the Vienna Definition Language (VDL), but it was not involved in the study reported here. The text is Forma/ Specification of Programming Languages: A Panoramic Primer by Frank Pagan [1981]. The material on denotational semantics is supplemented from other sources, such as Schmidt’s text [1986], as is the material on axiomatic semantics, using references such as Gumb’s text [1989]. Other graduate courses in programming languages include a compiler course and a “Topics in Programming Languages” seminar. In the past the formal semantics class had been a paper and pencil course. Student grades were based on written homework, a presentation from the current literature, and examinations. The homework often involved the tedious drawing of elaborate parse trees where the learning experience quickly turned to drudgery. Although the materials are theoretically important, students failed to see any practical applications of the concepts presented. There was also little connection to the graduate level course on compiler design. These deficiencies motivated the introduction of a laboratory component for the formal semantics class. The theory can guide the laboratory activities, but the lab activities may not directly help students learn the theoretical formalisms. Therefore, it is important to insure the lab activities do not interfer with learning the theory. Of course, the labs contribute to the student’s total learning experience in many ways: the labs expose them to the


technical symposium on computer science education | 1988

Using concept expansion and level integration in an introductory computer science course

Barry L. Kurtz; J. Mack Adams

COURSE DESCRIPTION Computer Assisted Advanced Algebra is an exciting and interesting approach to learning and teaching Advanced Algebra. Students will learn algebraic principles in many ways including individual, cooperative, and collaborative classroom work, mathematical modeling, use of intelligent computer tutors and graphing calculators, writing, doing projects, and making presentations. Students will work with multiple representations of algebraic concepts. The topics emphasized in this course are advanced work with linear functions, linear programming, quadratic functions, polynomials, laws of exponents, cubic functions and radical functions. Students will also relate algebra to some geometry topics studied in the previous course. A unique aspect of the course is that approximately 40% of class time.


technical symposium on computer science education | 1987

A course project to design and implement the kernel of a real-time operating system

Barry L. Kurtz; Joseph J. Pfeiffer

An introduction to computer science is supposed to teach problem solving and programming skills, but far too often only the latter is emphasized. One reason for this is the organization of texts by syntactic categories for a particular programming language. We report on an approach that uses concept expansion (expanding a concept from its simple form to more complex forms as needed to aid in problem solving) and level integration (combining several concepts at the same level of difficulty). Three detailed examples are given: flow of control, recursion, and information hiding. We have been using this approach at New Mexico State for the last two years and have found it to be helpful in restoring the intended balance between problem solving and acquiring programming skills.

Collaboration


Dive into the Barry L. Kurtz's collaboration.

Top Co-Authors

Avatar

J. Mack Adams

New Mexico State University

View shared research outputs
Top Co-Authors

Avatar

Byron Thatcher

United States Military Academy

View shared research outputs
Top Co-Authors

Avatar

Cathy Cavendish

New Mexico State University

View shared research outputs
Top Co-Authors

Avatar

Dennis Johnson

City College of San Francisco

View shared research outputs
Top Co-Authors

Avatar

Edward M. Collins

New Mexico State University

View shared research outputs
Top Co-Authors

Avatar

Jeff Bonar

University of Pittsburgh

View shared research outputs
Top Co-Authors

Avatar

Joseph J. Pfeiffer

New Mexico State University

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Marilyn Loser

New Mexico State University

View shared research outputs
Top Co-Authors

Avatar

Mark B. Wells

New Mexico State University

View shared research outputs
Researchain Logo
Decentralizing Knowledge