bluuebunny/crossref_metadata_2025 huggingface dataset:
Program assessment tools in computer science
Authors: Sanders Kathryn E. , McCartney Robert
Published: July 2004

In this paper, we investigate the question of what assessment tools are being used in practice by United States computing programs and what the faculty doing the assessment think of the tools and of the assessment process in general. We report on the results of two surveys, distributed to the SIGCSE mailing list and to the chairs of all ABET-CAC accredited computer science programs. We found that both parts of these surveys--the multiple-choice sections and the comments--provided some interesting insights into program assessment from the perspective of those responsible for collecting and using the information.
Teaching computer organization using a PDP-8 simulator
Authors: Shelburne Brian
Published: July 2004

The simple yet elegant architecture of the PDP-8 makes it an ideal candidate for study in a computer organization course. The PDP-8 provides an uncomplicated example of a von-Neumann architecture. It is easy to program in machine code or assembler. It can be used to demonstrate coding low-level I/O routines, subroutine calls, uses of indirect addressing and handling interrupts. This paper discusses how a PDP-8 simulator written by the author is used in a computer organization course.
Production programming in the classroom
Authors: Allen Eric , Cartwright Robert , Reis Charles
Published: July 2004

Students in programming courses generally write "toy" programs that are superficially tested, graded, and then discarded. This approach to teaching programming leaves students unprepared for production programming because the gap between writing toy programs and developing reliable software products is enormous.This paper describes how production programming can be effectively taught to undergraduate students in the classroom. The key to teaching such a course is using Extreme Programming methodology to develop a sustainable open source project with real customers, including the students themselves. Extreme Programming and open source project management are facilitated by a growing collection of free tools such as the JUnit testing framework, the Ant scripting tool, and the SourceForge website for managing open source projects.
Using undergraduates as teaching assistants at a state university
Authors: Reges Stuart
Published: July 2004

This paper describes a program that uses undergraduates as teaching assistants to staff large computer science classes, particularly at the introductory level. Creating such a program at a state school presented special challenges, but the program has become a mainstay for the department's undergraduate program. The program has been so successful that we have expanded it to cover some sophomore and junior level courses, including a discrete mathematics course. Among the benefits of the program are reduced overall cost, improved quality of instruction, the formation of an undergraduate community and the practical experience that the undergraduate teaching assistants themselves gain.
Coached program planning
Authors: Lane H. Chad , VanLehn Kurt
Published: July 2004

Coached program planning is a dialogue-based style of tutoring aimed at helping novices during the early stages of program writing. The intent is to help novices understand and solve problems in their own words through the construction of natural-language style pseudocode as the first step in solving a programming problem. We have designed an environment supporting coached program planning and have used it in a human-to-human, computer-mediated evaluation of 16 novice programmers enrolled in a pre-CS1 programming course at the University of Pittsburgh. The results show that students who underwent coached program planning, compared to those who did not, were more prolific with comments in their programs, committed fewer structural mistakes, and exhibited less erratic programming behavior during their implementation. The dialogues collected from this experiment followed a clear 4-step pattern. Starting with this observation, we are developing a dialogue-based intelligent tutoring system called the Pseudocode Tutor to support coached program planning.
VisualGraph
Authors: Lucas Jeff , Naps Thomas L. , Rößling Guido
Published: July 2004

Graphs and graph algorithms play an important role in undergraduate data structures and algorithms courses. However, they often also represent the first case where both the correctness and the underlying concepts of the algorithms are not evident. Both students and educators can therefore benefit from a simple yet expressive tool for coding graph algorithms and then conveniently visualizing them. We present such a tool, derived from a set of instructional requirements, and give an example application.
Teaching two-dimensional array concepts in Java with image processing examples
Authors: Burger Kevin R.
Published: July 2004

Two-dimensional arrays (2d-arrays) are fundamental data structures in many software programs and must be mastered by beginning programming students. Teachers of introductory programming are challenged to devise new and interesting exercises for teaching 2d-array concepts. We believe image processing (IP) examples can provide stimulating, challenging, and fun exercises for students. We describe briefly the new Java2 Image I/O API and show how it can be used to read and write images in GIF, JPEG, and PNG formats. We also provide Java code for an Image class that hides the complexity of this API from the student. We conclude with several sample student exercises that can be used to teach 2d-array programming.
Beacond
Authors: Chandra Surendar
Published: July 2004

