Eric Roberts
Stanford University
Network
Latest external collaboration on country level. Dive into details by clicking on the dots.
Publication
Featured researches published by Eric Roberts.
International Journal of Parallel Programming | 1989
Mark T. Vandevoorde; Eric Roberts
In implementing parallel programs, it is important to find strategies for controlling parallelism that make the most effective use of available resources. In this paper, we introduce a dynamic strategy called WorkCrews for controlling the use of parallelism on small-scale, tightly-coupled multiprocessors. In the WorkCrew model, tasks are assigned to a finite set ofworkers. As in other mechanisms for specifying parallelism, each worker can enqueue subtasks for concurrent evaluation by other workers as they become idle. The WorkCrew paradigm has two advantages. First, much of the work associated with task division can be deferred until a new worker actually undertakes the subtask and avoided altogether if the original worker ends up executing the subtask serially. Second, the ordering of queue requests under WorkCrews favors coarse-grained subtasks, which reduces further the overhead of task decomposition.
Proceedings of the IEEE | 1978
D. Katsuki; E.S. Elsam; W.F. Mann; Eric Roberts; J.G. Robinson; F.S. Skowronski; E.W. Wolf
The authors describe the Pluribus multiprocessor system, outline several techniques used to achieve fault-tolerance, describe their field experience to date, and mention some potential applications. The Pluribus system places the major responsibility for recovery from failures on the software. Failing hardware modules are removed from the system, spare modules are substituted where available, and appropriate initialization is performed. In applications where the goal is maximum availability rather than totally fault-free operation, this approach represents a considerable savings in complexity and cost over traditional implementations. The software-based reliability approach has been extended to provide enror-handling and recovery mechanisms for the system software structures as well. A number of Pluribus systems have been built and are currently in operation. Experience with these systems has given us confidence in their performance and maintainability, and leads us to suggest other applications that might benefit from this approach.
technical symposium on computer science education | 2002
Eric Roberts; Marina Kassianidou; Lilly Irani
At a cost to both their own opportunities and societys ability to produce people with much-needed technical skills, women continue to be underrepresented in computer science degree programs at both the undergraduate and graduate level. Although some of the barriers that women face have their foundations in cultural expectations established well before the college level, we believe that departments can take effective steps to increase recruitment and retention of women students. This paper describes several strategies we have adopted at Stanford over the past decade.
technical symposium on computer science education | 1995
Eric Roberts; John Lilly; Bryan Rollins
The introductory computer science at Stanford University have a combined annual enrollment of over 1000 students. Teaching introductory programming to a population of this size requires significant instructional support to ensure that students receive the individual attention most beginning programmers need. This paper describes the approach that has evolved at Stanford for the introductory computer science courses, which is based on the extensive use of advanced undergraduates to teach sections of the introductory course. In our experience, using undergraduates as part of the teaching staff has created an effective learning environment for both the students in the classes and the undergraduate section leaders themselves.
technical symposium on computer science education | 2001
Eric Roberts
This paper describes the implementation of MiniJava, a teaching-oriented programming language closely based on the Java language developed by Sun Microsystems [6]. The core of the MiniJava environment is a restricted subset of the standard Java release and is designed to reduce the intimidation factor introductory students experience when they encounter a system as large as the Java environment. The paper outlines the particular restrictions and extensions that define MiniJava along with pedagogical justifications for each.
technical symposium on computer science education | 1996
Stephen N. Freund; Eric Roberts
Commercially available compilers, particularly those used for languages like ANSI C that have extensive commercial applicability, are not well-suited to students in introductory computer science courses because they assume a level of sophistication that beginning students do not possess. To alleviate this problem at Stanford, we have developed the Thetis programming environment designed specifically for student use. The system consists of a C interpreter and associated user interface that provides students with simple and easily understood editing, debugging, and visualization capabilities. Reactions of students and instructors indicate that Thetis fulfills the goals we set out to accomplish and provides a significantly better learning environment for students in CS1/CS2.
technical symposium on computer science education | 2000
Eric Roberts
Students in introductory computer science courses often vary widely in background and ability. As a result, some students are bored by the pace of presentation, while others struggle to keep up. This paper describes our experience using open-ended assignments and programming contests to capture the interest of our strongest students without adversely affecting the educational experience for the other students in the class. This approach has been markedly successful, particularly for highly motivated students, who are often able to work well beyond the level of the class. The paper also includes a survey of student reactions to the various extra-credit opportunities, which indicates that many student value this component of the class even if they do not participate directly in these activities.
technical symposium on computer science education | 1993
Eric Roberts
In 1991, the Stanford Department of Computer Science decided to abandon Pascal in its introductory computer science courses and to adopt ANSI C as the language of instruction. We based this decision on several factors: the inadequacy of standard Pascal as a base for teaching modern programming concepts, the need to prepare our students for more advanced courses in which they will be expected to use C for programming projects, and increasing pressure from students and faculty throughout the School of Engineering for instruction in a language that has become the industry standard. We also believe that it is not reasonable to expect students to learn C on their own; students must receive instruction in C in order to become good C programmers. C has several known deficiencies that make it a challenging language to teach. Based on our experience at Stanford, we believe that it is possible to minimize the problems associated with teaching C at the introductory level by applying standard software engineering strategies—procedural abstraction, modular decomposition, and information hiding—to good pedagogical effect. This paper expands on the reasons behind Stanford’s decision to adopt C and summarizes the pedagogical approach.
technical symposium on computer science education | 2004
Eric Roberts
In recent years, the languages, paradigms, and tools used to teach computer science have become increasingly complex. This added complexity puts pressure on designers of introductory courses, who must cover more material in an already overcrowded syllabus. The problem of complexity is exacerbated by the fact that languages and tools change quickly, which leads to profound instability in the manner in which computer science is taught. The situation has reached a point where it is difficult for individual computer science teachers to keep up. This paper examines the factors that promote complexity and instability in computer science. It then goes on to argue that we, as educators, must take responsibility for breaking this cycle of rapid obsolescence by developing a stable and effective collection of Java-based teaching resources that will meet the needs of the computer science education community. Such an initiative is already in progress under the direction of a special task force appointed by the ACM Education Board. The charter and current plans for that task force are being presented in a special session at this symposium.
technical symposium on computer science education | 1995
Eric Roberts
This paper describes a simple graphics library designed for a CS 1 course using ANSI C as its programming language. The library can be implemented easily on a variety of hardware platforms, providing a reasonable level of portability. Implementation currently exist for compilers on the Apple Macintosh, the IBM PC, and Unix workstations; the source code for each of these implementations is publicly available by anonymous FTP from the Roberts.C.CS1 area on host aw.com. In addition, the public distribution includes a fully standard implementation that generates a PostScript representation of the graphical image.