Eric Roberts - Academia.edu (original) (raw)

Papers by Eric Roberts

Research paper thumbnail of Strategies for promoting academic integrity in CS courses

32nd Annual Frontiers in Education

Research paper thumbnail of Using C in CS1

ACM SIGCSE Bulletin, 1993

In 1991, the Stanford Department of Computer Science decided to abandon Pascal in its introductor... more 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 factor~the inadequacy of standard Pascal as a base for teaching modem 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 rdso 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 hidhtg-to good pedagogical effect. This paper expands on the reasons behind Stanford's decision to adopt C and summarizes the pedagogical approach.

Research paper thumbnail of Strategies for encouraging individual achievement in introductory computer science courses

ACM SIGCSE Bulletin, 2000

Students in introductory computer science courses often vary widely in background and ability. As... more 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.

Research paper thumbnail of Encouraging women in computer science

ACM SIGCSE Bulletin, 2002

At a cost to both their own opportunities and society's ability to produce people with much-n... more At a cost to both their own opportunities and society's 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.

Research paper thumbnail of Meeting the challenges of rising enrollments

ACM Inroads, 2011

FOR MOST OF THE LAST DECADE, the number of computer science majors declined signifi cantly at col... more FOR MOST OF THE LAST DECADE, the number of computer science majors declined signifi cantly at colleges and universities throughout the United States, in spite of continuing demand from industry for graduates in the fi eld. In the last few years, however, many institutions have witnessed a dramatic turnaround in enrollment, with many more students choosing to become CS majors, or at least exploring that possibility by taking introductory computer science courses.

Research paper thumbnail of Tools for creating portable demonstration programs

ACM SIGCSE Bulletin, 1996

This paper describes a collection of software tools called the cscknro package, which is designed... more This paper describes a collection of software tools called the cscknro package, which is designed to support development of interactive programs that can be used both as lecture demonstrations and as hands-on tools for increasing student comprehension. Because the package is based on a graphics library that has been implemented for a variety of platforms, the programs generated by the csdwro package are highly portable and not restricted to a single computing environment.

Research paper thumbnail of Resurrecting the applet paradigm

ACM SIGCSE Bulletin, 2007

Since the introduction of Java in 1995, educators have recognized the potential of Java applets a... more Since the introduction of Java in 1995, educators have recognized the potential of Java applets as an educational resource. Sadly, the continuing evolution of Java has made it harder to use applets, largely because it is so difficult to keep those applets compatible with the many different versions of the Java runtime environment supported by existing browsers. Over the past two years, the ACM Java Task Force (JTF) has developed an effective strategy that makes it possible to write applets using up-to-date versions of Java that will nonetheless run on browsers that support only the JDK 1.1 environment. This paper describes the acm11.jar library, which uses this strategy to achieve the desired backward compatibility. It also describes a more general solution strategy for which we have a prototype, although we are unable to release the prototype until we get permission from Sun Microsystems. The acm11.jar library can be used with any Java applet and does not depend on adopting the JTF...

Research paper thumbnail of Designing a Java graphics library for CS 1

ACM SIGCSE Bulletin, 1998

In recent years, there has been considerable interest in using Java in introductory computer scie... more In recent years, there has been considerable interest in using Java in introductory computer science courses. The advantages of choosing Java, however, must be balanced against two significant drawbacks: the instability caused by the rapid evolution of the Java toolkits and the complexity of the graphics model for new students. This paper outlines a strategy for teaching Java that eliminates these problems. The first component of that strategy is a set of low-level classes, DBCanvas and XGraphics, which together offer a double-buffered graphics model that is well matched to student intuition. The second component is a set of higher-level classes, principally Collage and Widget, which make it easy to introduce object-oriented techniques at the beginning of CS1. The sources for these classes are available on the Web at the URL http://cse.stanford.edu/java

Research paper thumbnail of Using undergraduates as teaching assistants in introductory programming courses

Proceedings of the twenty-sixth SIGCSE technical symposium on Computer science education, 1995

The introductory computer science classes at Stanford University have a combined annual enrollmen... more The introductory computer science classes 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 deseribes 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 undergmduates as part of the teaching staff has emated an effeetive learning environment for both the students in the classes and the undergmduate section leaders themselves.

