Network


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

Hotspot


Dive into the research topics where Viera K. Proulx is active.

Publication


Featured researches published by Viera K. Proulx.


technical symposium on computer science education | 2000

Programming patterns and design patterns in the introductory computer science course

Viera K. Proulx

We look at the essential thinking skills students need to learn in the introductory computer science course based on object-oriented programming. We create a framework for such a course based on the elementary programming and design patterns. Some of these patterns are known in the pattern community, others enrich the collection. Our goal is to help students focus on mastering reasoning and design skills before the language idiosynchracies muddy the water.


technical symposium on computer science education | 2006

Tools for teaching introductory programming: what works?

Kris Powers; Paul Gross; Steve Cooper; Myles F. McNally; Kenneth Goldman; Viera K. Proulx; Martin C. Carlisle

1. SUMMARY In the past decade educators have developed a myriad of tools to help novices learn to program. Different tools emerge as new features or combinations of features are employed. In this panel we consider the features of recent tools that have garnered significant interest in the computer science education community. These including narrative tools which support programming to tell a story (e.g., Alice [6], Jeroo [8]), visual programming tools which support the construction of programs through a drag-and-drop interface (e.g., JPie [3], Alice [6], Karel Universe), flow-model tools (e.g., Raptor [1], Iconic Programmer [2], VisualLogic) which construct programs through connecting program elements to represent order of computation, specialized output realizations (e.g., Lego Mindstorms [5], JES [7]) that provide execution feedback in nontextual ways, like multimedia or kinesthetic robotics, and tiered language tools (e.g., ProfessorJ [4], RoboLab) in which novices can use more sophisticated versions of a language as their expertise develops.


technical symposium on computer science education | 2001

Java power tools: model software for teaching object-oriented design

Richard Rasala; Jeff Raab; Viera K. Proulx

The Java Power Tools or JPT is a Java toolkit designed to enable students to rapidly develop graphical user interfaces in freshman computer science programming projects. Because it is simple to create GUIs using JPT, students can focus on the more fundamental issues of computer science rather than on widget management. In a separate article[4], we will discuss with examples how the JPT can help freshman students to learn about the basics of algorithms, data structures, classes, and interface design. In this article, we will focus on how the JPT itself can be used as an extended case study of object-oriented design principles in a more advanced course.The fundamental design principles of the JPT are that the elements of a graphical user interface should be able to be combined recursively as nested views and that the communication between these views and the internal data models should be as automatic as possible. In particular, in JPT, the totality of user input from a complex view can be easily converted into a corresponding data model and any input errors will be detected and corrected along the way. This ease of communication is achieved by using string objects as a lingua franca for views and models and by using parsing when appropriate to automatically check for errors and trigger recovery. The JPT achieves its power by a combination of computer science and software design principles. Recursion, abstraction, and encapsulation are systematically used to create GUI tools of great flexibility. It should be noted that a much simpler pedagogical package for Java IO was recently presented in [9].


technical symposium on computer science education | 1997

Exploring Martian planetary images: C++ exercises for CS1

Harriet J. Fell; Viera K. Proulx

We present a series of programming exercises based on photographic images of Mars collected by the NASA Viking Orbiter. Even without the news that there may once have been life on Mars [1], we feel that these exercises provide an exciting platform for exploring machine representation of data, presentation of data, and methods of storing and extracting data from files. All exercises are on the level easily mastered in the first programming course.


integrating technology into computer science education | 1996

Foundations of computer science: what are they and how do we teach them?

Viera K. Proulx; Richard Rasala; Harriet J. Fell

