The field of software patterns has seen an explosion in interest in the last three years.. Work t... more The field of software patterns has seen an explosion in interest in the last three years.. Work to date has been on the recognition, cataloging, and finding of patterns with little attention to the use of patterns, especially by students and practitioners not well-versed in object-oriented technologies. . This project addresses pattern use through the development of several programming and pedagogical frameworks that supply support for using patterns throughout a computer science curriculum. Although we do not claim that patterns are Brooks' silver bullet [lo], their use can help cope with the accidental complexity of software development and, we argue, their use is essential for a successful adoption of object-oriented techniques in academic computer science programs. This project addresses practical concerns of the computer science and software engineering communities in using, teaching, and learning patterns. In this paper we argue that patterns are an essential programming and pedagogical tool and report on our work in making them accessible to the educational community. 'Here we literally mean useful. i.e.; has been used in a design or prognun.
Proceedings of the 50th ACM Technical Symposium on Computer Science Education, 2019
The Advanced Placement Computer Science Principles (AP CSP) course was the culmination of an eigh... more The Advanced Placement Computer Science Principles (AP CSP) course was the culmination of an eight-year NSF/College Board pilot project that exceeded all expectations in terms of enrollment in its first two official years. Four NSF-sponsored projects and six other projects have endorsed AP CSP curricula and professional development (PD), a first for an AP course. In this paper, we report on an NSF-sponsored multi-year effort to infuse cooperative learning (CL) structures into AP CSP classrooms to improve class participation and student learning. As we report, CL structures have been beneficial for both new and experienced teachers and across the curricula of the endorsed providers. Since AP CSP was designed to engage all learners, the CL structures used in our PD workshops and the CL resources designed by participating teachers in our project have the potential to positively impact all AP CSP classrooms. Research was conducted on the extent to which use of CL structures impacted student efficacy and student achievement. Three cohorts of AP CSP teachers participated in PD that focused on AP CSP pedagogical content knowledge using CL structures. A cumulative 143 teachers attended one-week PD workshops spanning July 2015, 2016, and 2017. We studied the effect of CL structures on student learning using AP scores as an outcomes measure. Use of CL structures was a statistically significant and positive predictor of student AP scores for participating classes in cohorts 2 and 3. Additionally, the use of pair programming was a significant and positive predictor of AP scores.
This paper presents our experiences promoting active learning in programming courses from introdu... more This paper presents our experiences promoting active learning in programming courses from introductory to advanced levels. We use a variety of techniques as our courses vary greatly in size and our facilities vary in layout and equipment. For large lectures, we present active interludes that require students to work in small groups, respond to periodic polls, or help a professor program. For moderately sized courses, we ask students to work in groups and share their observations with the class. Finally, in our Interactive Computer Classroom we have almost completely departed from long lectures to run the course in a workshop format, giving students a chance to work on the computer almost everyday in a supervised, safe environment. In short, although these techniques often require longer preparation time, we show that active learning can be done in any classroom situation and students must be active everyday to remain engaged in the material.
Proceedings of the 34th SIGCSE technical symposium on Computer science education, 2003
Text books, including books for general audiences, invariably mention bubble sort in discussions ... more Text books, including books for general audiences, invariably mention bubble sort in discussions of elementary sorting algorithms. We trace the history of bubble sort, its popularity, and its endurance in the face of pedagogical assertions that code and algorithmic examples used in early courses should be of high quality and adhere to established best practices. This paper is more an historical analysis than a philosophical treatise for the exclusion of bubble sort from books and courses. However, sentiments for exclusion are supported by Knuth [17], "In short, the bubble sort seems to have nothing to recommend it, except a catchy name and the fact that it leads to some interesting theoretical problems." Although bubble sort may not be a best practice sort, perhaps the weight of history is more than enough to compensate and provide for its longevity.
Programming contests can provide a high-profile method for attracting interest in computer scienc... more Programming contests can provide a high-profile method for attracting interest in computer science. We describe our philosophy as it pertains to the purpose and merits of programming contests as well as their implementation. We believe that we have successfully combined the theoretical and practical aspects of computer science in an enjoyable contest in which many people can participate. The contests we describe have distinct advantages over contests such as the ACM scholastic programming contest. The primary advantage is that there is no travel required-the whole contest is held in cyberspace. All interaction between participants and judges is via electronic mail. Of course all contests build on and learn from others, and ours is no exception. This paper is intended to provide a description andphilosophyof programming contests that will foster discussion, that will provide a model, and that will increase interest in programming as an essential aspect of computer science.
A typical Data Structures (CS 2) course covers a wide variety of topics: elementary algorithm ana... more A typical Data Structures (CS 2) course covers a wide variety of topics: elementary algorithm analysis; data structures including dynamic structures, trees, tables, graphs, etc. ; large programming projects; and more advanced object-oriented concepts. Integrating these topics into assignments is a challenging task; educators often duplicate work done by others in re-inventing such assignments. At the same time, these assignments and large programs take time to develop and are often changed from semester to semester to preclude cheating. We report on a project that provides modules containing many kinds of programming and lab assignments which can be re-used across semesters with accessible and exciting application-oriented materials. Our project is a collaboration between a research and teaching oriented private university, a teaching oriented public university, and a teaching oriented historically black university. This helps ensure that the modules will be accessible to nearly all...
When the model elimination (ME) procedure was first proposed, the notion of lemma was put forth a... more When the model elimination (ME) procedure was first proposed, the notion of lemma was put forth as a promising augmentation to the basic complete proof procedure. Here the lemmas that are used are also discovered by the procedure in the same proof run. Several implementations of ME now exist, but only a 1970s implementation explicitly examined this lemma mechanism, with indifferent results. We report on the successful use of lemmas using the METEOR implementation of ME. Not only does the lemma device permit METEOR to obtain proofs not otherwise obtainable by METEOR, or any other ME prover not using lemmas, but some well-known challenge problems are solved. We discuss several of these more difficult problems, including two challenge problems for uniform general-purpose provers, where METEOR was first in obtaining the proof. The problems are not selected simply to show off the lemma device, but rather to understand it better. Thus, we choose problems with widely different characterist...
Programs that use animations or visualizations attract student interest and offer feedback that c... more Programs that use animations or visualizations attract student interest and offer feedback that can enhance different learning styles as students work to master programming and problem solving. In this paper we report on several CS 1 assignments we have used successfully at Duke University to introduce or reinforce control constructs, elementary data structures, and object-based programming. All the assignments involve either animations by which we mean graphical displays that evolve over time, or visualizations which include static display of graphical images. The animations do not require extensive programming by students since students use classes and code that we provide to hide much of the complexity that drives the animations. In addition to generating enthusiasm, we believe the animations assist with mastering the debugging process.
The programming language used for the Advanced Placement Computer Science (AP CS) courses and exa... more The programming language used for the Advanced Placement Computer Science (AP CS) courses and examinations will change from Pascal to C++ beginning with the 1998-1999 academic year. This decision, proposed by the AP Computer Science Development Committee and approved by the College Board, was made in 1994. The 5-year transition period was crucial in defining a C++ subset and providing time for the high school teachers teaching AP CS to attend professional development activities. In [1], the authors appear to misunderstand the reasoning and the forces that helped define the AP C++ subset. This paper attempts to correct those.
We are concerned about a view in undergraduate computer science education, especially in the earl... more We are concerned about a view in undergraduate computer science education, especially in the early courses, that it's okay to be math-phobic and still prepare oneself to become a computer scientist. Our view is the contrary: that any serious study of computer science requires students to achieve mathematical maturity (especially in discrete mathematics) early in their undergraduate studies, thus becoming well-prepared to integrate mathematical ideas, notations, and methodologies throughout their study of computer science. A major curricular implication of this theme is that the prerequisite expectations and conceptual level of the first discrete mathematics course should be the same as it is for the first calculus course --- secondary school pre-calculus and trigonometry. Ultimately, calculus, linear algebra, and statistics are also essential for computer science majors, but none should occur earlier than discrete mathematics. This paper explains our concerns and outlines our re...
The use of real world problems as the basis for assignments in Computer Science courses is attrac... more The use of real world problems as the basis for assignments in Computer Science courses is attractive for many reasons. At the same time it is difficult to find such a problem that offers the same richness that is found, for example, in sorting or searching. In this paper a problem is presented that has many real-world instances and which is pedagogically attractive at all levels of Computer Science from the level of a non-major's course to that of an advanced algorithms course.
The NSF CISE Directorate selected Owen Astrachan and Peter Denning as the first two Distinguished... more The NSF CISE Directorate selected Owen Astrachan and Peter Denning as the first two Distinguished Education Fellows. Their job is to serve as ambassadors for curriculum change in a field whose basic curriculum structure is much the same as it was in the 1970s. They believe that • The outdated 1970-era curriculum structure is largely responsible for the harmful and misleading external image that CS=programming. • The external image reflects an internal self-image that started in the 1970s as "we are programmers" and matured in the 1990s to "we are masters of abstraction." These images do not foster collaboration with other fields and do not excite the curiosity of young people. In this session, Astrachan and Denning will discuss what they see as high leverage points for curriculum innovation. Astrachan will focus on problem-based learning, a way of bringing students directly into contact with real issues in the world where computation can help. Denning will focus on the Great Principles of Computing and on the development of foundational skills of innovation among curriculum innovators. They will answer questions from the audience and provide feedback to the ACM Education Board and ACM Education Council.
For forty years programming has been the foundation of introductory computer science. Despite exp... more For forty years programming has been the foundation of introductory computer science. Despite exponential increases in computational power during this period, examples used in introductory courses have remained largely unchanged. The incredible growth in statistics courses at all levels, in contrast with the decline of students taking computer science courses, points to the potential for introducing computer science at many levels without emphasizing the process of programming: leverage the expertise and role-models provided by high school mathematics teachers by studying topics that arise from social networks and modeling to introduce computer science as an alternative to the traditional programming approach . This new approach may capture the interest of a broad population of students, crossing gender boundaries. We are developing modules that we hope will capture student interest and provide a compelling yet intellectually rich area of study. We plan to incorporate these modules ...
We describe the outcome and experience of trying to develop an architecture and framework for a N... more We describe the outcome and experience of trying to develop an architecture and framework for a Networked Object Oriented Gaming Architecture (NOOGA). The aim of this project was to create an easily extensible framework that facilitates teaching students about object oriented design, design patterns, and software engineering in an interesting context. Our original goal was to develop a game serve to serve multi-player games such as battleship, dots, and Boggle. We planned to implement these three games, but to design an extensible server that would permit new games to be added to the server framework. The NOOGA framework would be studied and used from both a client and server standpoint. Students would first develop clients that would connect to the server to play a specific game and would, in more advanced courses, add new games to the server. This paper will focus on the development process and design decisions made during development. We initially decided to implement the client/server model using Java's Remote Method Invocation (RMI). Later, we developed a protocol for communicating between the server and clients using low-level sockets to facilitate client implementation in C and C++. We describe the success in developing an extensible server, but describe failures in ensuring robustness in the face of faulty clients. Since the NOOGA server was intended to facilitate student development of networked clients, our original goals were not fully realized.
The participants will use a debate format with a provocative thesis to explore the pedagogical ap... more The participants will use a debate format with a provocative thesis to explore the pedagogical approach known as "objects early" or "objects first." By arguing in the affirmative, Elliot Koffman and Stuart Reges will point out concerns that have been raised about the approach. By arguing in the negative, Kim Bruce and Michael Kölling will describe schools that are succeeding with the approach and ways to address significant concerns. Owen Astrachan as moderator will ensure that the debate remains civil and will provide some humorous and possibly even insightful commentary on the evidence presented by both sides.
Proceeding of the 44th ACM technical symposium on Computer science education, 2013
In this paper we analyze the CS Principles project, a proposed Advanced Placement course, by focu... more In this paper we analyze the CS Principles project, a proposed Advanced Placement course, by focusing on the second pilot that took place in 2011-2012. In a previous publication the first pilot of the course was explained, but not in a context related to relevant educational research and philosophy. In this paper we analyze the content and the pedagogical approaches used in the second pilot of the project. We include information about the third pilot being conducted in 2012-2013 and the portfolio exam that is part of that pilot. Both the second and third pilots provide evidence that the CS Principles course is succeeding in changing how computer science is taught and to whom it is taught.
Proceedings of the 42nd ACM technical symposium on Computer science education, 2011
By learning you will teach, by teaching you will learn. -Latin Proverb Once again, things that co... more By learning you will teach, by teaching you will learn. -Latin Proverb Once again, things that could've been brought to my attention YESTERDAY! -Adam Sandler as Robbie Hart in "The Wedding Singer" [1] When we started teaching, our more seasoned colleagues were probably ready with pearls of wisdom to share with us. They no doubt pointed us to several of the excellent resources on teaching as a new faculty member 6,. As an instructor, there were so many hats to wear: lecturer, teaching staff mentor, exam / project / lab author, grader and leader of office hours. It was a lot to take in, and even with all that counsel, it was probably still quite daunting! Years later, what have we had to learn on our own? What egregious mistakes could have been avoided had we just known a single fact? What advice has stood the test of time? How can we share these with each other? The purpose of this panel is to gather seasoned educators together (with over 80 years of combined teaching experience) and allow each to share their favorite teaching tips. We will have ample opportunity for audience members to share their own tips and to comment on ours. The position statements that follow offer a random sampling of two of these "hidden" pearls. When possible, we've tried to tag them with relevant categories: Lecturing, Office (hours), Staff (mentoring), Exams (authoring & administering), Labs (authoring & running), Section (TA-led discussion), Projects (and homework; authoring & supporting), and Meta (advice spanning categories).
Uploads
Papers by Owen Astrachan