Updated: 1 hour 20 min ago
Juha Sorva, Ville Karavirta, Lauri Malmi
This article is a survey of program visualization systems intended for teaching beginners about the runtime behavior of computer programs. Our focus is on generic systems that are capable of illustrating many kinds of programs and behaviors. We inclusively describe such systems from the last three decades and review findings from their empirical evaluations. A comparable review on the topic does not previously exist; ours is intended to serve as a reference for the creators, evaluators, and users of educational program visualization systems. Moreover, we revisit the issue of learner engagement which has been identified as a potentially key factor in the success of educational software visualization and summarize what little is known about engagement in the context of the generic program visualization systems for beginners that we have reviewed; a proposed refinement of the frameworks previously used by computing education researchers to rank types of learner engagement is a ...
Alejandra J. Magana, Michael L. Falk, Michael J. Reese, Jr.
This article investigates the effectiveness of a course employing a discipline-based computing approach. The research questions driving this study were: (1) Can experiences with discipline-based computing promote students’ acquisition and application of foundational computing concepts and procedures? (2) How do students perceive and experience the integration of discipline-based computing as relevant to their future career goals? (3) How do students perceive the structure of the class as useful and engaging for their learning? We used qualitative and quantitative research methods to approach the research questions. The population studied was 20 engineering undergraduates from Johns Hopkins University. Results of this study suggest that students performed proficiently in applying computing methods, procedures, and concepts to the solution of well-structured engineering problems.
This article discusses the evolution of a single undergraduate computer graphics course over five semesters, driven by a primary question: if one could offer only one undergraduate course in graphics, what would it include? This constraint is relevant to many small and medium-sized colleges that lack resources, adequate expertise, and enrollment to sustain multiple courses in graphics that spread out its vast and evolving content. We strive to include material that would provide (1) a basic but solid theoretical foundation, (2) topics, data structures, and algorithms that are most practically used, (3) ample experience in actual graphics programming and (4) a basic awareness of advanced topics.
J. Ángel Velázquez-Iturbide
Greedy algorithms constitute an apparently simple algorithm design technique, but its learning goals are not simple to achieve. We present a didactic method aimed at promoting active learning of greedy algorithms. The method is focused on the concept of selection function, and is based on explicit learning goals. It mainly consists of an experimental method and the interactive system, GreedEx, that supports it. We also present our experience of five years using the didactic method and the evaluations we conducted to refine it, which are of two kinds: usability evaluations of GreedEx and analysis of students’ reports. Usability evaluations revealed a number of opportunities of improvement for GreedEx, and the analysis of students’ reports showed a number of misconceptions.
Andreas Stefik, Susanna Siebert
Recent studies in the literature have shown that syntax remains a significant barrier to novice computer science students in the field. While this syntax barrier is known to exist, whether and how it varies across programming languages has not been carefully investigated. For this article, we conducted four empirical studies on programming language syntax as part of a larger analysis into the, so called, programming language wars. We first present two surveys conducted with students on the intuitiveness of syntax, which we used to garner formative clues on what words and symbols might be easy for novices to understand. We followed up with two studies on the accuracy rates of novices using a total of six programming languages: Ruby, Java, Perl, Python, Randomo, and Quorum.
Active learning in the college classroom has long been promoted as more effective than traditional lecture. Increased adoption of these instructional practices is recommended in several prominent national reports as well as a new National Science Foundation program. The goal of this special issue is to share evidence-based instructional practices that have been applied to computer science education. With collaborative learning, students interact with each other to achieve a common learning goal. Peer Instruction is an active pedagogy pioneered in Physics education in which most lecture time is replaced with students answering carefully designed multiple-choice questions. Chemistry faculty developed and refined an inquiry-based pedagogy called Process-Oriented Guided-Inquiry Learning (POGIL).
Leland Beck, Alexander Chizhik
Cooperative learning is a well-known instructional technique that has been applied with a wide variety of subject matter and a broad spectrum of populations. This article briefly reviews the principles of cooperative learning, and describes how these principles were incorporated into a comprehensive set of cooperative learning activities for a CS1 course. In each activity, specific roles are assigned to group members in order to highlight important concepts and to enhance the overall functioning of the group. The group processing is followed by a whole-class debriefing led by the instructor, which works in tandem with the group activity to help students improve their understanding of the material.
Karen Renaud, Quintin Cutts
Computing science students amass years of programming experience and a wealth of factual knowledge in their undergraduate courses. Based on our combined years of experience, however, one of our students' abiding shortcomings is that they think there is only one correct answer to issues in most courses: an idealistic stance. Human-centered security, as well as other areas, requires students to understand that they have to weigh up a number of different possible solutions, and satisfice, rather than choose the one that is undeniably the best. In other words, they need to adopt a more realistic stance. Lecture-based teaching cannot develop this facility, due to its inability to engage students deeply with the issues and possible solutions.
Cynthia Bailey Lee, Saturnino Garcia, Leo Porter
Peer Instruction (PI) is an active learning pedagogical technique. PI lectures present students with a series of multiple-choice questions, which they respond to both individually and in groups. PI has been widely successful in the physical sciences and, recently, has been successfully adopted by computer science instructors in lower-division, introductory courses. In this work, we challenge readers to consider PI for their upper-division courses as well. We present a PI curriculum for two upper-division computer science courses: Computer Architecture and Theory of Computation. These courses exemplify several perceived challenges to the adoption of PI in upper-division courses, including: exploration of abstract ideas, development of high-level judgment of engineering design trade-offs, and exercising advanced mathematical sophistication.
Helen H. Hu, Tricia D. Shepherd
POGIL has been successfully implemented in a scientific computing course to teach science students how to program in Python. Following POGIL guidelines, the authors have developed guided inquiry activities that lead student teams to discover and understand programming concepts. With each iteration of the scientific computing course, the authors have refined the activities and learned how to better adapt POGIL for the computer science classroom. This article details how POGIL activities differ from both traditional computer science labs and other active-learning pedagogies. Background is provided on POGIL's effectiveness. The article then includes a full description of how POGIL activities were used in the scientific computing course, as well as an example POGIL activity on recursion.
Christopher D. Hundhausen, Anukrati Agrawal, Pawan Agarwal
Given the increasing importance of soft skills in the computing profession, there is good reason to provide students with more opportunities to learn and practice those skills in undergraduate computing courses. Toward that end, we have developed an active learning approach for computing education called the Pedagogical Code Review (PCR). Inspired by the code inspection process used in the software industry, a PCR is a collaborative activity in which a small team of students, led by a trained moderator: (a) walk through segments of each other's programming solutions, (b) check the code against a list of best coding practices, and (c) discuss and log issues that arise.