scispace - formally typeset
Search or ask a question

Showing papers in "Computer Science Education in 2003"


Journal ArticleDOI
TL;DR: This paper identifies general trends comparing novice and expert programmers, programming knowledge and strategies, program generation and comprehension, and object-oriented versus procedural programming and topics relating to novice teaching and learning.
Abstract: In this paper we review the literature relating to the psychological/educational study of programming. We identify general trends comparing novice and expert programmers, programming knowledge and strategies, program generation and comprehension, and object-oriented versus procedural programming. (We do not cover research relating specifically to other programming styles.) The main focus of the review is on novice programming and topics relating to novice teaching and learning. Various problems experienced by novices are identified, including issues relating to basic program design, to algorithmic complexity in certain language features, to the “fragility” of novice knowledge, and so on. We summarise this material and suggest some practical implications for teachers. We suggest that a key issue that emerges is the distinction between effective and ineffective novices. What characterises effective novices? Is it possible to identify the specific deficits of ineffective novices and help them to become effec...

1,381 citations


Journal ArticleDOI
TL;DR: BlueJ, an integrated development environment designed for teaching object-orientation, is introduced and it is discussed how the use of this tool can change the approach to teaching.
Abstract: Many teachers experience serious problems when teaching object orientation to beginners or professionals. Many of these problems could be overcome or reduced through the use of more appropriate tools. In this paper, we introduce BlueJ, an integrated development environment designed for teaching object orientation, and discuss how the use of this tool can change the approach to teaching.

492 citations


Journal ArticleDOI
TL;DR: The evaluation of an HCI design studio course which was created and taught in spring 2002 in the Computer and Information Science Department of the University of Oregon is presented and discussed.
Abstract: The studio-based method of teaching has been used for almost 100 years to teach product and architecture design. With ever increasing pressure on HCI to teach competence in designing interactive objects, new ways of teaching need to be explored. This article begins with a review of the studio-based teaching concept and how it has been used in architecture, science/engineering, and computer science education. We then present and discuss the evaluation of an HCI design studio course which we created and taught in spring 2002 in the Computer and Information Science Department of the University of Oregon. This course was based on our observations and study of studio courses in the School of Architecture. Finally, we review general issues about studio teaching including the promises and challenges that it presents to widespread acceptance in the computer science curriculum.

141 citations


Journal ArticleDOI
TL;DR: The article illustrates how the theme of reducing abstraction (Hazzan, 1999) is useful for analyzing students' thinking about abstract concepts in mathematics and in computer science and demonstrates how theories based on mathematics education research can be applied to analyzed students' understanding of computer science concepts.
Abstract: This article focuses on ion and ways in which students cope with abstraction. The article has two goals: first, it illustrates how the theme of reducing abstraction (Hazzan, 1999) is useful for analyzing students' thinking about abstract concepts in mathematics and in computer science; second, it demonstrates how theories based on mathematics education research can be applied to analyzing students' understanding of computer science concepts. The main section of the article analyzes the understanding of concepts from four fields – abstract algebra, computability, data structures and differential equations – through the lens of reducing abstraction. The analysis shows that a wide range of cognitive phenomena can be explained by one theoretical framework.

98 citations


Journal ArticleDOI
TL;DR: A new programming course to prepare novices for the traditional Computer Science 1 course (CS1) is proposed, which uses 3D interactive animation in a novice-friendly environment to introduce object-oriented programming concepts and help students develop problem-solving skills.
Abstract: A new programming course to prepare novices for the traditional Computer Science 1 course (CS1) is proposed. The course uses 3D interactive animation in a novice-friendly environment to introduce o...

56 citations


Journal ArticleDOI
TL;DR: An overall view of the pedagogical patterns project is given: where it started, how the material it has collected has evolved and matured, and where it needs to go from here.
Abstract: This paper is a summary of the pedagogical patterns project. The project started in 1996 with the aim of collecting and disseminating experiences of teaching and learning about object technology. We adopted a pattern format early on, although the specific format has evolved over time. In this paper we give an overall view of the project: where it started, how the material we have collected has evolved and matured, and where we need to go from here. More material from the project is available from our website www.pedagogicalpatterns.org, and our publications.

50 citations


Journal ArticleDOI
TL;DR: A study to evaluate the effectiveness of e-learning, relative to the performance of conventional learning, for a software engineering course and indicates that e- learning is as effective as the conventional mode of learning.
Abstract: E-learning is a growing trend among many higher educational institutions. Learners and teaching professionals are attracted by the many benefits of e-learning, such as the flexibility of learning anywhere, at any time and at an individualized pace. The question of the effectiveness of e-learning should be reviewed before adopting e-learning on a large scale. This paper presents a study to evaluate the effectiveness of e-learning, relative to the performance of conventional learning, for a software engineering course. In particular, we compare assessment scores of the cyber group and the conventional group. Our study indicates that e-learning is as effective as the conventional mode of learning.

49 citations