This paper describes a peer-to-peer (p2p) system (beacond) that is suitable for teaching important concepts in ubiquitous computing. The system exposes issues in peer location, p2p services, security and privacy issues. The system provided enough background to compliment class lectures and assisted students in designing their own course projects. Students continue to explore ideas exposed by beacond; some of these ideas are being further developed for publication in research conferences[1]. We present our experiences in using this framework for three different course offerings.
A network project course based on network processors
Authors: Steenkiste Peter
Published: July 2004

A difficult problem in networking courses is to find hands-on projects that have the right balance between the level of realism and complexity. This is especially true for projects that focus on the internal functionality of routers and other network devices. We developed a capstone course called "Network Design and Evaluation" that uses a network processor-based platform for networking projects. This platform is more realistic than traditional approaches based on software emulation environments or PC-based routers running Unix, but it is significantly less complex to work with than real commercial routers or even PC-based routers. We are currently teaching this course for the third year, and our experience has been extremely positive. Students enjoy the realism of the platform and not only learn a lot about the internal operation of the network, but also about network configuration and management.
A technical writing class for computer science majors
Authors: Kaczmarczyk Lisa C.
Published: July 2004

Writing skills need to be integrated into the Computer Science (CS) curriculum, and there is little empirical evidence on how best to do so. This paper first describes a technical writing class for CS undergraduates. Then it presents the results of a statistical study that investigated student perceptions of their learning experience in three areas: skill mastery, self-efficacy, and motivation. Positive results support this approach to teaching writing to CS students. Some unexpected findings in all three areas highlight why monitoring student perceptions is important for CS educators.
Improving the CS1 experience with pair programming
Authors: Nagappan Nachiappan , Williams Laurie , Ferzli Miriam , Wiebe Eric , Yang Kai , Miller Carol , Balik Suzanne
Published: July 2004

Pair programming is a practice in which two programmers work collaboratively at one computer, on the same design, algorithm, or code. Prior research indicates that pair programmers produce higher quality code in essentially half the time taken by solo programmers. An experiment was run to assess the efficacy of pair programming in an introductory Computer Science course. Student pair programmers were more self-sufficient, generally perform better on projects and exams, and were more likely to complete the class with a grade of C or better than their solo counterparts. Results indicate that pair programming creates a laboratory environment conducive to more advanced, active learning than traditional labs; students and lab instructors report labs to be more productive and less frustrating.
Teaching B-splines is not difficult!
Authors: Lowther John , Shene Ching-Kuang
Published: July 2004

This paper describes the authors' approach of introducing important concepts and algorithms of B-splines to junior computer science students with the help of a pedagogical tool DesignMentor. This approach is non-mathematical and intuitive, and has been used and refined in the past six years.
Frames and boxes
Authors: Haberman Bruria
Published: July 2004

The abstract data type (ADT) is one of the central concepts in computer science; it plays a major role in problem solving and in data storage and retrieval. Here we describe a pattern-based method for problem solving and for developing algorithms that utilizes abstract data types. Our method is based on the classification of problems that deal with the manipulation of abstract data types. A corresponding solution pattern was adapted to each class of problems. The method was designed to serve as a scaffolding tool for problem solving: to assist in analyzing problems, to recognize the main characteristics of a given problem, to determine a suitable solution pattern, and to use it to construct an appropriate algorithm that solves the problem. We demonstrate how the method is applied to teach binary trees.
The Crawfish and the Aztec treasure maze
Authors: Giguette Ray
Published: July 2004

Teaching data structures and other CS1/CS2 subjects can be challenging. Previous research has shown that using manipulatives and visualization tools may help students comprehend these abstract concepts. This paper illustrates how students can use a pez dispenser as a stack to gain first hand experience with many CS1/CS2 topics. In addition to giving students candy, we appeal to their sense of adventure by presenting a fictitious account of how the Aztecs might have used pez-like stacks. This tale is meant to supplement homework and class discussion concerning stack definition, algorithm design, recursion, tree traversal, and operation pre- and post-conditions.
Enhancing the quality of learning and understanding of first-year mathematics for computer science related majors
Authors: Suraweera Francis
Published: July 2004

Most courses on discrete mathematics are designed to emphasize knowledge acquisition, and are given to large first year classes, in general. When the goal is to cover the content, the understanding takes a second place. This practice leads to non-enjoyment of the course, a great deal of anxiety, poor performance and a large percentage of failures. In fact, given the choice, most first year students would not do the discrete mathematics course. The opposing beliefs and expectations of the instructors and the students make it a difficult course to teach. However, irrespective of the geographical locations, as instructors, we all share a common goal: we would like our students to acquire the skills to perform complex mental operations so that they will be successful in the classroom as well as their future careers. This paper presents a way to enhance the learning and understanding of discrete mathematics.
The challenge of computer science in New Zealand
Authors: Moon B. A. M.
Published: July 2004