Research paper thumbnail of The game of set®

ACM SIGCSE Bulletin, 2004

This paper presents an object--oriented design for a solitaire version of the game of Set® The de... more This paper presents an object--oriented design for a solitaire version of the game of Set® The design is responsibility driven and illustrates polymorphism and several fundamental design patterns, including Flyweight, Strategy and Factory. It introduces each of these to solve particular problems within the design. The direct application of these concepts and the interest our students show in the game make Set an ideal example for classroom discussions and assignments.

Research paper thumbnail of Large introductory courses in research computer science departments (panel)

Proceedings of the twenty-ninth SIGCSE technical symposium on Computer science education, 1998

Traditionally, a large introductory course meant a lecture hall with a single lecturer talking an... more Traditionally, a large introductory course meant a lecture hall with a single lecturer talking and students taking notes-but no longer. Today a wide variety of techniques, not only in the classroom but in labs and faculty offices and cyberspace, can make a large introductory course an extremely effective educational experience. We explore these practices, with pointers for finther information, as a guide for instructors or departments faced with the largecourse model of instruction. THE CHALLENGES OF LARGE CLASSES Introductory computer science courses present their own unique challenges. The range of student backgrounds may be very wide in a single course, from complete novices to students with many years of self-taught experience.-The specification of programming assignments, like the specification of any software, is notoriously difficult. Assignments, particularly those involving production of software, are voluminous and require painstaking evaluation. The time demands on students are greater than in non-laboratory courses, and they increase further as more open-ended projects are assigned. Couple this with an enrollment of 100 students or more (in some institutions, enrollments of 500 are not unheard of), and the challenges multiply. We will characterize these issues. below, and go on to consider practices and strategies that may help resolve these difficulties and occasionally even turn them to advantage. Permission to make digitalhard co@ of all or part of this material for personal or chssroom use is granted without fee provided that the copies ore not made or distributed for profit or commercial advantage, the copyn'aht notice, the title ofthe publication and its date appear, end notice is given that copyright is by permission of the ACM, Inc. To copy ohwise, to republish, to post on servers or to rediibute to h-ts, requires specific permission andlor fee.

Research paper thumbnail of What can computer science learn from a fine arts approach to teaching?

Proceedings of the 36th SIGCSE technical symposium on Computer science education, 2005