Journal ArticleDOI
TL;DR: An outline of a minimal course on humancomputer interaction is outlined that it is felt should be part of everyone’s software engineering or computer science curriculum.
Abstract: Most software development approaches and curricular guidelines seem to ignore the fact that in many software systems the user interface is a decisive factor for product quality. As a result, it is often designed rather independently of the system’s functionality. Chances are then that it does not get the attention it deserves. In the approach to software development we sketch, the design of the user interface and the design of the functionality go hand in hand. We give a number of examples of user interface problems, and illustrate how these can be caught early if a more integrated approach is taken. We conclude with an outline of a minimal course on humancomputer interaction that we feel should be part of everyone’s software engineering or computer science curriculum.

20 citations


Journal ArticleDOI
TL;DR: A learning environment for introducing object-oriented technology in upper secondary schools based on cognitive apprenticeship is presented and a visual programing language is used to away from the details and provide tool support to aid practice.
Abstract: Although many professionals in education believe that an ‘objects first’ approach is the best method of introducing object-oriented technology, there is no common agreement on how to start such courses. Current study programs often begin by teaching a chosen object-oriented programing language, where students are confronted by a large amount of syntactical detail. Instead of focusing on the basics of object-oriented technology, namely objects and their collaborations, difficulties in handling the details of the programing language lead to a very scattered knowledge of object-oriented concepts. This is dangerous, as learners are left with a set of unconnected knowledge fragments. Approaches which embed different knowledge fragments in an overall knowledge view are known as “cognitive apprenticeship” approaches. The main idea of cognitive apprenticeship is continuous practice. We present a learning environment for introducing object-oriented technology in upper secondary schools based on cognitive apprentic...

15 citations


Journal ArticleDOI
TL;DR: A project-oriented HCI course in which some SE notions are able to emphasize in the context of HCI concepts, and a maturation class for students exposed to a number of non-programming computer science activities.
Abstract: The final report of the Joint Task Force on Computing Curricula (CC2001) suggests that an updated computer science curricula must reflect the broadening nature of our discipline. Two areas that are included in the CC2001 are software engineering (SE) and human-computer interaction (HCI). While the first inclination might be to incorporate HCI concepts into a traditional SE course, we propose a different approach. This paper outlines a project-oriented HCI course in which we are able to emphasize some SE notions in the context of HCI concepts. Our course is also a maturation class for our students because they are exposed to a number of non-programming computer science activities, including project specification, software and interface design, user testing, prototyping and use of guidelines. We include an overview of course content that illustrates our approach. We also describe our coverage of specific CC2001 knowledge units and provide some feedback data for our course.

14 citations


Journal ArticleDOI
TL;DR: A course covering graphic design topics relevant to computer science students is described, in which students learn the basic visual elements, the visual organizational principles and how to use them in the context of the digital page.
Abstract: Computing has become highly visual as interactive programs become increasingly prevalent. Computer science students need to be able to create effective visual displays as part of interface implementation. This paper describes a course covering graphic design topics relevant to computer science students. In this course, students learn the basic visual elements, the visual organizational principles and how to use them in the context of the digital page. The other topics of this paper are the presentation of course information to the computer science student, the implementation of the course information as praxis, course project construction, and a method for critiquing student projects. Curriculum Integration will also be discussed as a feature towards achieving a seamless and collaborative experience.

Journal ArticleDOI
TL;DR: The experiences with three Design-n-Code Fest workshops, which would take students through key parts of the development process for a software project (i.e., from systems analysis through implementation and unit testing).
Abstract: When students in our upper division software engineering courses at Utah State University expressed lack of confidence in their understanding of how all the pieces of software development fit together, we chose to offer a one-day “Design-n-Code Fest” workshop. The workshop would take the students through key parts of the development process for a software project (i.e., from systems analysis through implementation and unit testing). This paper describes our experiences with three such workshops, what we planned, what actually happened, what we learned, and what we plan to do for the future.

Journal ArticleDOI
TL;DR: A lesson is presented that uses Card, Moran and Newell’s Keystroke Level Model and the benefit of asking students to compare its theoretical predictions with empirical results from informal usability tests is discussed.
Abstract: Computer science educators are increasingly adding components that compare theoretical predictions to empirical results. If we are interested in better integrating Human-Computer Interaction (HCI) concepts into a computer science curriculum, we might look at HCI lessons that draw upon the same set of practices. With this aim in mind, I present a lesson that uses Card, Moran and Newell’s Keystroke Level Model and discuss the benefit of asking students to compare its theoretical predictions with empirical results from informal usability tests.

Journal ArticleDOI
Dale Skrien1
TL;DR: An object-oriented design course is discussed in which students were given a sequence of projects in which they needed to design and implement their solutions before the appropriate patterns were introduced.
Abstract: People who have to live without something often have a greater appreciation for what that thing can do for them than those who have never experienced life without it. In particular, a software designer can have a greater appreciation for what design patterns can contribute to software development if he or she has first had some experience developing software without the use of such patterns. An object-oriented design course is discussed in which students were given a sequence of projects in which they needed to design and implement their solutions before the appropriate patterns were introduced. Then after the patterns were discussed, the students were told to refactor their code using these patterns. The positive and negative aspects of this approach to teaching design patterns are discussed.