Some aspects of computer science education in New Zealand are discussed and the role of the universities is assessed. While there is much common ground with countries overseas there are also particular local conditions to be met. It is suggested that the first priority is the setting up of an honours degree program and a course outline is proposed.
Computer science education and social relevance
Authors: Shneiderman Ben
Published: July 2004

The rise of computer science as a theoretical discipline should not be allowed to proceed without promoting the study of the social implications and applications of the field. This paper describes an undergraduate course whose primary goal is to foster an understanding of how computers can be used for socially relevant purposes. The students were required to propose and execute a project which could benefit people directly. The projects are described and suggestions for further work are given.The rapid rise of Computer Science as a major field of university study is unprecedented. In 25 years digital computers have risen from a laboratory experiment to a full-fledged academic discipline. Most major universities have created Departments of Computer Science and offer advanced degrees.
Reverse engineering framework reuse interfaces
Authors: Viljamaa Jukka
Published: July 2004

Object-oriented application frameworks
provide an established way of reusing the design and implementation of applications in a specific domain. Using a framework for creating applications is not a trivial task, however, and special tools are needed for supporting the process. Tool support, in turn, requires explicit specification of the
reuse interfaces
of frameworks. Unfortunately these specifications typically become quite extensive and complex for non-trivial frameworks. In this paper we discuss the possibility to
reverse engineer
a reuse interface specification from a framework's and its example applications' source code. We also introduce a programming environment that supports both making and using such specifications. In our environment, the reuse interface modeling is supported by a
concept analysis
based reverse engineering technique described in this paper.
Eliminating redundancies with a "composition with adaptation" meta-programming technique
Authors: Jarzabek Stan , Shubiao Li
Published: July 2004

Redundant code obstructs program understanding and contributes to high maintenance costs. While most experts agree on that, opinions - on how serious the problem of redundancies really is and how to tackle it - differ. In this paper, we present the study of redundancies in the Java Buffer library, JDK 1.4.1, which was recently released by Sun. We found that at least 68% of code in the Buffer library is redundant in the sense that it recurs in many classes in the same or slightly modified form. We effectively eliminated that 68% of code at the meta-level using a technique based on "composition with adaptation" called XVCL. We argue that such a program solution is easier to maintain than buffer classes with redundant code. In this experiment, we have designed our meta-representation so that we could produce buffer classes in exactly the same form as they appear in the original Buffer library. While we have been tempted to re-design the buffer classes, we chose not to do so, in order to allow for the seamless integration of the XVCL solution into contemporary programming methodologies and systems. This decision has not affected the essential results reported in this paper.
ARCHER
Authors: Xie Yichen , Chou Andy , Engler Dawson
Published: July 2004

Memory corruption errors lead to non-deterministic, elusive crashes. This paper describes ARCHER (
ARray CHeckER
) a static, effective memory access checker. ARCHER uses path-sensitive, interprocedural symbolic analysis to bound the values of both variables and memory sizes. It evaluates known values using a constraint solver at every array access, pointer dereference, or call to a function that expects a size parameter. Accesses that violate constraints are flagged as errors. Those that are exploitable by malicious attackers are marked as security holes.Memory corruption errors lead to non-deterministic, elusive crashes. This paper describes ARCHER (
ARray CHeckER
) a static, effective memory access checker. ARCHER uses path-sensitive, interprocedural symbolic analysis to bound the values of both variables and memory sizes. It evaluates known values using a constraint solver at every array access, pointer dereference, or call to a function that expects a size parameter. Accesses that violate constraints are flagged as errors. Those that are exploitable by malicious attackers are marked as security holes.We carefully designed ARCHER to work well on large bodies of source code. It requires no annotations to use (though it can use them). Its solver has been built to be powerful in the ways that real code requires, while backing off on the places that were irrelevant. Selective power allows it to gain efficiency while avoiding classes of false positives that arise when a complex analysis interacts badly with statically undecidable program properties. ARCHER uses statistical code analysis to automatically infer the set of functions that it should track --- this inference serves as a robust guard against omissions, especially in large systems which can have hundreds of such functions.In practice ARCHER is effective: it finds many errors; its analysis scales to systems of millions of lines of code and the average false positive rate of our results is below 35%. We have run ARCHER over several large open source software projects --- such as Linux, OpenBSD, Sendmail, and PostgreSQL --- and have found errors in all of them (118 in the case of Linux, including 21 security holes).
Runtime safety analysis of multithreaded programs
Authors: Sen Koushik , Rosu Grigore , Agha Gul
Published: July 2004

