论文标题

计算和绘画:一种视觉方法的原则编程方法

Figuring and Drawing: A Visual Approach to Principled Programming

论文作者

Keravnou-Papailiou, Elpida

论文摘要

本科计算机科学课程中的一个坚定挑战是计算机编程的教学。通过本文是一篇关于编程的文章,我们旨在通过讨论我们在研究的第一个学期的研究中,即在基于文本和基于Raster的图形上的利用中,在他们的研究的第一学期中讨论了我们在教授原理编程的方法中的特定特征,以促进众多现有教学法,方法和哲学。尽管给定的课程在交付的30年中已经大幅发展,涉及编程语言(Miranda,C,C ++,Java)和范式(功能性,命令性,面向对象,使用程序和面向对象的结合),但讨论的视觉特征已得到维持并稳定地增强。 我们将抽象,问题分解和综合,信息隐藏,可重复性,模块化和扩展性列为解决问题和算法思维的关键原理。这些原理与问题分解,模式识别,模式概括和算法设计的倡导计算思维技术紧密相符。我们的目标是让学生通过解决实际问题解决上述所有原则。我们正在进行的询问是,图片的问题域是否为这一目标有价值。此外,附加的价值是学生以视觉,经验的方式瞥见了计算复杂性。 提出的工作与视觉编程无关,因为学生在文字上和图形上不编写他们的程序。视觉形式是他们程序的输出。不过,我们的方法与乌龟图形的经典范式松散相关。但是,我们的重点是计算机科学专业,他们应该能够设计和建造乌龟和其他物体,而不仅仅是使用它们。确实,编程原理课程有助于他们完成两者,并欣赏产生相同视觉输出的多种算法方法。当前,从程序,基于过程和面向对象的,基于概念的视角和课程使用Java语言,可以从程序化的原理中获取。通过提出的示例问题,我们旨在展示图片视觉域的适当性,以支持学习原则编程的学习。图片的问题域大量丰富,潜在的示例可以借鉴。此外,正如文献报道的那样,与其他问题领域有关的女学生可能会对编程类别的视觉问题领域表现出更高的兴趣。我们计划在我们更广泛的目标中调查这种猜想,以鼓励更多女性遵循计算机科学的大学研究;在本文中,只提出了一个粗略的发现,这与文献中报道的内容有一定的关系。

A standing challenge in undergraduate Computer Science curricula is the teaching and learning of computer programming. Through this paper which is an essay about programming, we aim to contribute to the plethora of existing pedagogies, approaches and philosophies, by discussing a specific feature of our approach in teaching principled programming to undergraduate students, in their first semester of studies, namely the utilization of pictures, both text-based and raster-based graphics. Although the given course has evolved substantially over the thirty years of its delivery regarding the programming languages (Miranda, C, C++, Java) and paradigms (functional, imperative, object-oriented, combination of procedural and object-oriented) used, the discussed visual feature has been maintained and steadily strengthened. We list abstraction, problem decomposition and synthesis, information hiding, reusability, modularity and extensibility as key principles of problem solving and algorithmic thinking. These principles are closely aligned with the advocated computational thinking techniques of problem decomposition, pattern recognition, pattern generalization and algorithm design. We aim for our students to familiarize themselves with all the above principles through practical problem solving. Our ongoing inquiry has been whether the problem domain of pictures is contributing valuably towards this aim. Moreover, an added-value is that students get a glimpse of computational complexity in a visual, empirical way. The presented work is not related to visual programming, since the students write their programs textually and not graphically; it's the output of their programs which is in visual form. Our approach though is loosely related to the classical paradigm of turtle graphics. However, our focus is Computer Science majors, who should be able to design and build turtles and other objects and not just use them. Indeed, the programming principles course helps them to do both and also to appreciate the multitude of algorithmic ways for producing the same visual output. Currently the given programming principles are approached both from a procedural, process-based and an object-oriented, concept-based perspective and the course uses the Java language. Through the presented example problems, we aim to show the appropriateness of the visual domain of pictures for supporting the learning of principled programming. The problem domain of pictures is abundantly rich with potential examples to draw from. Moreover, as reported in the literature, female students may show higher interest towards visual problem domains in programming classes, in relation to other problem domains. We plan to investigate this conjecture in the context of our broader aim to encourage more females to follow university studies in computer science; in this paper only a cursory finding is presented, that bears some relation to what is reported in the literature.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源