Journal ArticleDOI
TL;DR: Ten years ago very few universities or colleges ran courses in object technology, but nowadays, the object-oriented paradigm is taught in most computer science curricula and many educators have experienced for themselves that moving to the objects paradigm is not just a matter of changing programming languages.
Abstract: Ten years ago very few universities or colleges ran courses in object technology, but nowadays, the object-oriented paradigm is taught in most computer science curricula. Transitioning to object-oriented problem solving and programming has, however, proved to be more difficult than expected and many educators have experienced for themselves that moving to the object-oriented paradigm is not just a matter of changing programming languages. While debate may continue about whether or not a ‘paradigm shift’ is required, many people needing to adopt the object approach to development have found the transition hard. But why has learning and teaching object technology proved to be this tough? One reason may lie with the traditional approach to learning about software development. It has been quite common to take a reductionist approach rather than a holistic one, that is, an approach where specific notations and concepts are taught (or learned) individually, and are gradually integrated, rather than taking an integrated perspective from the beginning. Learning about objects requires the latter. For example, introductory programming is often taught in a bottom-up style, one syntactical feature at a time, successively building up larger structures. In this approach, the treatment of abstract concepts like modularization and data types can be delayed until more advanced courses. In the object-oriented paradigm, however, there are several concepts that need to be handled early on, for example, variable, value, type, object and class. To make things worse these concepts are tightly interrelated, so it is difficult to discuss them in isolation. This makes object-oriented languages more complex than procedural languages and therefore more difficult to teach

Journal ArticleDOI
TL;DR: The needs of students who, in the past, may have chosen to major in computer science or some other aspect of information technology as a way of achieving the goal of finding a job in the computer graphics field are examined.
Abstract: This paper examines the needs of students who, in the past, may have chosen to major in computer science or some other aspect of information technology as a way of achieving the goal of finding a job in the computer graphics field. The growth in computer graphics has lead to increased job opportunities in the industry. However, these jobs require fluency in both art and computing that an individual course or even a sequence of several courses cannot provide. In the past, there has been discussion of curricula for isolated graphics courses as part of a BS/CS degree, but industry demands more preparation than what one or two courses can deliver. This paper surveys and compares the two extant Bachelor of Science degrees in Computer Graphics with the intent of encouraging dialog on the possibility of a four-year curriculum supporting this discipline.

Journal ArticleDOI
TL;DR: This paper provides an introduction to some of the activities of project COOL that are concerned with the problem area of learning and teaching object-oriented concepts.
Abstract: (2003). Comprehensive Object-Oriented Learning – An Introduction. Computer Science Education: Vol. 13, No. 4, pp. 331-335.

Journal ArticleDOI
TL;DR: This special issue focuses on incorporating Human-Computer Interaction (HCI) into undergraduate CS curricula, following a special session at SIGCSE-2002, and was carried out in parallel with a faculty development workshop on the same topic.
Abstract: (2003). Editorial - Human-Computer Interaction. Computer Science Education: Vol. 13, No. 3, pp. 173-176.

Journal ArticleDOI
TL;DR: Graph Magic, a package of Java classes that represents graphs, is specifically designed for undergraduate students to use early in their studies and allows students to implement graph algorithms using high level, easy to understand methods.
Abstract: This paper presents Graph Magic, a package of Java classes that represents graphs. It is specifically designed for undergraduate students to use early in their studies. It combines graph visualization with ease of programming. It allows students to implement graph algorithms using high level, easy to understand methods. Students create graphs for their programs interactively. Their programs manipulate the graphs while the students continue to view them. The emphasis on interactive editing combined with interruptible viewing provides a powerful tool for student exploration of graph concepts and algorithms.

Journal ArticleDOI
TL;DR: The paper by Wolfe et al., ‘‘Curricular Considerations for Supporting Careers in Computer Graphics’’, describes the importance of creating an interdisciplinary undergraduate computer graphics degree.
Abstract: We have enjoyed an explosion of developments and applications in computer graphics in the past decade without seeing their inclusion in a typical graphics course. Moreover, computer graphics is interdisciplinary in nature and has relationships with many other areas such as scientific/data visualization, geometric modeling, human computer interaction, computer-aided design, and GIS systems. This special issue is dedicated to the exploration of innovative approaches in teaching computer graphics and related courses. The papers of this special issue cover a range of topics from using computer graphics in a pre-CS1 course, the role of art in a computer graphics curriculum, the use of art and graphics design for computer science majors, and interactive visualization tools. ‘‘Using Animated 3D Graphics to Prepare Novices for CS1’’ by S. Cooper, W. Dann, and R. Pausch, provides an innovative way to teach 3D interactive animation, provide problem solving and logical reasoning skills, learn programming language constructs, and design and implementation of algorithms. While their experimental course is a pre-CS1 course, these concepts will perhaps be in CS1 courses using Alice, Java 3D, or some other programming language that supports 3D interactive graphics. The paper by Wolfe et al., ‘‘Curricular Considerations for Supporting Careers in Computer Graphics’’, describes the importance of creating an interdisciplinary undergraduate computer graphics degree. This paper surveys