Foundational and scalable techniques for runtime safety analysis of multithreaded programs are explored in this paper. A technique based on vector clocks to extract the causal dependency order on state updates from a running multithreaded program is presented, together with algorithms to analyze a multithreaded computation against safety properties expressed using temporal logics. A prototype tool implementing our techniques, is also presented, together with examples where it can predict safety errors in multithreaded programs from successful executions of those programs. This tool is called Java MultiPathExplorer (JMPaX), and available for download on the web. To the best of our knowledge, JMPaX is the first tool of its kind.
An operating systems programming laboratory course
Authors: Hayashi Tsunetoshi
Published: July 2004

Some inherent difficuties are present for good exercise and practice in operating systems programming laboratory course. This paper gives a fairly manageable laboratory course plan for programming operating systems (OSs) and a teaching tool which is used in it. The plan enables a prototype operating system as a whole, including the nucleus and multiprogramming mechanism, to be written in high level language. The operating system can run a binary machine program as job program. It is realized through simulation in a common programming environment. Some drawbacks of the plan are discussed and solutions are also given.
Automatic question generation from text - an aid to independent study
Authors: Wolfe John H.
Published: July 2004

This report describes an experimental computer-based educational system called automatic question generation (AUTOQUEST) for assisting independent study of written text. Studies of reading comprehension have shown that retention of material is enhanced if the student is periodically required to answer questions about what he has read (Anderson & Biddle, 1975; Anderson et al., 1974; Alessi et al., 1974; Anderson et al., 1975a, 1975b). This principle has been employed in computer-managed instruction, but it requires considerable human effort to prepare the questions.
Operating system projects for undergraduates
Authors: Wadland Kenneth R.
Published: July 2004

This paper describes the projects written by students as part of our one-semester course in Operating Systems. It is aimed at Juniors and Seniors of average capabilities.

The course is divided into three parts: (a) The assembly language, utilities and RT-11 operating system (*) of DEC's PDP-11 family, (b) general concepts in operating systems, and (c) a team programming project. Only the final third of the course will be discussed. In the remainder of this paper we describe the following: rationale for having the students write a stand-alone operating system in assembly language, the two design outlines given to the students, and our successes and failures with them.
A tool that detects plagiarism in Pascal programs
Authors: Grier Sam
Published: July 2004

Plagiarism has become a problem in introductory Computer Science courses. Programmed assignments can be copied and transformed with little human effort. A pertinent recommendation has resulted from this realization; an on-line system to detect programs that are “too similar” and hence suspected of plagiarism should be developed [4]. This paper discusses such a system for Pascal programs.
Using an effective grading method for preventing plagiarism of programming assignments
Authors: Hwang C. Jinshong , Gibson Darryl E.
Published: July 2004

The two main purposes of this paper are: 1) to discuss four commonly-used grading methods (which we shall call methods A, B, C, and D) employed with programming assignments and 2) to present by way of recommendation two experimental methods (which we shall call methods X and Y) which support our thesis that positive prevention of cheating on programming assignments through the use of an appropriately-designed grading method is far more effective than the other approaches in general use.
Predicting success in a first programming course
Authors: Leeper R. R. , Silver J. L.
Published: July 2004

The results of a study to develop a predictor of success in a first programming course are presented. The predictor is based on data currently available for a substantial number of students and is tailored to the local program. This predictor is developed using data from a group of students who took the course in the fall of 1980. The results obtained by applying the predictor to a second group of students who took the course in the fall of 1981 are compared with these students' actual grades.
Two systems which produce animated representations of the execution of computer programs
Authors: Baecker Ron
Published: July 2004

This paper describes two prototype systems which facilitate the production of teaching films containing animated representations of the execution of computer programs. With such systems, it is possible for an instructor to produce short quick-and-dirty single-concept film clips with only hours of effort, and more polished material with only slightly more effort. Demonstration clips produced in this way will be shown at the Symposium.
Applied quality assurance methodology
Authors: Pfau Pamela R.
Published: July 2004

What is the charter of a Quality Assurance (Q.A.) department? What are the activities? How are they undertaken? What is the impact of Quality Assurance upon a software product?