Computer science as a discipline is changing rapidly. New developments in software and hardware are changing the way we write programs, design systems, and create applications. The role of the first year curriculum in computer science is to lay the foundations for becoming a professional in the field. We examine the ways in which the changing nature of computer science influences our teaching methods, our view of which concepts are fundamental, and the overall sense of what it takes to become a successful computer scientist. We propose a first year curriculum model that has a strong emphasis on design, on programming in a structured project based environment, and on the extensive use of tools, libraries, and templates. We illustrate this model by describing a collection of graphicsbased exercises that apply computing across the disciplines. 1 Curriculum trends in computer science 1.1 Depth first versus breadth first Unlike mathematics where the freshman curriculum has consisted of calculus for generations, there is a significant debate among computer science educators about what to teach to freshman computer science majors. The two main views have been described as ‘breadth first’ and ‘depth first’ ACM/IEEE Curriculum 91 [21]. The proponents of the ‘breadth first’ view recommend that students receive a broad introduction to computer science including topics such as algorithmic, logic, computer architecture, machine languages, high level languages, compilation, the elements of programming, artificial intelligence, etc. The proponents of the ‘depth first’ view recommend that programming be the focal topic for the freshman year and that related topics such as algorithms, data structures, and design be motivated as providing a more powerful perspective on the programming process. Both views have merit which is why the debate has not and probably cannot be entirely resolved. At Northeastern University, we organize the freshman program on the ‘depth first’ model. We do this from a belief that what brings a student into computer science in the first place is the fact that a computer program designed from pure thought can make the computer do wonderful things. We want to build on Permission to tnal(e Cfigitalmarcl mpy of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or mmmercial advantage, the copyright notice, the title of the ublication and its date appear, and notice is given that ! copying is y permission of ACM, Inc. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission andlor a fee. Integrating Tech. into C.S.E. W96 Barcelona, Spain 01996 ACM O-89791 -844-u9WOO09...


integrating technology into computer science education | 1997

Using the WWW as the delivery mechanism for interactive, visualization-based instructional modules (report of the ITiCSE '97 working group on visualization)

Thomas L. Naps; Joseph Bergin; Ricardo Jiménez-Peris; Myles F. McNally; Marta Patiño-Martínez; Viera K. Proulx; Jorma Tarhio

505O this excitement. We also have a practical reason. After the freshman year, our students follow a cooperative education plan in which they alternate academic work with work in industry every three months. It is only by following a ‘depth first’ model that we can prepare our students to be ready for their first job assignments in the software industry. 1.2 The importance of design The rapid developments in both hardware and software that have taken place in the past few years call into question the traditional approaches to computer science education for undergraduates. In 1976, Niklaus Wirth could summarize the essence of software design in the title of his book Algorithms + Data Structures = Programs. The philosophy of this text is that a knowledge of the classic algorithms and data structures is the critical component in the education of a computer scientist. The development of complete programs is seen as a relatively simple top-down process in which the functional decomposition of a design problem leads naturally to the use of appropriate algorithms and data structures. Today, the design and development of programs is more complex and more subtle than the simple model suggested by Wirth’s title. To train students to work in a modern software development environment, it is essential to recognize that classic algorithms and data structures are just the starting point. The design process itself must be a major focus throughout the curriculum. Traditionally, computer science education has been most concerned with the design and performance of individual algorithms on individual data structures. It is now imperative that the design of large program structures with elaborate functionalities and elegant interfaces be treated as one of the central problems of computer science education. To build an innovative curriculum with a focus on issues of design, it is important to recognize certain critical realities: . The object-oriented paradigm has become central to the design process [2, 10, 16]. The concept of object combines a data structure with the algorithms that operate on it. Although this combination may at first seem merely convenient, it changes the entire design process from a top-down functional model to a model of objects that interact with one another. The bells and whistles of object-oriented design such as inheritance, function and operator overloading, and templates also make the use of objects more natural and more powerful than classic data structures. . Graphics and user interface design are now as fundamental to programming as text [1,5,6,9,10,13,14, 18,19]. Due to the needs of graphics and user interface design, modern operating


technical symposium on computer science education | 2010

Re)defining computing curricula by (re)defining computing

Charles Lee Isbell; Lynn Andrea Stein; Robb Cutler; Jeffrey M. Forbes; Linda Fraser; John Impagliazzo; Viera K. Proulx; Steve Russ; Richard Thomas; Yan Xu

Visualization has long been an important pedagogical tool in CS education. The widespread use of the Web and the introduction of Java, with its ability to present interactive animated applets and other types of animation, all provide opportunities to expand the availability of visualization-based teaching and learning tools. In addition, the Web introduces new opportunities not available in traditional settings.We start by identifying the types of learning objectives that can be supported by visualizations and the Web environment. Next we look at specific areas where the use of the Web enhances learning beyond the usual visualization, as well as at new learning and teaching paradigms supported by the Web. We then discuss a number of different mechanisms that can be used to deliver visualizations over the Web and new ways of managing displays in the Web-based environment. We point out both advantages and disadvantages of using the Web. A look into the future follows. We consider what changes and improvements we can expect and what specific activities we would like the CS community to undertake. We end with a brief survey of currently available Web-based visualization teaching tools and a commitment to maintain a list of links to these and other sites.


technical symposium on computer science education | 1994

From animation to analysis in introductory computer science

Richard Rasala; Viera K. Proulx; Harriet J. Fell

What is the core of Computing? This paper defines the discipline of computing as centered around the notion of modeling, especially those models that are automatable and automatically manipulable. We argue that this central idea crucially connects models with languages and machines rather than focusing on and around computational artifacts, and that it admits a very broad set of fields while still distinguishing the discipline from mathematics, engineering and science. The resulting computational curriculum focuses on modeling, scales and limits, simulation, abstraction, and automation as key components of a computationalist mindset.


technical symposium on computer science education | 2000

Pedagogical power tools for teaching Java

Jeff Raab; Richard Rasala; Viera K. Proulx

At educational computer conferences and exhibits, one is overwhelmed by the extensive use of computers as learning tools in almost any subject. However, the one subject which stands out for its limited use of computers is computer science. There is a tendency in computer science education to focus on what goes on in the mind: design and analysis of algorithms, development of data structures, and use of abstraction and modularization in programming. The computer is seen only as the object of study but not as a tool in the educational process. The danger in such an approach to teaching computer science is that the student may become facile in the use of formalism and languages but may fail to deeply grasp what is really going on One important way in which computers have been used in computer science to assist the educational process is by the development of algorithm animations. Algorithm animations have been created by a number of computer science educators including ourselves [2,3,4,5,6,7,8, 10,11, 12], The primary goals of these algorithm animations have been: .


integrating technology into computer science education | 1996

Use of laboratories in computer science education: guidelines for good practice: report of the working group on computing laboratories

Deborah Knox; Ursula Wolz; Daniel T. Joyce; Elliot B. Koffman; Joan Krone; Atika Laribi; J. Paul Myers; Viera K. Proulx; Kenneth A. Reek

We describe a Java toolkit that is designed to support the creation of powerful and extensible GUI interfaces during the first year computer science course. The goals of this toolkit are to provide:• an infrastructure for creating well designed programs that illustrates the concepts of computer science and its practical applications• an environment for learning the basic ideas of interface design and for experimenting with a variety of designs• a paradigm for building interfaces in Java that scales from individual data items to large structures, using recursively displayable container classesAdditionally, the toolkit classes themselves can be studied as examples of proper object oriented design, and of building event listeners.

Collaboration


Dive into the Viera K. Proulx's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Jeff Raab

Northeastern University

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

José C. Cunha

Universidade Nova de Lisboa

View shared research outputs
Researchain Logo
Decentralizing Knowledge