Results 11 - 20
of
45
Design of Class Hierarchies – An Introduction to OO Program Design
- Proceedings of the 37 th SIGCSE Technical Symposium on Computer Science Education, March 1-5 th , 2006
, 2006
"... ..."
Multimedia for computer science: from CS0 to grades 7-12
, 2003
"... Abstract: The pipeline for women and minorities entering CS/IT is shrinking. Using a combination of multimedia e-learning and mentoring, we seek to widen the pipeline in both first year college courses and grades 7-12. We are developing multimedia that complements a new first semester Computer Scien ..."
Abstract
-
Cited by 3 (3 self)
- Add to MetaCart
Abstract: The pipeline for women and minorities entering CS/IT is shrinking. Using a combination of multimedia e-learning and mentoring, we seek to widen the pipeline in both first year college courses and grades 7-12. We are developing multimedia that complements a new first semester Computer Science (CS0) textbook. For grades 7-12, we plan to establish outreach teams consisting of undergraduate and graduate student Teaching Fellows, teachers and administrators, faculty members, and industry professionals. This year, two outreach teams will adapt multimedia designed for CS0 for use in middle schools. Preliminary results show that the multimedia promotes learning of Java programming “objects first, ” for both undergraduates and high school students. One outreach team will adapt these Java materials for use in a high school. Another team will adapt multimedia introducing the field of CS for use in a middle school, seeking to clear up common misconceptions about Computer Science.
Teaching Java First: Experiments with a Pigs-Early Pedagogy
, 2004
"... This paper introduces PigWorld, a tool for teaching Java to novice programmers, via the objects-early style . Three design guidelines forobject-early assignments are discussed: (1) emphasize message passing between instances of the same class; (2) use only simple loops that search for smallest or la ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
This paper introduces PigWorld, a tool for teaching Java to novice programmers, via the objects-early style . Three design guidelines forobject-early assignments are discussed: (1) emphasize message passing between instances of the same class; (2) use only simple loops that search for smallest or largest values in a sequence; (3) teach linked lists before collections and collections before arrays. The paper offers a first step to resolving the dilemma over whether procedural programming must be taught before objects, via the following principle: in the procedural style, algorithms are encoded explicitly within the methods of an object, but in the object oriented style, algorithms emerge implicitly from the interactions between objects.
A design-first curriculum for teaching Java in a CS1 course
- SIGCSE Bulletin
, 2005
"... Pedagogies for teaching object-oriented programming in an introductory course are still under much debate. We present a design-first approach, which teaches problem-solving techniques using elements of UML. Objects are still introduced early in the curriculum. We also present two tools to support ou ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
Pedagogies for teaching object-oriented programming in an introductory course are still under much debate. We present a design-first approach, which teaches problem-solving techniques using elements of UML. Objects are still introduced early in the curriculum. We also present two tools to support our curriculum: multimedia courseware to help students learn the basic concepts of objects and classes, and an IDE that includes both a UML interface and interactive tools to allow easy experimentation.
Test-driven design for introductory OO programming
- in Proceedings of the 40th ACM technical symposium on Computer science education
"... Test-Driven Design (TDD) has been shown to increase the productivity of programming teams and improve the quality of the code they produce. However, most of the introductory curricula provide no introduction to test design, no support for defining the tests, and do not insist on a comprehensive test ..."
Abstract
-
Cited by 3 (2 self)
- Add to MetaCart
Test-Driven Design (TDD) has been shown to increase the productivity of programming teams and improve the quality of the code they produce. However, most of the introductory curricula provide no introduction to test design, no support for defining the tests, and do not insist on a comprehensive test coverage that is the driving force of the TDD. This paper presents a curriculum, pedagogy, and the software support for introductory object-oriented program design that uses the TDD consistently from the very beginning. The testing software does not increase the program complexity and is designed to work with the simplest programs. It has been used by hundreds of students at several colleges and is freely available on the web. Our experiences show that besides improving the quality of code students produce, TDD combined with the noviceappropriate test libraries reinforces students ’ understanding of the object oriented program design.
Word sense disambiguation using statistical methods
- In ACL 29
, 1991
"... Unified Modeling Language (UML) diagraming is commonly used in introductory Computer Science to teach basic object-oriented design, but there appears to be a lack of suitable software to support this task well. Many of the available programs focus on developing code and not on enhancing learning. Th ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
Unified Modeling Language (UML) diagraming is commonly used in introductory Computer Science to teach basic object-oriented design, but there appears to be a lack of suitable software to support this task well. Many of the available programs focus on developing code and not on enhancing learning. Those that were designed for educational use sometimes have poor interfaces or are missing common and important features, such as multiple selection and undo/redo. There is a need for software that is tailored to an instructional environment and has all the useful and needed functionality for that specific task. This is the purpose of minimUML. It provides a minimum amount of UML, just what is commonly used in beginning programming classes, while providing a simple, usable interface. In particular, minimUML was designed to support abstract design while supplying features for exploratory learning and error avoidance. Some of the functionality supported includes multiple selection, undo/redo, flexible printing, cut and paste, and drag and drop. In addition, it allows for the annotation of diagrams, through text or freeform drawings, so students can receive feedback on their work. To test minimUML’s ease of use, it was run through a small usability study. While a number of issues were raised, the tool generally received positive evaluations
Calculator problem and the Design Recipe
- SIGPLAN Notices
, 2005
"... This paper presents a superior alternative approach to designing a solution to the calculator problem due to Alphonce [1]. While Alphonce presents a fictitious one-act play between professors, this paper consists is a narrative explanation of the Java code written by this paper’s coauthor, – a stude ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
This paper presents a superior alternative approach to designing a solution to the calculator problem due to Alphonce [1]. While Alphonce presents a fictitious one-act play between professors, this paper consists is a narrative explanation of the Java code written by this paper’s coauthor, – a student who just completed the freshman year. The purpose of this paper is to illustrate the use of the Design Recipe pedagogy and the idea of focusing on the design of the structure of data, the classes, and class hierarchies, rather than the design of program actions (the algorithmics) as the core idea for program design. By contrasting the pedagogical approach and the final outcome with the “traditional ” objects-first approach, we illustrate the advantages of our curriculum that teaches the students how to think about program design in a truly object-oriented style. 1.
On the design and development of UML-based visual environment for novice programmers
- 1998 International Conference on Software Engineering: Education & Practice
, 2006
"... Few beginners find learning to program easy. There are many factors at work in this phenomenon with some being simply inherent in the subject itself, while others have more to do with deficiencies in learning methods and resources. As a result, many programming environments, software applications, a ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Few beginners find learning to program easy. There are many factors at work in this phenomenon with some being simply inherent in the subject itself, while others have more to do with deficiencies in learning methods and resources. As a result, many programming environments, software applications, and learning tools have been developed to address the difficulties faced by novice programmers. Of these tools, visual-based tools and the use of visualization have proven to be very effective in helping novices overcome several of these traditional difficulties. In this paper, we first examine the traditional difficulties that novice programmers encounter when take an introductory-level programming course are examined. It is important to gain an understanding of the scope of these difficulties first, as the rest of this paper considers how visual tools, visualization, and UML can be utilized to aid novice developers in these areas of difficulties. Next, we provide an analysis of several modern visual learning tools, including EROSI, AnimPascal, BlueJ, FLINT, BOOST, and SOLVEIT. In particular, we look at how these tools use visualization to help mitigate the difficulties novice programmers face. Each tool is also assessed based on its overall effectiveness of using visual aids and visualization to help the beginning programmer. We then turn our attention to the Unified Modeling Language (UML) and how it can be utilized to
Factors affecting the perceived effectiveness of pair programming in higher education
- in Proc. PPIG
, 2005
"... Abstract. This paper reports the findings of a study conducted on postgraduate students of an Object Oriented Programming (OOP) course in which pair programming was applied as an educational technique. This study addressed the question Why is pair programming sometimes ineffective? The focus of the ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Abstract. This paper reports the findings of a study conducted on postgraduate students of an Object Oriented Programming (OOP) course in which pair programming was applied as an educational technique. This study addressed the question Why is pair programming sometimes ineffective? The focus of the study was on exploring the factors that may affect the success of pair programming. We employed a combination of data gathering techniques and triangulated them to analyze the data. We observed, recorded and interviewed students who pair programmed. They also completed questionnaires. There was evidence that matching by skill level and the task in hand are the main factors in the success of a pair programming session. 1.
The Fundamental Design Issues of Jeliot 3
, 2004
"... Programming and algorithms are hard subjects to teach and learn. Especially novices seem to have problems to grasp the basic concepts of programming and algorithms. Software visualization has tried to provide help for teaching and learning these subjects. The Jeliot family is a group of program and ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
Programming and algorithms are hard subjects to teach and learn. Especially novices seem to have problems to grasp the basic concepts of programming and algorithms. Software visualization has tried to provide help for teaching and learning these subjects. The Jeliot family is a group of program and algorithm visualization tools to help novices to form the new concepts of programming and algorithms. In this thesis, a new version of Jeliot, called Jeliot 3, and its design are introduced. The new version is meant especially for novice students who are learning programming in Java language. It visualizes the data and the control flow of the programs as well as the object-oriented concepts such as constructors and objects. In the design, we have used a modular approach that connects an interpreter and a visualization engine to each other. Our design allows the utilization of two existing systems, Jeliot 2000 as a visualization engine and DynamicJava as an interpreter, to create the basis for this new system. To connect these two systems, we have created a new intermediate language. This new language also allows a formation of different kinds of visualizations with relative ease making the system extensible. In the design of the visualization, we have used the results from studies conducted in the fields of educational psychology and software visualization, and come into the conclusion that the program visualization for novices should be as complete, continuous and consistent as possible. Jeliot 3 extends the visualization capabilities of previous members of the Jeliot family with object-oriented concepts.

