Open Access. Powered by Scholars. Published by Universities.®

Articles 1 - 13 of 13

Full-Text Articles in Programming Languages and Compilers

Two-Language, Two-Paradigm Introductory Computing Curriculum Model And Its Implementation, Vladimir Zanev, Atanas Radenski Jan 2011

Two-Language, Two-Paradigm Introductory Computing Curriculum Model And Its Implementation, Vladimir Zanev, Atanas Radenski

Mathematics, Physics, and Computer Science Faculty Articles and Research

This paper analyzes difficulties with the introduction of object-oriented concepts in introductory computing education and then proposes a two-language, two-paradigm curriculum model that alleviates such difficulties. Our two-language, two-paradigm curriculum model begins with teaching imperative programming using Python programming language, continues with teaching object-oriented computing using Java, and concludes with teaching object-oriented data structures with Java.


Freedom Of Choice As A Motivational Factor In Active Learning, Atanas Radenski Jul 2009

Freedom Of Choice As A Motivational Factor In Active Learning, Atanas Radenski

Mathematics, Physics, and Computer Science Faculty Articles and Research

Freedom to choose what, when, and how to contribute in a learning process can motivate students to actively engage and achieve more in their studies. However, freedom of choice complicates course management and may deter instructors from allowing such freedom. Our approach is to utilize existing functionality of course management systems such as Moodle to automatically facilitate and coordinate free student choices and provide much needed relief for instructors at the same time. Using Moodle we have developed novel digital study packs that blend freedom of choice with guidance and control. Our survey shows that assisted freedom of choice is …


The Java 5 Generics Compromise Orthogonality To Keep Compatibility, Atanas Radenski, Jeff Furlong, Vladimir Zanev Jan 2008

The Java 5 Generics Compromise Orthogonality To Keep Compatibility, Atanas Radenski, Jeff Furlong, Vladimir Zanev

Mathematics, Physics, and Computer Science Faculty Articles and Research

In response to a long-lasting anticipation by the Java community, version 1.5 of the Java 2 platform - referred to as Java 5 - introduced generic types and methods to the Java language. The Java 5 generics are a significant enhancement to the language expressivity because they allow straightforward composition of new generic classes from existing ones while reducing the need for a plethora of type casts. While the Java 5 generics are expressive, the chosen implementation method, type erasure, has triggered undesirable orthogonality violations. This paper identifies six cases of orthogonality violations in the Java 5 generics and demonstrates …


Digital Support For Abductive Learning In Introductory Computing Courses, Atanas Radenski Mar 2007

Digital Support For Abductive Learning In Introductory Computing Courses, Atanas Radenski

Mathematics, Physics, and Computer Science Faculty Articles and Research

Students who grew up browsing the Web are skilled in what is usually referred to as abduction, a reasoning process that starts with a set of specific observations and then generates the best possible explanation of those observations. In order to exploit the abduction skills of contemporary students, we have developed digital CS1/2 study packs that promote and support active learning through abduction, i.e., abductive learning. The study packs integrate a variety of digital resources: online self-guided labs, e-texts, tutorial links, sample programs, quizzes, and slides. These online packs stimulate students to learn abductively by browsing, searching, and performing self-guided …


Python First: A Lab-Based Digital Introduction To Computer Science, Atanas Radenski Jun 2006

Python First: A Lab-Based Digital Introduction To Computer Science, Atanas Radenski

Mathematics, Physics, and Computer Science Faculty Articles and Research

The emphasis on Java and other commercial languages in CS1 has established the perception of computer science as a dry and technically difficult discipline among undecided students who are still seeking careers. This may not be a big problem during an enrolment boom, but in times of decreased enrolment such negative perception may have a devastating effect on computer science programs and therefore should not be ignored. We have made our CS1 course offerings more attractive to students (1) by introducing an easy to learn yet effective scripting language - Python, (2) by making all course resources available in a …


Handling The Subclassing Anomaly With Object Teams, Jeff Furlong, Atanas Radenski Jan 2006

Handling The Subclassing Anomaly With Object Teams, Jeff Furlong, Atanas Radenski

Mathematics, Physics, and Computer Science Faculty Articles and Research

Existing Java software or libraries can evolve via subclassing. Unfortunately, subclassing may not properly support code adaptation when there are dependencies between classes. More precisely, subclassing in collections of related classes may require reimplementation of otherwise valid classes. This problem is defined as the subclassing anomaly, which is an issue when software evolution or code reuse is a goal of the programmer who is using existing classes. Object Teams offers an implicit fix to this problem and is largely compatible with the existing JVM’s. In this paper, we evaluate how well Object Teams succeeds in providing a solution for a …