Two pedagogical techniques of IT programs are compared, a traditionally taught computer science (... more Two pedagogical techniques of IT programs are compared, a traditionally taught computer science (CS) major and an IT certificate program using a fine arts approach to pedagogy. The latter graduates a higher percentage of women than of males. Although the two programs are quite different in the nature of the material and what students are expected to learn, CS instructors can borrow from the certificate program in ways that could increase attraction to and retention of women in CS, especially by allowing students to hear each other articulate what they are learning; mentioning practical applications of theoretical principles; and requiring that students display their knowledge and solutions to their peers.

Research paper thumbnail of Nifty assignments

ACM SIGCSE Bulletin, 2004

ABSTRACT While computing technology has undoubtedly changed the world in which we live, the chang... more ABSTRACT While computing technology has undoubtedly changed the world in which we live, the changes have been exaggerated. Talk of a hi-tech internet-driven revolution during the last decade is inaccurate from a historical perspective: (a) It belittles previous ...

Research paper thumbnail of Thetis

ACM SIGCSE Bulletin, 1996

Commercially available compilers, particularly those used for languages like ANSI C that have ext... more 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.

Research paper thumbnail of Resources to support the use of Java in introductory computer science

ACM SIGCSE Bulletin, 2004

Research paper thumbnail of The ACM java task force

ACM SIGCSE Bulletin, 2006

SIGCSE 2004 marked the official announcement of the ACM Java Task Force, which is working to deve... more SIGCSE 2004 marked the official announcement of the ACM Java Task Force, which is working to develop a stable collection of pedagogical resources that will make it easier to teach Java to first-year computing students. The Java Task Force has received funding from the ACM Education Board, the SIGCSE Special Projects Fund, and the National Science Foundation (NSF Award DUE-0411905). This session offers an update on the work of the Java Task Force over the past year and provides an opportunity for community feedback prior to the publication of the final report in June 2005.

Research paper thumbnail of Strategies for promoting academic integrity in CS courses

32nd Annual Frontiers in Education

Research paper thumbnail of Using C in CS1

ACM SIGCSE Bulletin, 1993

In 1991, the Stanford Department of Computer Science decided to abandon Pascal in its introductor... more 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 factor~the inadequacy of standard Pascal as a base for teaching modem 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 rdso 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 hidhtg-to good pedagogical effect. This paper expands on the reasons behind Stanford's decision to adopt C and summarizes the pedagogical approach.

Research paper thumbnail of Strategies for encouraging individual achievement in introductory computer science courses

ACM SIGCSE Bulletin, 2000

Students in introductory computer science courses often vary widely in background and ability. As... more 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.

Research paper thumbnail of Encouraging women in computer science

ACM SIGCSE Bulletin, 2002

At a cost to both their own opportunities and society's ability to produce people with much-n... more At a cost to both their own opportunities and society's 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.

Research paper thumbnail of Meeting the challenges of rising enrollments

ACM Inroads, 2011

FOR MOST OF THE LAST DECADE, the number of computer science majors declined signifi cantly at col... more FOR MOST OF THE LAST DECADE, the number of computer science majors declined signifi cantly at colleges and universities throughout the United States, in spite of continuing demand from industry for graduates in the fi eld. In the last few years, however, many institutions have witnessed a dramatic turnaround in enrollment, with many more students choosing to become CS majors, or at least exploring that possibility by taking introductory computer science courses.

Research paper thumbnail of Tools for creating portable demonstration programs

ACM SIGCSE Bulletin, 1996

This paper describes a collection of software tools called the cscknro package, which is designed... more This paper describes a collection of software tools called the cscknro package, which is designed to support development of interactive programs that can be used both as lecture demonstrations and as hands-on tools for increasing student comprehension. Because the package is based on a graphics library that has been implemented for a variety of platforms, the programs generated by the csdwro package are highly portable and not restricted to a single computing environment.

Research paper thumbnail of Resurrecting the applet paradigm

ACM SIGCSE Bulletin, 2007

Since the introduction of Java in 1995, educators have recognized the potential of Java applets a... more Since the introduction of Java in 1995, educators have recognized the potential of Java applets as an educational resource. Sadly, the continuing evolution of Java has made it harder to use applets, largely because it is so difficult to keep those applets compatible with the many different versions of the Java runtime environment supported by existing browsers. Over the past two years, the ACM Java Task Force (JTF) has developed an effective strategy that makes it possible to write applets using up-to-date versions of Java that will nonetheless run on browsers that support only the JDK 1.1 environment. This paper describes the acm11.jar library, which uses this strategy to achieve the desired backward compatibility. It also describes a more general solution strategy for which we have a prototype, although we are unable to release the prototype until we get permission from Sun Microsystems. The acm11.jar library can be used with any Java applet and does not depend on adopting the JTF...

Research paper thumbnail of Designing a Java graphics library for CS 1

ACM SIGCSE Bulletin, 1998

In recent years, there has been considerable interest in using Java in introductory computer scie... more In recent years, there has been considerable interest in using Java in introductory computer science courses. The advantages of choosing Java, however, must be balanced against two significant drawbacks: the instability caused by the rapid evolution of the Java toolkits and the complexity of the graphics model for new students. This paper outlines a strategy for teaching Java that eliminates these problems. The first component of that strategy is a set of low-level classes, DBCanvas and XGraphics, which together offer a double-buffered graphics model that is well matched to student intuition. The second component is a set of higher-level classes, principally Collage and Widget, which make it easy to introduce object-oriented techniques at the beginning of CS1. The sources for these classes are available on the Web at the URL http://cse.stanford.edu/java

Research paper thumbnail of Using undergraduates as teaching assistants in introductory programming courses

Proceedings of the twenty-sixth SIGCSE technical symposium on Computer science education, 1995

The introductory computer science classes at Stanford University have a combined annual enrollmen... more The introductory computer science classes 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 deseribes 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 undergmduates as part of the teaching staff has emated an effeetive learning environment for both the students in the classes and the undergmduate section leaders themselves.

Research paper thumbnail of The game of set®

ACM SIGCSE Bulletin, 2004

This paper presents an object--oriented design for a solitaire version of the game of Set® The de... more This paper presents an object--oriented design for a solitaire version of the game of Set® The design is responsibility driven and illustrates polymorphism and several fundamental design patterns, including Flyweight, Strategy and Factory. It introduces each of these to solve particular problems within the design. The direct application of these concepts and the interest our students show in the game make Set an ideal example for classroom discussions and assignments.

Research paper thumbnail of Large introductory courses in research computer science departments (panel)

Proceedings of the twenty-ninth SIGCSE technical symposium on Computer science education, 1998

Traditionally, a large introductory course meant a lecture hall with a single lecturer talking an... more Traditionally, a large introductory course meant a lecture hall with a single lecturer talking and students taking notes-but no longer. Today a wide variety of techniques, not only in the classroom but in labs and faculty offices and cyberspace, can make a large introductory course an extremely effective educational experience. We explore these practices, with pointers for finther information, as a guide for instructors or departments faced with the largecourse model of instruction. THE CHALLENGES OF LARGE CLASSES Introductory computer science courses present their own unique challenges. The range of student backgrounds may be very wide in a single course, from complete novices to students with many years of self-taught experience.-The specification of programming assignments, like the specification of any software, is notoriously difficult. Assignments, particularly those involving production of software, are voluminous and require painstaking evaluation. The time demands on students are greater than in non-laboratory courses, and they increase further as more open-ended projects are assigned. Couple this with an enrollment of 100 students or more (in some institutions, enrollments of 500 are not unheard of), and the challenges multiply. We will characterize these issues. below, and go on to consider practices and strategies that may help resolve these difficulties and occasionally even turn them to advantage. Permission to make digitalhard co@ of all or part of this material for personal or chssroom use is granted without fee provided that the copies ore not made or distributed for profit or commercial advantage, the copyn'aht notice, the title ofthe publication and its date appear, end notice is given that copyright is by permission of the ACM, Inc. To copy ohwise, to republish, to post on servers or to rediibute to h-ts, requires specific permission andlor fee.

Research paper thumbnail of What can computer science learn from a fine arts approach to teaching?

Proceedings of the 36th SIGCSE technical symposium on Computer science education, 2005

Two pedagogical techniques of IT programs are compared, a traditionally taught computer science (... more Two pedagogical techniques of IT programs are compared, a traditionally taught computer science (CS) major and an IT certificate program using a fine arts approach to pedagogy. The latter graduates a higher percentage of women than of males. Although the two programs are quite different in the nature of the material and what students are expected to learn, CS instructors can borrow from the certificate program in ways that could increase attraction to and retention of women in CS, especially by allowing students to hear each other articulate what they are learning; mentioning practical applications of theoretical principles; and requiring that students display their knowledge and solutions to their peers.

Research paper thumbnail of Nifty assignments

ACM SIGCSE Bulletin, 2004

ABSTRACT While computing technology has undoubtedly changed the world in which we live, the chang... more ABSTRACT While computing technology has undoubtedly changed the world in which we live, the changes have been exaggerated. Talk of a hi-tech internet-driven revolution during the last decade is inaccurate from a historical perspective: (a) It belittles previous ...

Research paper thumbnail of Thetis

ACM SIGCSE Bulletin, 1996

Commercially available compilers, particularly those used for languages like ANSI C that have ext... more 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.

Research paper thumbnail of Resources to support the use of Java in introductory computer science

ACM SIGCSE Bulletin, 2004

Research paper thumbnail of The ACM java task force

ACM SIGCSE Bulletin, 2006

SIGCSE 2004 marked the official announcement of the ACM Java Task Force, which is working to deve... more SIGCSE 2004 marked the official announcement of the ACM Java Task Force, which is working to develop a stable collection of pedagogical resources that will make it easier to teach Java to first-year computing students. The Java Task Force has received funding from the ACM Education Board, the SIGCSE Special Projects Fund, and the National Science Foundation (NSF Award DUE-0411905). This session offers an update on the work of the Java Task Force over the past year and provides an opportunity for community feedback prior to the publication of the final report in June 2005.