The structure and operating philosophy of the department are explained in this report as is the definition of the work cycle as applied to a new release of a software product. Comments are made about the interaction between departments: product development, product maintenance, publications, education, field support, product management, marketing, product distribution and quality assurance. While this is a description of the activities of a company involved in developing and marketing software products, the concepts apply to techniques and practices which would also be beneficial to any data processing department that develops in-house application software.
Error modelling applications in software quality assurance
Authors: Sukert Alan N. , Goel Amrit L.
Published: July 2004

This paper presents the results of a two-phased experiment conducted by Rome Air Development Center and Syracuse University to demonstrate the potential applicability of software error prediction models in performing formalized qualification testing of a software package. First, decisions based upon the predictions of three software error prediction models will be compared with actual program decisions for a large command and control software development project. Classical and Bayesian demonstration tests are used to make accept/reject decisions about the software system. Finally, the results of the two phases will be compared and some conclusions drawn as to the potential use of these predictive techniques to software quality assurance.
Nassi-Shneiderman charts an alternative to flowcharts for design
Authors: Yoder Cornelia M. , Schrag Marilyn L.
Published: July 2004

In recent years structured programming has emerged as an advanced programming technology. During this time, many tools have been developed for facilitating the programmer's use of structured programming. One of these tools, the Structured Flowcharts developed by I. Nassi and B. Shneiderman in 1972, is proving its value in both the design phase and the coding phase of program development.

Several programming groups in System Products Division, Endicott, New York, have used the Nassi-Shneiderman charts as replacements for conventional flowcharts in structuring programs. The charts have been used extensively on some projects for structured walk-throughs, design reviews, and education.

This paper describes the Nassi-Shneiderman charts and provides explanations of their use in programming, in development process control, in walk-throughs, and in testing. It includes an analysis of the value of Nassi-Shneiderman charts compared to other design and documentation methods such as pseudo-code, HIPO charts, prose, and flowcharts, as well as the authors' experiences in using the Nassi-Shneiderman charts.

The paper is intended for a general data processing audience and although no special knowledge is required, familiarity with structured programming concepts would be helpful. The reader should gain insight into the use of Nassi-Shneiderman charts as part of the total development process.
Software acceptance testing that goes beyond the book
Authors: Martin K. A.
Published: July 2004

The design of software acceptance tests is as important to meeting contract goals as is the design of algorithms. This statement is particularly significant on fixed price contracts with tight schedules. An extreme instance of the demand placed on acceptance testing can be found in software projects wherein the only rigorous testing that required the Computer Program Configuration Item (CPCI) to exercise its repertoire of load and store instructions was the Formal Qualification Test (FQT). This paper is about such a project, the lessons learned from it, and provides an effective test approach for fixed price contracts.

A word or two about the project is appropriate to establish the context that underscores the impact of the above assertion. Initially 30K (core words), 16-bit program instructions were to be developed within one year using a Varian 73 computer with 32K words of memory for a Command and Control application under a fixed price contract. A set of a priori conditions existed that tended to convey the impression that the inherent risks of this endeavor were reasonable. They were the “facts” that:

Of the 30K (core words) to be written, 30% of this code already existed and would be used.

Contractor standards would be allowed for documentation with limited use of Military Specifications

No formal Design Reviews or audits would accompany the deliverable CPCI.

Existent executive software would suffice.

A competent and enthusiastic team was committed to the effort.
The evolution of a Source Code Control System
Authors: Glasser Alan L.
Published: July 2004

The Source Code Control System (SCCS) is a system for controlling changes to files of text (typically, the source code and documentation of software systems). It is an integral part of a software development and maintenance system known as the Programmer's Workbench (PWB).

SCCS has itself undergone considerable change. There have been nine major versions of SCCS. This paper describes the facilities provided by SCCS, and the design changes that were made to SCCS in order to provide a useful and flexible environment in which to conduct the programming process.
A quantitative evaluation of the effectiveness of quality assurance as experienced on a large-scale software development effort
Authors: Belford Peter Chase , Broglio Carlo
Published: July 2004

The purpose of quality assurance on software projects is to achieve high quality products on schedule, within cost, and in compliance with contract requirements. However, historically, the effectiveness of these activities on software projects has not been quantitatively demonstrable because of a lack of data collected on the project combined with a lack of insight into the operational reliability of the system.

