Results 1 -
9 of
9
Rethinking Computer Science Education from a Test-First Perspective
- In Companion of the 2003 ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications
, 2003
"... Despite our best efforts and intentions as educators, student programmers continue to struggle in acquiring comprehension and analysis skills. Students believe that once a program runs on sample data, it is correct; most programming errors are reported by the compiler; when a program misbehaves, shu ..."
Abstract
-
Cited by 29 (3 self)
- Add to MetaCart
Despite our best efforts and intentions as educators, student programmers continue to struggle in acquiring comprehension and analysis skills. Students believe that once a program runs on sample data, it is correct; most programming errors are reported by the compiler; when a program misbehaves, shuffling statements and tweaking expressions to see what happens is the best debugging approach. This paper presents a new vision for computer science education centered around the use of test-driven development in all programming assignments, from the beginning of CS1. A key element to the strategy is comprehensive, automated evaluation of student work, in terms of correctness, the thoroughness and validity of the student’s tests, and an automatic coding style assessment performed using industrial-strength tools. By systematically applying the strategy across the curriculum as part of a student’s regular programming activities, and by providing rapid, concrete, useful feedback that students find valuable, it is possible to induce a cultural shift in how students behave.
Teaching Introductory Java Through LEGO MINDSTORMS models
- ACM SIGCSE Bulletin
, 2002
"... Innovative teachers are continually looking for creative ideas, both to get their ideas across and to hold the interest of their students. One of the latest trends is the use of LEGO ® MINDSTORMS ™ kits [9] in various computing courses. These kits allow a wide variety of physical models to be built, ..."
Abstract
-
Cited by 10 (0 self)
- Add to MetaCart
Innovative teachers are continually looking for creative ideas, both to get their ideas across and to hold the interest of their students. One of the latest trends is the use of LEGO ® MINDSTORMS ™ kits [9] in various computing courses. These kits allow a wide variety of physical models to be built, some of which may be programmed via the RCX ™ processor integrated into them. Using its standard firmware, the RCX device may be programmed through several different specialist languages. However, the additional availability of bytecode-compatible replacement firmware for the RCX makes the use of Java ™ as the programming language for it a particularly attractive approach. In this paper, we explore some of the issues associated with choosing to program MINDSTORMS models using Java within the context of an introductory programming course. In particular, we consider the impact on the material that is taught, and the use of an appropriate API to support an objects-early programming style. 1 The RCX Processor The RCX is a programmable processor housed in an oversized LEGO brick. This allows the processor to be an integral part of any model that is built with the MINDSTORMS kits. On the outside of the processor’s brick are three input ports (labeled 1, 2, and 3), three output ports (labeled A, B, and C), an input-output infrared device, a single-line LCD, a speaker, and four buttons (one of which is the on-off switch). In size, the input and output ports are compatible with standard LEGO bricks but they also have electrical contacts. These are designed to attach to similar contacts housed in special purpose input and out-Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.
Introducing Computer Science Through Animation and Virtual Worlds
, 2002
"... We describe a course for non-majors that teaches computer science concepts and programming by creating simple animations and building 2D and 3D virtual worlds. Students work with scripting languages, an interactive programming environment, a programmable modeling environment, and finish with a simpl ..."
Abstract
-
Cited by 8 (2 self)
- Add to MetaCart
We describe a course for non-majors that teaches computer science concepts and programming by creating simple animations and building 2D and 3D virtual worlds. Students work with scripting languages, an interactive programming environment, a programmable modeling environment, and finish with a simple programming language. Students work in pairs on computers during class. Each student creates a web portfolio to display their work.
Jeroo: A Tool for Introducing Object-Oriented Programming
- In Proceedings of the Thirtyfourth SIGCSE Technical Symposium on Computer Science Education (2003), ACM
, 2003
"... Jeroo is a tool that has been developed to help students in beginning programming courses learn the semantics of fundamental control structures, learn the basic notions of using objects to solve problems, and learn to write methods that support a functional decomposition of the task. Jeroo is simila ..."
Abstract
-
Cited by 7 (0 self)
- Add to MetaCart
Jeroo is a tool that has been developed to help students in beginning programming courses learn the semantics of fundamental control structures, learn the basic notions of using objects to solve problems, and learn to write methods that support a functional decomposition of the task. Jeroo is similar to Karel the Robot and its descendants, but has a narrower scope that Karel’s descendants and has a syntax that provides a smoother transition to either Java or C++. Jeroo has been class tested at Northwest Missouri State University, and has proven to be an effective tool for working with students in a beginning programming class. 1
greenfoot: Combining Object Visualisation with Interaction, The 19th Annual OOPSLA conference, Educators' Symposium
, 2004
"... The introduction of programming education with objectoriented languages slowly migrates down the curriculum and is now often introduced at the high school level. This migration requires teaching tools that are adequate for the intended target audience. In this paper, we present a new tool for teachi ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
The introduction of programming education with objectoriented languages slowly migrates down the curriculum and is now often introduced at the high school level. This migration requires teaching tools that are adequate for the intended target audience. In this paper, we present a new tool for teaching objectoriented programming aimed at students at or below college level, with special emphasis of supporting school age learners. This tool was designed by analysing and combining the most beneficial aspects of several existing tools. It aims at combining the simplicity and visual appeal of Karel the Robot with much of the flexibility and interaction of BlueJ, while at the same time opening up possibilities of new applications. Categories and Subject Descriptors
Teaching Object-Oriented Software Engineering through Problem-Based Learning in the Context of Game Design
"... Although Object Orientation is emphasised in software engineering education, few have attempted to alleviate the initial learning curve associated with an inexperienced audience in non-computer science disciplines. The authors propose a Problem-Based Learning curriculum centered on game development ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
Although Object Orientation is emphasised in software engineering education, few have attempted to alleviate the initial learning curve associated with an inexperienced audience in non-computer science disciplines. The authors propose a Problem-Based Learning curriculum centered on game development to deliver basic Object-Oriented programming concepts in an interactive and engaging manner. Class activities occur within the context of the Object-Oriented Rational Unified Process. One of the most significant contributions of this paper lies in the design of class modules containing tasks intended to educate students on Object-Oriented Software Engineering in an incremental and self-actuated way. 1
21st Conference on Software Engineering Education and Training Teaching Object-Oriented Software Engineering through Problem-Based Learning in the Context of Game Design
"... Although Object Orientation is emphasised in software engineering education, few have attempted to alleviate the initial learning curve associated with an inexperienced audience in non-computer science disciplines. The authors propose a Problem-Based Learning curriculum centered on game development ..."
Abstract
- Add to MetaCart
Although Object Orientation is emphasised in software engineering education, few have attempted to alleviate the initial learning curve associated with an inexperienced audience in non-computer science disciplines. The authors propose a Problem-Based Learning curriculum centered on game development to deliver basic Object-Oriented programming concepts in an interactive and engaging manner. Class activities occur within the context of the Object-Oriented Rational Unified Process. One of the most significant contributions of this paper lies in the design of class modules containing tasks intended to educate students on Object-Oriented Software Engineering in an incremental and self-actuated way. 1
Deepening Students ’ Understanding of Algorithms: Effects of Problem Context and Feedback Regarding Algorithmic Abstraction
, 2011
"... Copyright c ○ 2011 Leigh Ann SudolAbstractIn the study of computer science, programming is a fundamental skill, not just for the production of code, but for the practice of problem decomposition and algorithmic production. In introductory classes, students are expected to learn the skills to decompo ..."
Abstract
- Add to MetaCart
Copyright c ○ 2011 Leigh Ann SudolAbstractIn the study of computer science, programming is a fundamental skill, not just for the production of code, but for the practice of problem decomposition and algorithmic production. In introductory classes, students are expected to learn the skills to decompose problems into component parts, select appropriate algorithmic strategies, and compose those various strategies into a semantically and syntactically correct program. The challenge for students is understanding that programming is not simply about constructing individually correct lines of code, but how those lines work together to produce a coherent algorithm. Current technological approaches to developing pedagogical tools for supporting code production focus on either supporting students at the beginning of the process by prompting for small steps in the code writing process, or scaffolding the debugging process after the student produces compilable code. These approaches do not support deeper understanding of the algorithms that will transfer to future problem solving situations. The early assistance robs them of the opportunity to navigate the search space to retrieve the strategies appropriate for the particular