Anomaly-Free Component Adaptation With Class Overriding, Atanas Radenski Jan 2004

Anomaly-Free Component Adaptation With Class Overriding, Atanas Radenski

Mathematics, Physics, and Computer Science Faculty Articles and Research

Software components can be implemented and distributed as collections of classes, then adapted to the needs of specific applications by means of subclassing. Unfortunately, subclassing in collections of related classes may require re-implementation of otherwise valid classes just because they utilize outdated parent classes, a phenomenon that is referred to as the subclassing anomaly. The subclassing anomaly is a serious problem since it can void the benefits of component-based programming altogether. We propose a code adaptation language mechanism called class overriding that is intended to overcome the subclassing anomaly. Class overriding does not create new and isolated derived classes as …


The Subclassing Anomaly In Compiler Evolution, Atanas Radenski Jan 2003

The Subclassing Anomaly In Compiler Evolution, Atanas Radenski

Mathematics, Physics, and Computer Science Faculty Articles and Research

Subclassing in collections of related classes may require re-implementation of otherwise valid classes just because they utilize outdated parent classes, a phenomenon that is referred to as the subclassing anomaly. The subclassing anomaly is a serious problem since it can void the benefits of code reuse altogether. This paper offers an analysis of the subclassing anomaly in an evolving object-oriented compiler. The paper also outlines a solution for the subclassing anomaly that is based on alternative code reuse mechanism, named class overriding.


Object-Oriented Programming And Parallelism, Atanas Radenski Jan 1998

Object-Oriented Programming And Parallelism, Atanas Radenski

Mathematics, Physics, and Computer Science Faculty Articles and Research

Initially, object-orientation and parallelism originated and developed as separate and relatively independent areas. During the last decade, however, more and more researchers were attracted by the benefits from a potential marriage of the two powerful paradigms. Numerous research projects and an increasing number of practical applications were aimed at different forms of amalgamation of parallelism with object-orientation. It has been realized that parallelism is a inherently needed enhancement for the traditional object-oriented programming (OOP) paradigm, and that object orientation can add significant flexibility to the parallel programming paradigm.


Module Embedding, Atanas Radenski Dec 1997

Module Embedding, Atanas Radenski

Mathematics, Physics, and Computer Science Faculty Articles and Research

This paper proposes a code reuse mechanism called module embedding that enables the building of new modules from existing ones through inheritance, overriding of procedures, and overriding of types; the paper also describes an implementation scheme for this mechanism. Module embedding is beneficial when modules and classes are used in combination and need to be extended together, or when modules are more appropriate medium than classes.


Introducing Objects And Parallelism To An Imperative Programming Language, Atanas Radenski Jan 1994

Introducing Objects And Parallelism To An Imperative Programming Language, Atanas Radenski

Mathematics, Physics, and Computer Science Faculty Articles and Research

The problem of enhancing objects with parallelism has been in the focus of numerous research projects in the recent years, but a satisfactory and commonly accepted solution has not appeared yet. A major problematic point seems to be providing inheritance for parallel objects. The general objective of this paper is to contribute to a better understanding of the language design issues in the area of parallel object-oriented programming (OOP) and, in particular, to design a framework for parallel OOP with multiple inheritance. What makes our proposed framework different from the other parallel OOP languages is its easy to use and …


Lazy Evaluation And Nondeterminism Make Backus' Fp-Systems More Practical, Atanas Radenski Jan 1987

Lazy Evaluation And Nondeterminism Make Backus' Fp-Systems More Practical, Atanas Radenski

Mathematics, Physics, and Computer Science Faculty Articles and Research

Backus' FP-systems are made more practical by introducing into them lazy evaluation and nondeterminism. This is done in the framework of a concrete programming language called FP*. From the one hand, this language is almost as mathematical as FP-systems are. From the other hand, it gives the possibility to manage secondary memory and to develop such applications as, for instance, interactive and distributed file systems. Experimental versions of a compiler and an interpreter for the FP* language are implemented.


On Some Dependencies Between Functional Forms In Functional Programming Systems, Atanas Radenski Jan 1981

On Some Dependencies Between Functional Forms In Functional Programming Systems, Atanas Radenski

Mathematics, Physics, and Computer Science Faculty Articles and Research

In the present paper, some dependencies between functional forms in functional programming systems are demonstrated. It is shown that any functional form can be expressed by using only the forms composition, condition and construction.