Quality assurance is a collection of activities on a contractual deliverable whose purpose is to impart a degree of confidence that the deliverable will conform to the customer's concept of what was procured. Under these conditions, quality assurance must be performed with respect to a documented baseline of the concept. This baseline can address the need in the form of requirement statements; the conceptual approach to be followed in the form of a functional specification; or the design to be implemented in the form of a design specification. Further, these baselines are hierarchical in the sense that when quality assurance is applied to a level it is implicitly applied to all lower levels; e.g., if the need is to be satisfied, the conceptual approach must be satisfied. Effective quality assurance programs impart a high degree of confidence to the customer without significant impacts on schedule or cost. Historically, this effectiveness has not been quantitatively demonstrable because of a lack of data collected on the project combined with a lack of insight into the operational reliability of the system.
An approach to teaching Java using computers
Authors: Bruhn Russel E. , Burton Philip J.
Published: July 2004

This paper describes how the use of computers in the classroom (using studio teaching) can help students to better understand Java programming concepts during classroom presentations. Students learn by three methods: auditory, visual, and kinetic. Studio teaching uses all three methods, but relies mostly on the kinetic method. Students actually practice the programming concepts in the classroom on the computer as the instructor presents them. The studio teaching method helps the average-to-poor scholastic achievers the most, while high-achieving students seemed to do just as well with the typical lecture-style format. The disadvantage of studio teaching is that it is expensive to equip labs with computers, and more time is needed to present the material to the students. Also, it takes time for students to practice programming concepts on the computer in class.
Evaluating the educational impact of visualization
Authors: Naps Thomas , Cooper Stephen , Koldehofe Boris , Leska Charles , Rößling Guido , Dann Wanda , Korhonen Ari , Malmi Lauri , Rantakokko Jarmo , Ross Rockford J. , Anderson Jay , Fleischer Rudolf , Kuittinen Marja , McNally Myles
Published: July 2004

The educational impact of visualization depends not only on how well students learn when they use it, but also on how widely it is used by instructors. Instructors believe that visualization helps students learn. The integration of visualization techniques in classroom instruction, however, has fallen far short of its potential. This paper considers this disconnect, identifying its cause in a failure to understand the needs of a key member in the hierarchy of stakeholders, namely the instructor. We describe these needs and offer guidelines for both the effective deployment of visualizations and the evaluation of instructor satisfaction. We then consider different forms of evaluation and the impact of student learning styles on learner outcomes.
Using lab exams to ensure programming practice in an introductory programming course
Authors: Barros João Paulo , Estevens Luís , Dias Rui , Pais Rui , Soeiro Elisabete
Published: July 2004

The high variability of students' backgrounds typically found in introductory programming courses creates additional difficulties to foster motivation and ensure the desired competency and retention rates. This paper presents and discusses the results of applying an assessment methodology strongly based upon lab exams (or on-computer exams) with the objective of ensuring programming pratice competency while maintaining students' motivation. It discusses the difficult balances of several assessment methods, details the used assessment methodology and finally presents students results and views. These show that lab exams, although more demanding then group assignments, can be made popular among students if they perceived them as fairer.
Experimenting with pair programming in the classroom
Authors: McDowell Charlie , Hanks Brian , Werner Linda
Published: July 2004

There is now a substantial body of evidence in support of the use of pair programming in the classroom[3, 4, 10, 11, 13, 14]. Some of the data is anecdotal and some is the result of formal experiments. We are not aware of any published data that raises concerns about allowing students to complete programming projects using pair programming.In this paper we present data from three studies performed at UCSC. All three studies support the position that pair programming results in more student learning.
Teaching objects early and design patterns in Java using case studies
Authors: Nevison Chris , Wells Barbara
Published: July 2004

In order to teach object-oriented design and programming in introductory computer science it is imperative to teach objects from the very beginning of the course. The use of interacting objects is motivated by examples with an inherent complexity. We suggest that a case study approach to teaching object-oriented programming can provide a context with simplicity within complexity, so that simple versions of the case study program or simple pieces of a more complex program can be used to teach concepts at an introductory level. A case study provides a setting where a progression of successively more sophisticated programs can be developed to introduce standard topics of the introductory course within an increasingly familiar context. At the same time, the design of these programs can illustrate some of the fundamental principles of object-oriented design as embodied in basic design patterns.
Trends in the evolution of the database curriculum
Authors: Robbert Mary Ann , Ricardo Catherine M.
Published: July 2004

