Programs that use animations or visualizations attract student interest and offer feedback that can enhance different learning styles as students work to master programming and problem solving. In this paper we report on several CS 1 assignments we have used successfully at Duke University to introduce or reinforce control constructs, elementary data structures, and object-based programming. All the assignments involve either animations by which we mean graphical displays that evolve over time, or visualizations which include static display of graphical images. The animations do not require extensive programming by students since students use classes and code that we provide to hide much of the complexity that drives the animations. In addition to generating enthusiasm, we believe the animations assist with mastering the debugging process.
Programs that use animations or visualizations attract student interest and offer feedback that can enhance ,different learning styles as students work to master programming and problem solving. In this paper we report on several CS 1 assignments we have used successfully at Duke University to introduce or reinforce control constructs, elementary data structures, and object-based programming. All the assignments involve either animations by which-we mean graphical displays that evolve over time, or visualizations which include static display of graphical images. The animations do not require extensive programming by students since students, use classes and code that we provide to hide much of,the complexity that drives the animations. In-addition to generating enthusiasm, we believe the animations assist with mastering the debugging process.,1 Introduction 8In this paper wehescribe a collection of CS 1 assignments that visualize and/or animate problems that are too complex or tedious to view in a textual manner. Each problem focuses on either objects changing over time, or alarge amount of data to display. For those problems with objects changing over time, displaying their changes in a textual (manner results in a large amount of output. This output is easy to decipher if just one object is moving, but tedious, if multiple objects are moving at the same time, since the, output descriptions are interlaced. For those problems with a large amount of data to display, we display the data graphically. In some cases, the order the data is generated is important, so its drawing is animated to provide a historical view. Our assignments are written in C-t-+ and most were created in 1996. Animations use either Xtango [S], its successor Samba [9], or a Java compatible version of these called Lambada [2]. Image display uses the SharewareprogramXV, running under X Windows. We provide classes and code to hide the details of Xtangd and Xv so students can focus on '~ _I , >, using C-t-+ while still able to generate animations and pictures. The Xtango animator is an interpretor that parses textual commands for creating and moving objects. Programs can be written in any language to print Xtango commands which are piped to the animator. The XV program reads a file as input. Code provided to students writes a temporary file, calls XV to display the file, and then deletes the temporaryfile making display seamless from a user's perspective.In the next sections we give several examples of how we use animations'and'interactive graphics at Duke University to introduce language features and topics from computer science. In Section 2 we describe a basic use of animation we use early in the semester to introduce students to classes; in Section 3 we describe Xtango and a simple drawing program students write; in Section 4 we discuss animations based on random walks and a cardioverter/debrillator; in Section 5 we discuss an animated histogram program; and in Section 6 we discuss an interactive image processing program. Concluding remarks are ...
For forty years programming has been the foundation of introductory computer science. Despite exponential increases in computational power during this period, examples used in introductory courses have remained largely unchanged. The incredible growth in statistics courses at all levels, in contrast with the decline of students taking computer science courses, points to the potential for introducing computer science at many levels without emphasizing the process of programming: leverage the expertise and role-models provided by high school mathematics teachers by studying topics that arise from social networks and modeling to introduce computer science as an alternative to the traditional programming approach. This new approach may capture the interest of a broad population of students, crossing gender boundaries. We are developing modules that we hope will capture student interest and provide a compelling yet intellectually rich area of study. We plan to incorporate these modules into existing courses in math, statistics, and computer science at a wide variety of schools at all levels.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
hi@scite.ai
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
Copyright © 2024 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.