This paper focuses on the current database curriculum and how it reflects changes in the practice of data management. The content of the database course is determined using a series of three surveys given to groups of database educators over a period of four years. The results of these surveys are presented in the paper and are used to indicate trends in database courses as they are actually taught. The paper examines the different focus choices used in the introductory database course and describes how these have changed during the period, 1999-2002. The paper also examines how actual database curricula compare with the CC2001 curriculum recommendations.
Web-based discussion forums
Authors: Sheard Judy , Miller Jan , Ramakrishnan Sita
Published: July 2004

Web-based discussion forums are used in a range of undergraduate and graduate courses in the School of Computer Science and Software Engineering at Monash University. The enthusiastic adoption of these facilities by students has impacted upon staff worklods and recently concerns have been raised by staff about the time and effort required to manage them. Furthermore, it has been difficult to determine the pedagogical value of these facilities and the level of educational support they provide to the teaching and learning community. This paper reports on staff use and management of discussion forums in their courses, and their perceptions of the value of these facilities as a source of help for students and a mechanism to provide feedback to staff. A final outcome of the study will be the establishment of guidelines for staff and students for the effective use of these facilities.
Curricular projects of the ACM two-year college education committee
Authors: Campbell Robert D. , Hawthorne Elizabeth K. , Klee Karl J.
Published: July 2004

This poster presentation showcases the recent accomplishments of the Two-Year College Education Committee, a standing committee of the ACM Education Board.
Preparing students for distributed teamwork
Authors: Last Mary Z.
Published: July 2004

This poster presents some practical tips for preparing students to work in distributed project courses that require teamwork. These tips are based on empirical research that investigated virtual team interactions over a three-year period.
How much does a vacation cost?
Authors: Jørgensen Magne
Published: July 2004

What is a software cost estimate? Is it the most likely cost, the planned cost, the budget, the price, or, something else? Through comparison with vacation cost estimation and a real-life case we illustrate that it is not meaningful to compare and analyze cost estimates unless it is clear which interpretation is applied. Unfortunately, the software industry, software engineering textbooks and scientific estimation studies do frequently not clarify how they apply the term 'cost estimate'. We argue that this lack of clarity may lead to conflicting estimation goals, communication problems, and, learning problems, and provide recommendations on how to deal with these problems.
MUDD
Authors: Stephens John M. , Poess Meikel
Published: July 2004

Today's business intelligence systems consist of hundreds of processors with disk subsystems able to handle multiple Giga-bytes of IO-bandwidth. These systems usually contain terabytes of data. Evaluating database system performance of such systems often requires generating synthetic data with well defined statistical properties. To simulate different scenarios, it is important to vary statistical properties including row counts of tables. Foremost, in order to analyze large scale systems, data generators need to be able to produce hundreds of terabytes of data in a timely fashion. In this paper we present MUDD, a multi-dimensional data generator. Originally designed for TPC-DS, a decision support benchmark being developed by the TPC, MUDD is able to generate up to 100 Terabyte of flat file data in hours, utilizing modern multi processor architectures, including clusters. Its novel design separates data generation algorithms from data distribution definitions, enabling users to adjust their workload to individual needs and different scenarios.
Efficient approximation of response time densities and quantiles in stochastic models
Authors: Au-Yeung Susanna W. M. , Dingle Nicholas J. , Knottenbelt William J.
Published: July 2004

Response time densities and quantiles are important performance and quality of service metrics, but their analytical derivation is, in general, very expensive. This paper presents a technique for determining approximate response time densities in Markov and semi-Markov stochastic models that requires two orders of magnitude less computation than exact Laplace transform-based techniques. The method computes the first four moments of the desired response time and then makes use of Generalised Lambda Distributions to obtain an approximation of the corresponding density. Numerical results show good agreement over a range of response time curves, particularly for those that are unimodal.
A comparative study of graph theory-based class cohesion measures
Authors: Zhou Yuming , Lu Jiangtao , Xu Hongmin Lu Baowen
Published: July 2004

Among a large number of cohesion measures for classes proposed in last decade, many measures abstract a class by an undirected or directed graph, in which the nodes represent the class members and the edges represent the relationships among these members. This paper compares six typical graph theory-based cohesion measures for classes, and states what problems should be addressed during the development of new cohesion measures.
An investigation of computer literacy as a function of attitude
Authors: Wilson J. D. , Trenary H. G.
Published: July 2004

A survey of first and second year university students reveals the acceptance of a number of misconceptions about computers and computer applications, some of which indicate the presence of negative attitudes. A statistical analysis of the survey supports the proposition that previous computer experience is not always a corrective for unreasonable or even hostile attitudes. It is claimed that the achievement of computer literacy (in the sense of technical expertise), is possible for some populations only after attitudinal corrections, and that in general, the strategy for achieving such corrections is dependent upon population characteristics.
A proposed computer-science curriculum for computer professionals
Authors: Abshire Gary M.
Published: July 2004

This article describes a proposed computer-science curriculum tailored for computer professionals. It consists of 17 college-level courses that together provide extensive coverage for increased skills and knowledge. Its goal is to help the students acquire a high level of competence by giving them the opportunity to add to their formal education and expand the opportunities provided by their job assignments.
A framework for teaching recursion
Authors: Ford Gary
Published: July 2004

Recursion is presented as a generalized control structure, with iteration being a special case. A method is described to determine when to use recursion and when to use iteration in designing an algorithm to solve a problem.
An operating systems project using structured methodology
Authors: Pokrass David J. , Wu B. F.
Published: July 2004

This paper describes a simple microcomputer project which we found to be successful in teaching operating systems principles. The project involved designing and implementing a very simple operating system kernel. It is appropriate for a one quarter introductory course. Structured techniques were a requirement during the design and coding phases.
A modern approach to teaching computer organization and assembly language programming
Authors: Decker William F.
Published: July 2004

Given technological trends toward high level programming tools, abstract data mechanisms, logical systems organization, knowledge engineering, and human interfaces, greater emphasis must today be placed on understanding how a machine and its architecture support more abstract concepts and models. The historical approach to teaching computer organization and related machine language issues has been to train students to be proficient with some particular hardware. Indeed, many such courses attempt to prepare students for careers involving particular types of computers. Our philosophy is quite different for two basic reasons. First, fewer individuals are required to be proficient machine or assembly language programmers; instead, ability to think abstractly and to employ more powerful (more conceptual) tools is demanded. Second, the rapidity with which new machine types are introduced suggests that learning any specific machine will necessarily miss the mark; instead, students must become familiar with the generic machine, that is, the conceptual machine common to almost all computer hardware designs. (Even the so-called non-Von Neuman machines are usually comprised of systems of sequential machines.) We advocate that these undergraduate courses be oriented to teaching from the framework of abstraction and concept and that the machine vehicle for the course be chosen to support this framework.
Verifying examination results
Authors: Murtagh F.
Published: July 2004

It is useful to have available a general technique for checking on examination results. In this regard, Correspondence Analysis offers a number of advantages over other exploratory data analytic techniques. We illustrate some aspects of its use here, using the results obtained by 34 students in the B. Sc. degree examination in the author's department.
Implementation of the ACM curriculum recommendations
Authors: Banes Bruce
Published: July 2004

The ACM curriculum recommendations and those of other societies are written with an abstract collegiate environment in mind. There is, however, considerable variance among schools both with regard to their objectives and their resources. The panel representing a spectrum of teaching situations will lead a discussion as to how society recommendations can be of use in curriculum planning.
Metabolic adaptations to fasting and chronic caloric restriction in heart, muscle, and liver do not include changes in AMPK activity
Authors: Gonzalez Asensio A. , Kumar Reetu , Mulligan Jacob D. , Davis Ashley J. , Weindruch Richard , Saupe Kurt W.
Published: July 2004

Activation of adenosine monophosphate-activated protein kinase (AMPK) plays a central role in allowing cells to adapt to nutrient deprivation in vitro. This link between AMPK activity and nutritional status has raised the possibility that AMPK plays a role in the metabolic adaptation to acute and chronic nutritional stress. However, the effects of nutritional stress on AMPK activity in vivo have not been systematically evaluated. To address this, we measured the effects of 24 h of fasting and 4 mo of caloric restriction (CR) on AMPKα1 and -α2 activities in heart, skeletal muscle, and liver in mice. Although fasting caused the expected changes in body weight, plasma leptin, and free fatty acids, it did not increase AMPK activity in heart or skeletal muscle and only increased liver AMPK activity by ∼20% ( P = 0.10). Likewise, CR caused the expected changes in body weight, plasma leptin, and free fatty acids but did not alter AMPK activity in any of the three tissues. Although CR did not alter liver AMPK activity, it dramatically decreased the amount of phosphorylated acetyl-CoA carboxylase, and this was found to be due to decreased protein expression. Plasma leptin, a putative activator of AMPK, varied eightfold across the four groups of mice in the absence of changes in AMPK activity in any tissue. We conclude that, although the metabolic adaptations to fasting and CR include changes in plasma leptin concentration and phosphorylated acetyl-CoA carboxylase, these effects occur without changes in AMPK activity.