bluuebunny/crossref_metadata_2025 huggingface dataset:
Gender, software design, and occupational equity
Authors: Huff Chuck
Published: July 2004

After reviewing the work on gender bias in software design, a model of gender-role influenced achievement choice taken from Eccles [7] is presented. The paper concludes that (1) though laudable, reduction of gender bias in software design is not the most straightforward way to reduce gender inequity in the choice of computing as a career, (2) the model itself makes more clear some of the ethical issues involved in attempting to achieve gender equity on computing, and (3) efforts to reduce gender inequity in the choice of computing as a career need to be evaluated in the light of this model.
Using RoboCup to teach multiagent systems and the distributed mindset
Authors: Vidal José M. , Buhler Paul
Published: July 2004

We present our experiences using the RoboCup soccerserver simulator and Biter, our own agent platform, for the teaching of a graduate multiagent systems' class. The RoboCup simulator and Biter are both described. We argue that the combination of RoboCup and Biter forms an effective platform for the teaching of multiagent systems and the distributed mindset. Results from two semesters using these tools are presented. These results confirm our claims. Finally, we characterize this work within the framework provided by the STEELMAN Draft of the Computing Curricula 2001 initiative.
A case study of LEGO Mindstorms'™ suitability for artificial intelligence and robotics courses at the college level
Authors: Klassner Frank
Published: July 2004

This paper examines LEGO Mindstorms'™ suitability as a hardware platform for integrating robotics into an Artificial Intelligence course organized around the agent paradigm popularized by Russell and Norvig. This evaluation discusses how kits and projects based on Mindstorms supported students' exploration of the issues behind the design of agents from three classes in Russell and Norvig's intelligent agent taxonomy. The paper's investigation also examines several popularly-perceived limitations of the Mindstorms package for college-level robotics projects and shows that most of these "limitations" are
not
serious impediments to Mindstorms' use, while certain other of these "limitations" do indeed present challenges to the platform's use.
WWW autonomous robotics
Authors: Gallagher John C. , Perretta Steven
Published: July 2004

In recent years, courses in the design and programming of mobile autonomous robots have become popular at a number of institutions. These activities offer participants experience in a number of practical areas, including computer programming, project management, and technical writing. Further, they provide those experiences in an entertaining manner that may motivate students to pursue additional education in computer science and engineering. By their nature, however, these classes are resource intensive, often limiting access to a few, fortunate students. This paper describes efforts to date in providing a World Wide Web (WWW) based course in autonomous robotics. We will begin with a discussion of how the unique benefits of autonomous robotics courses are enhanced by offering them via the web. We will then discuss our WWW course and some special challenges we encountered during its development. We will conclude with a discussion of future plans and a set of open questions we intend to address.
Building a cyberwar lab: lessons learned
Authors: Micco Mary , Rossman Hart
Published: July 2004

With funding from NSF the Department has set up a stand alone lab for students to learn penetration testing techniques(attack), to harden their networks against these attacks (defense) , and also to gather enough evidence to through careful logging and audit controls to convict a hacker (convict). Linux RedHat 7.1 was used and all the machines were set up as standalone servers in three different subdomains, with 2 perimeter routers and 2 firewalls to allow experimentation with various configurations. In all over 50 software tools were downloaded and tested. Students were screened and asked to sign a disclaimer. They should also have been required to have networking experience. An initial mistake was to run a very minimal server with no services and practically no users. This was not realistic. It made it quick to rebuild systems but much harder to attack.The attacks need to be carefully planned and structured in a specific sequence one at a time, otherwise it becomes very difficult to follow what is going on.
Learning styles and performance in the introductory programming sequence
Authors: Thomas Lynda , Ratcliffe Mark , Woodbury John , Jarman Emma
Published: July 2004

This paper reports on the implication of different preferred learning styles on students' performance in the introductory programming sequence and on work in progress on how to accommodate these different styles.Students were given a learning styles preference test and then their preferred learning styles were compared to their performance on the exam and the practical programming part of the introductory programming module. There were significant differences in performance between groups of students.This result could lead one to two possible conclusions. One might be that some students' learning styles are more suited to learning programming than others.An alternative explanation is that our current methods of teaching advantage students with certain learning preference styles. We are at present in the process of testing this second assumption by providing students with a wider range of learning materials. We will then see if student performance is improved by using our current results as a baseline for comparison
Defensive climate in the computer science classroom
Authors: Barker Lecia Jane , Garvin-Doxas Kathy , Jackson Michele
Published: July 2004

As part of an NSF-funded IT Workforce grant, the authors conducted ethnographic research to provide deep understanding of the learning environment of computer science classrooms. Categories emerging from data analysis included 1) impersonal environment and guarded behavior; and 2) the creation and maintenance of informal hierarchy resulting in competitive behaviors. These communication patterns lead to a defensive climate, characterized by competitiveness rather cooperation, judgments about others, superiority, and neutrality rather than empathy. The authors identify particular and recognizable types of discourse, which, when prevalent in a classroom, can preclude the development of a collaborative and supportive learning environment.
Internet-centric computing in the Computer Science curriculum
Authors: Hickey Timothy , Kumar Amruth , Wilkens Linda , Beiderman Andrew , Mahadev Aparna , Ellis Heidi
Published: July 2004

Computer Science as an academic discipline should be guided not only by the "state of the art", but also by the "state of the practice"[1]. Over the last few years, Internet/Web has been undeniably the most "high profile" practice of computing. Yet, Computer Science curricula across the country have not kept up with this development - not many schools are offering courses, concentrations and/or majors that identify the Internet/Web as the central principle, and address its issues and needs.In this panel, the panelists will share their experience designing courses and concentrations to address this need, and present their vision for what an Internet-related Curriculum should include: the courses, the technologies, and the overarching themes. The viewpoints presented here are quite diverse: arguing in favor of Internet-related coursework for majors versus non-majors, as a course/minor/major, as an across-the-curriculum theme, as an interdisciplinary endeavor, as an introductory course versus a capstone course, and from the points of view of a community college, four-year institutions and a graduate institution. We hope that these diverse viewpoints will foster vigorous discussion at the panel about the place of Internet-Computing in the Computer Science curriculum, and its design.
Taking advantage of National Science Foundation funding opportunities
Authors: Bernat Andrew , Prey Jane
Published: July 2004

This session will highlight NSF Division of Undergraduate Education programs of interest to college faculty, discussing the requirements and guidelines. It will include a discussion of the characteristics of a competitive proposal and the proposal process.
SKA
Authors: Hamilton-Taylor Ashley George , Kraemer Eileen
Published: July 2004

Algorithm animation system design has focused primarily on providing advanced graphical capabilities. However, a fundamental mismatch exists between the needs of instructors and the features of existing algorithm animation systems. This mismatch has reduced the rate of adoption of algorithm animation tools. We describe a system, SKA (Support Kit for Animation), whose design is based on an examination of the tasks performed in the process of discussing algorithms and data structures. SKA attempts to support and enhance time-consuming instructional tasks such as tracing and data structure diagram manipulation, while requiring minimal preparation or authoring time.
Animating automata
Authors: Grinder Michael T.
Published: July 2004

The FSA Simulator is a Java program created to allow computer science students to experiment with finite state automata. The program is able to simulate both deterministic and nondeterministic automata. Pre-defined automata can be loaded from files or students can create their own. Although this project is similar to others, it has its own unique features. The development history, features, and future plans for this program are discussed.
Internationalization of the curriculum report of a project within computer science
Authors: Lee J. A. N.
Published: July 2004

In the Fall of 1999 the Center for Excellence in Undergraduate Teaching (CEUT) and the International Office at Virginia Tech provided a small grant to support the incorporation of international aspects into the Computer Science curriculum. The "Professionalism in Computing" course was chosen as the vehicle for this activity on the grounds that (a) it is a required course of all majors, and (b) the topics within the course were best amenable to international extensions. Through the efforts of the students in the Spring 2000 offering of the course, together with a number of international students, lesson plans for the comparison of non-US aspects of three topics were developed. The topics were Privacy, Freedom of Speech, and Censorship, and the countries covered included Germany, South Korea, China, and Turkey.
A proposed undergraduate bioinformatics curriculum for computer scientists
Authors: Doom Travis , Raymer Michael , Krane Dan , Garcia Oscar
Published: July 2004

Bioinformatics is a new and rapidly evolving discipline that has emerged from the fields of experimental molecular biology and biochemistry, and from the the artificial intelligence, database, and algorithms disciplines of computer science. Largely because of the inherently interdisciplinary nature of bioinformatics research, academia has been slow to respond to strong industry and government demands for trained scientists to develop and apply novel bioinformatics techniques to the rapidly-growing, freely-available repositories of genetic and proteomic data. While some institutions are responding to this demand by establishing graduate programs in bioinformatics, the entrance barriers for these programs are high, largely due to the significant amount of prerequisite knowledge in the disparate fields of biochemistry and computer science required to author sophisticated new approaches to the analysis of bioinformatics data. We present a proposal for an undergraduate-level bioinformatics curriculum in computer science that lowers these barriers.
Women in CS and biology
Authors: Cohoon J. McGrath
Published: July 2004

Common departmental characteristics and practices in computer science and biology/life science are compared for 46 departments at 23 Virginia colleges and universities. The goal of this preliminary investigation is to provide additional evidence on how departmental factors can affect the retention of female students.
African American women in the computing sciences
Authors: Lopez Antonio M. , Schulte Lisa J.
Published: July 2004

Most will likely agree that fewer and fewer women are finding their way to completing a bachelor's degree in one of the computing sciences. However, in looking at data collected by the National Science Foundation (NSF) on bachelor's degrees in Computer Science (CS), an interesting anomaly is evident when African American women are viewed as a separate trend. This paper presents some preliminary analysis and suggests that research is needed to better understand this ethnic group that has remained relatively stable in its production of bachelor's degrees in CS.
Undergraduate computational science and engineering programs and courses
Authors: Turner Peter R , Shiflet Angela B , Cunningham Steve , Stewart Kris , Phillips Andrew T , Vakalis Ignatios E
Published: July 2004

This 90-minute panel session will discuss recent and future developments in incorporating Computational Science and Engineering into the undergraduate curriculum. There is a companion session devoted to tools and techniques and so the focus here is on programs and courses.The panelists will demonstrate a clear uniformity of purpose but a wide variety of approaches to increasing the CSE experience of undergraduates in different types of schools.The schools represented vary from large state universities to small private liberal arts colleges and a medium-sized school with a strong engineering bias.The approaches adopted also differ. There are complete programs built largely from existing courses, specific courses that are added to established programs to allow a student to follow an emphasis in CSE. The introduction of CSE into existing programs through faculty advice and education has also been successful.Yet other approaches represented among the panelists are the introduction of multi-disciplinary team-taught project-based courses as a springboard for growing an undergraduate CSE program including undergraduate research projects. The incremental use of small add-on courses to supplement conventional mathematics offerings with some CSE content has also been used successfully.Another approach represented on the panel is the use of a particular vehicle --- in this case graphics and visualization --- to introduce key ideas of CSE into regular parts of the curriculum.The unifying theme of the panel --- the desire to improve undergraduate CSE education will be evident throughout. By presenting a wide variety of approaches to achieve this end, it is hoped that any audience participants who wish to create a CSE thread in their own programs will find some ideas to help them. Some of the practical and political issues will also be discussed in the various contexts.The program for the panel would allow each panelist a maximum of 10 minutes to outline their programs and approaches. The remaining 30 (or more) minutes would then be reserved for general discussion and questions and contributions from the audience.
Mathematics preparation for undergraduate degrees in computer science
Authors: Elenbogen Bruce S. , Laird John , Enbody Richard , McDonald Chris , Henderson Peter B. , Nau Richard , Tanimoto Steve
Published: July 2004

Throughout the history of computer science education there has been debate on what should be the appropriate mathematics background for computer science majors. The first computer science instructors were mathematicians and the first curriculums were just modifications of mathematics curriculums. However, as the discipline has grown and matured there has developed several areas of computer science where traditional undergraduate mathematics is not used and traditional mathematics preparation may not be appropriate. Although logic and problem solving skills are valued by the Computer Science community, exactly how many hours of mathematics and what areas of mathematics should be required, needs to be addressed. This panel was convened to discuss this issue from a variety of viewpoints. We hope that discussion will give the listeners new ideas on just what should be the appropriate courses and topics for their institution and program. The panel was chosen to present a wide range of view representing a variety of schools (large and small, public and private, traditional and non-traditional, preparation for the workplace or for disciplines (E-commerce, distributed computing, artificial intelligence, software engineering and graphics) viewpoints (both young and old, industrial and academic).
Tutorial on extreme programming
Authors: Caristi James
Published: July 2004

The methodology known as Extreme Programming will be presented, beginning with its reason for existence, philosophy, and a detailed exposition of the twelve practices that define it. There will also be a discussion of its strengths and weaknesses as a software design methodology.
Grading essays in computer ethics
Authors: Moskal Barbara , Miller Keith , King L. A. Smith
Published: July 2004

Computer ethics courses differ from technical courses in the manner in which they are taught and assessed. A common assignment in a computer ethics course is to write an essay that addresses a technical dilemma. Computer science faculty typically do not have training or experience in grading essays. The purpose of this paper is to present a scoring rubric that has been successfully used to grade and track students' knowledge development as they progress through a computer ethics course. Although this paper focuses upon a specific rubric, general principles will be emphasized to show how scoring rubrics can be used across different courses.
Role playing in an object-oriented world
Authors: Andrianoff Steven K. , Levine David B.
Published: July 2004

Role playing exercises are one of many teaching techniques commonly employed to drive home lessons about computer science. Most of the specific role playing described in the literature, however, relates to algorithm or hardware design. More recently, the Pedagogical Patterns Project has published patterns involving role playing in a general sense. In this paper, we draw on three separate role playing exercises that we have developed to show that scripted role playing is a natural and effective way to introduce concepts of object-oriented design.
Design patterns for games
Authors: Nguyen Dung ("Zung") , Wong Stephen B.
Published: July 2004

Designing a two-person game involves identifying the game model to compute the best moves, the user interface (the "view") to play the game, and the controller to coordinate the model and the view. A crucial task is to represent the algorithms used in their highest abstract forms. This can prove to be a difficult and subtle endeavor. It is made easier however by the use of good object-oriented (OO) design principles to help maintain a high level abstract viewpoint during the design process. The state pattern is used to represent the game board and is coupled with the visitor pattern to provide state-dependent, variant behaviors. The min-max algorithm and its variants are implemented as the strategy pattern, which allows flexible and extensible computational capability. Careful analysis is performed to properly abstract the interactions between the model and the view. The command design pattern is used to provide callback services between the model and the view. Leading students through this design process enables them to learn algorithms and architectures that easily scale to full-sized applications.
Women, mathematics and computer science
Authors: Henderson Peter B. , De Palma Paul , Almstrum Vicki L. , Hazzan Orit , Kihlstrom Kim Potter
Published: July 2004

"… women embrace the "precision" of mathematics." a quote from panelist Paul De Palma's viewpoint article "Why Women Avoid Computer Science" in the June 2001 CACM. Panelist Kim Kihlstrom notes "… I got into electrical engineering and then computer science exactly because I love math." Henderson's evidence indicates that women performed better than men in a mathematically oriented first course in computer science, and women felt the course was more beneficial than a traditional programming oriented first course. Regarding a mathematically oriented functional programming course for high schools Kathi Fisler says "Our high school teachers have noticed females preferring this to a conventional curriculum by as much as 5 to 1!"Coincidence, or is there a common thread here? Please join us for the discussion and share your own viewpoints.
Service learning in computer science and engineering
Authors: Jamieson Leah H.
Published: July 2004

Attention is increasing on the need to educate students in areas that extend beyond the traditional technical basis for their field: the Kellogg Commission's mandate for a "scholarship of engagement" [3]; the Engineering Deans Council report's emphasis on teamwork, communication, and the need for students to "understand the economic, social, environmental and international context of their professional activities" [2]; the CSAB Criteria 2000 requirements in written and oral communication and "coverage of social and ethical implications of computing" [1]; the growth of broad IT programs and schools.Service learning offers the opportunity to broaden the educational experience by engaging students in "real-world" projects. However, it also poses new questions: Should students earn academic credit for courses in which a significant portion of their time is spent on "soft" skills? Are students gaining valid technical experience on projects defined by an outside customer rather than by CS&E faculty? How can curriculum structures support projects that aren't constructed to fit within semester boundaries?The panel includes faculty and students from service-learning programs, the chief technical officer for a software company, and a community "customer."
A microprocessor survey course for learning advanced computer architecture
Authors: Skadron Kevin
Published: July 2004

A course that surveys state-of-the-art microprocessors offers an excellent forum for students to see how computer architecture techniques are employed in practice and for them to gain a detailed knowledge of the state of the art in microprocessor design. The University of Virginia has developed such a course, organized around student presentations and a substantial research project. The course can accommodate a range of students, from advanced undergraduates to senior graduate students. The course can also be easily adapted to a survey of embedded processors or DSPs. This paper describes the course and lessons learned.
The postroom computer
Authors: Osborne Hugh
Published: July 2004

Undergraduate students often experience difficulty in understanding the basic principles of low level computer operations in introductory courses to computer architectures when these are taught using actual low level programming languages. This is not due to any inherent complexity of the concepts but rather a consequence of assembly language specific details and the need to introduce many concepts simultaneously, such as, for example, data representation, addressing modes and primitive I/O. This paper describes the Postroom Computer, a low level language simulator that not only provides a simple low level language, suitable as an introduction to assembly language programming, but also allows computer architecture concepts to be introduced in an incremental fashion.
Preparing for Information Systems accreditation
Authors: Lidtke Doris K. , Feinstein David , Gorgone John , Yaverbaum Gayle
Published: July 2004

The first pilot Information Systems accreditation visit is occurring in Fall 2001. Many programs will apply for IS accreditation the following year, the 2002-03 accreditation cycle. This session will discuss the process for preparing for an accreditation visit. The discussion will include a planning timeline, preparation of the self-study and arranging details for the on campus visit. Particular attention will be placed on the assessment section of the self-study, the important details of the self-study, and the preparation of the display materials needed for the on-site visit.
Experiment-based project in undergraduate computer architecture
Authors: Bem Ewa Z.
Published: July 2004

The project presented in this paper has been developed for an advanced undergraduate computer architecture course specifically aimed at non-engineering students. The project is intended to develop understanding of issues in modern computer architecture through empirical testing and experimentation, using sophisticated execution time simulation and industry standard benchmark programs. The students are lead through the functional design process of a superscalar pipelined processor step by step, in a series of carefully structured experiments. The experiments either provide direct support for the design decisions, or make students explore a specific concept. The main goal of the project is to give students a true insight into the current technology and the driving forces behind modern computer architecture, without the burden of engineering and implementation details.
Using visualization to aid program construction tasks
Authors: George Carlisle E.
Published: July 2004

This paper discusses how novices exposed to an execution model of recursion (similar to an expert's mental model and visualised in the EROSI tutor) performed on the task of constructing an embedded recursive solution to a given problem specification. Empirical observations showed that after using the EROSI tutor, novices employed a variety of methods during program construction including the use of their understanding of the execution process of recursion from their visualisation experiences. Using our findings we provide some useful suggestions to inform teaching practice. We conclude that when teaching about recursion: visualising program execution models can be a useful aid to program construction, by providing a mental framework for reasoning about the behaviour of program code fragments both before and after coding; visualisation methods may not always be a sufficient condition for developing programming skills; and the teaching of techniques for program construction may be necessary.
Andragogy in a web technologies course
Authors: Ellis Heidi J. C.
Published: July 2004

The face of the student body in post-secondary degree programs in the United States is changing as an increasing number of students work full-time while attaining an advanced degree [13]. As the student population includes greater numbers of working professionals, a corresponding change in the instructional approaches used to educate the maturing student population is required. Knowles' theory of andragogy [9] is a set of principles that can be used to guide adult learning. This paper describes an application of andragogy to a graduate-level Web Technologies course comprised of working professional students. In this paper, the working professional is characterized and an educational philosophy based on the theory of andragogy is presented. The application of andragogy to a Web Technologies course is described and the results are discussed.
Design guidelines for the lab component of objects-first CS1
Authors: Roumani Hamzeh
Published: July 2004

We adopt the view that CS1 labs are not programming assignments, and that they should not be used for grading students or assessing their level of understanding. Instead, we think of them as teaching instruments that complement lectures by teaching the same material but in an exploratory fashion. But for labs to play this pedagogical role, certain conditions must be met in terms of how they are written and the complexity they expose. In this paper we present guidelines for designing the labs and the Java packages that must accompany them, with special emphasis on software engineering. Our own experience with implementing these guidelines, together with a few samples, is included.
GraphicsMentor
Authors: Nikolic Dejan , Shene Ching-Kuang
Published: July 2004

This paper discusses the functionality of GraphicsMentor. GraphicsMentor permits a student to modify many parameters of the camera, objects, and light sources interactively, and to visualize the rendered result on-the-fly. It also supports basic keyframe animation. With GraphicsMentor, a student should be able to grasp the fundamentals of computer graphics quickly and easily in a learning-by-doing way.
Rewrite cycles in CS courses
Authors: Null Linda , Ciaraldi Mike , Adams Liz , Wolz Ursula , Hailperin Max
Published: July 2004

The generally accepted wisdom among teachers of English composition is that a "rewrite cycle" should be used as a teaching strategy. Rather than expecting students to extrapolate from the grading comments on paper
N
what they should do differently on paper
N
+ 1, it has become conventional to ask for a rewrite of paper
N
itself. Of course, there are many variations on this theme. For example, peer review may supplement or replace some of the rounds of grading.The panelists will explore some of the ways they have applied this pedagogic strategy in computer science courses. Most obviously, when we have our students write papers, we have them do rewrites. However, some of us don't stop there, but rather also apply the same idea to the writing of programs or mathematical analyses. This encourages our students to do a high-quality job, and to feel that they have truly mastered a topic.Clearly, there are tradeoffs and difficulties, principally involving time. The panelists will also discuss this aspect, indicating how they have coped with the pitfalls, and indicating what has worked well, and what not so well. Ultimately, however, all the panelists are optimistic about the value of rewrite cycles.After the panelists share their experiences, there will be some time for discussion with the audience. Based on the interest this topic provoked on the sigcse.members mailing list, and in ensuing private email, we look forward to an active audience. We will also make materials from the session available at http://www.gustavus.edu/~max/rewrite/
The object is objects
Authors: Bergin Joseph , Kick Richard , Hromcik Judith , Larson Kathleen
Published: July 2004

Teaching objects early requires different pedagogy. It isn't especially difficult, but it is different. Four presenters will explain and demonstrate different methodologies for introducing objects early in introductory computer science courses. The propose is to provide teachers with ideas that they can use or modify to successfully introduce objects and classes to novice programmers.
Management challenges in a large introductory computer science course
Authors: Chamillard A. T. , Merkle Laurence D.
Published: July 2004

Many colleges and universities throughout the world offer introductory computer science courses with significant student enrollment. There are certainly plenty of challenges for the administrators of those courses; ensuring equitable grading across different instructors and offering times for the course, accomplishing the massive material preparation and other logistical tasks required for the course, grading the large number of assessments associated with the large enrollment, and managing the numerous instructors in the course are a few examples. This paper discusses the processes we have implemented to address these and other management challenges at the U.S. Air Force Academy.
An infrastructure for teaching skills for group decision making and problem solving in programming projects
Authors: Diwan Amer , Waite William M. , Jackson Michele H.
Published: July 2004

In industry, programmers work in groups to design and implement substantial pieces of software. In contrast, most programs that students write in classes are toy programs involving little or no group work. To address this discrepancy, we have developed a software infrastructure that aims to teach group work skills to students in computer science courses and also enables students to tackle larger and more significant projects. We are in the process of deploying this infrastructure in a three course sequence at the University of Colorado: Data Structures---Programming Languages---Compiler Construction.
Networking CS
Authors: Sloan Joseph D. , Lopez Andy , Smith Randy K. , Mowe Dick
Published: July 2004

We face a need for undergraduate instruction in networking and telecommunications. The Computing Research Association has identified both web-specialists and network-designers as being among the seven occupations where there is a clearly established shortage of professionals [2]. Even with the recent softening of the economy, individuals in the networking and telecommunications field are highly sought after as attested to by surveys such as RHIConsulting's® recent survey of 1400 CIOs nationwide [4]. It is imperative to ask how these individuals will be educated.Historically, telecommunications has been hardware oriented. Consequently, it has been in the domain of Electrical Engineering. The ongoing convergence of communications and computing, however, has drastically shifted the focus of telecommunications and considerably broadened the field. Many of the new areas of telecommunications will not fit neatly into old categories. Some are much closer to Computer Science than Electrical Engineering.Schools wishing to address this need must begin by deciding what should be taught. For two-year schools, the ACM has issued guidelines for several programs [1]. For four-year institutions, the curriculum remains an open question. The primary guidelines for four-year institutions are the dated
1991 Computing Curricula
[5] and the emerging
Computing Curricula 2001 Computer Science
[3]. As the goal of these documents is to define the core needs of the CS discipline, understandably, neither goes beyond outlining an introductory course in networking. Schools interesting in educating professionals in networking and telecommunications will need to go beyond this first course. A key question would seem, then, in teaching networking, what should be taught beyond the first course?Our panel presents three quite different positions---that the basic need can be met with a single well-designed course, that a few advanced courses will meet the need, and that a collection of courses constituting a minor is called for.
How to develop and grade an exam for 20,000 students (or maybe just 200 or 20)
Authors: Hunt Fran , Kmoch Joe , Nevison Chris , Rodger Susan , Zelenski Julie
Published: July 2004

Although our students may spend only a class period working one of our exams, as instructors, we invest many more hours crafting the questions and grading their responses. How do we ensure our time is well-spent? What qualities contribute to an effective exam? How can we guarantee a fair evaluation of student performance?With an 18-year track record delivering a nationwide exam, the Advanced Placement Computer Science (AP CS) program has a wealth of experience in the area of exam development and administration. This special session will bring together members of the AP CS Development Committee and the Educational Testing Service to share some of their insights into how the experts do it.AP teachers will learn more about the exam for which they are preparing their students. College faculty will gain a better understanding of the metrics provided by the AP exam. All instructors will come away with practical and transferable ideas for successful exam tactics.
The SIGCSE 2001 Maze Demonstration program
Authors: Rasala Richard , Raab Jeff , Proulx Viera K.
Published: July 2004

This article will describe the SIGCSE 2001 Maze Demo program that may be used as a CS2 laboratory exercise on traversal algorithms. The article will also describe the object-oriented design of the program and the Java Power Tools that were used to enable rapid development of its graphical user interface. Finally, the quality of the program and the speed of its development shows that it is now practical to teach freshmen using full graphical user interfaces rather than interfaces that use the console or a small restricted set of interface widgets.
Using an environment chain model to teach inheritance in C++
Authors: Wick Michael R. , Stevenson Daniel E. , Phillips Andrew T.
Published: July 2004

Inheritance is a central topic in most introductory object-oriented programming courses and frequently the most challenging for students to comprehend. The difficulties students experience often center around the rather complicated and obscure dynamic method invocation algorithms used in languages like C++ and Java. We present a visual model for teaching inheritance that captures the essential aspects of these algorithms yet is easy for students to comprehend and apply.
JERPA
Authors: Emory David , Tamassia Roberto
Published: July 2004

This paper describes a Java-based distance-education tool, called the Environment for Remote Programming Assignments in Java (JERPA), for use in computer science courses with Java programming assignments. JERPA reduces the demand on the university's computing infrastructure while providing instructors with an easy system to deploy and distribute assignments, and allowing students greater flexibility as they work on the assignments. JERPA yields immediate advantages to traditional on-campus CS courses and provides a key functionality to programming courses offered in a distance-education setting.
Effective internet education
Authors: Kurtz Barry L. , Parks Dee , Nicholson Eric
Published: July 2004

Our Internet-based project is developing two courses to demonstrate the viability of a virtual classroom environment where the on-line student can interact both with the instructor and "virtual classmates." Other course components include a hyperlinked textbook and laboratory experiences that stress learning-by-doing. We use Java on both the server side and the client side to support the classroom interaction and the laboratory activities. This paper illustrates some of the particular software technologies used. We discuss problems encountered, solutions found, and the ongoing development of materials.
Nifty assignments
Authors: Parlante Nick , Estell John K. , Reed David , Levine David , Garcia Dan , Zelenski Julie
Published: July 2004

Creating assignments is a difficult and time consuming part of teaching Computer Science. Nifty Assignments is a forum, operating at a very practical level, to promote the sharing of assignment ideas and assignment materials.Each presenter will introduce their assignment, give a quick demo, and describe its niche in the curriculum and its strengths and weaknesses. The presentations (and the descriptions below) merely introduce each assignment. For more detail, each assignment has its own web page with more detailed information and assignment materials such as handouts and data files to aid the adoption of the assignment. Information on participating in Nifty Assignments as well as all the assignment pages are available from our central page…
http://cse.stanford.edu/nifty/
Scientific experimentation via the matching game
Authors: Fenwick James B. , Norris Cindy , Wilkes James
Published: July 2004

In traditional computer science curricula, students view program implementation as the end product and not the means to obtaining some further result. All too often students complete an implementation at the last minute, perform a minimal amount of testing and call the assignment
done!
This paper discusses an approach we have taken in our courses to have students use and develop programs as part of a scientific inquiry. In addition to causing students to perform more thorough testing, our approach also improves empirical and critical thinking skills.
The comparative programming languages course
Authors: Maurer W. Douglas
Published: July 2004

The programming language concepts which ought to be presented in the comparative programming languages course (either graduate or undergraduate) are all covered by choosing C++, Java, Perl, and Python as the languages to be compared. These include dynamic typing, object orientation, multiple inheritance, interpreters and compilers, keyword and default parameters, generics, operator overloading, complex numbers, universal hierarchies, exceptions, and garbage collection. We describe such a course, which we have given.
Integrating formal models into the programming languages course
Authors: Tucker Allen B. , Noonan Robert E.
Published: July 2004

In our approach to the Programming Languages course, formal models are integrated as a thread that pervades the course, rather than as a one of many topics that is introduced and then dropped. In this paper we present a simplified version of the formal semantics used. We then show how this model is implemented using the object-oriented, functional and logic paradigms.
Exploration of process interaction in operating systems
Authors: Robbins Steven
Published: July 2004

This paper examines the use of a simulator to explore process interaction in Unix. The simulator allows instructors to trace through a variety of programs and to show how the processes and pipes are connected. Students can create C language programs and see how changes in their code or changes in process scheduling affect the configuration of the processes and pipes as well as the output of the program. Students can also see the consequences of not protecting critical sections in an executing program. The simulator is flexible enough to allow the creation of process fans, chains and trees as well as unidirectional and bidirectional rings. The program is written in Java and can be run as a standalone application or as an applet from a browser.
The well-tempered semaphore
Authors: Reek Kenneth A.
Published: July 2004

This paper discusses differences in the semantics of various semaphore implementations and their ramifications in developing solutions to synchronization problems. An approach is described to insulate students from these differences and simplify the task of teaching semaphores.
A communication library to support concurrent programming courses
Authors: Carr Steve , Fang Changpeng , Jozwowski Tim , Mayo Jean , Shene Ching-Kuang
Published: July 2004

A number of communication libraries have been written to support concurrent programming. For a variety of reasons, these libraries generally are not well-suited for use in undergraduate courses. We have written a communication library uniquely tailored to an academic environment. The library provides two levels of communication abstraction (topology and channel) and supports communication among threads, processes on the same machine, and processes on different machines, via a unified interface. The routines facilitate controlled message loss along channels and can be integrated with an existing graphical tool that supports visualization of the communication that occurs. An editor has been developed for automatic code generation for arbitrary topologies via a graphical interface. All these tools run over Solaris, Linux, and Windows.
Panel on integrating security concepts into existing computer courses
Authors: Mullins Paul , Wolfe Jim , Fry Michael , Wynters Erik , Calhoun William , Montante Robert , Oblitey William
Published: July 2004

Recently, computer security has come to the forefront of public awareness. With the onslaught of worms such as Code Red, national (U.S.) concern has increased about cyber terrorism and the information infrastructure. One educational response has been the emergence of a number of computer security degree programs - at the undergraduate level, e.g., East Stroudsburg State University of PA, and at the graduate level, e.g., the Heinz School at Carnegie-Mellon University.The panel members were all participants in the Cyber security faculty development Workshop[1] held at Indiana University of PA in August, 2001. Among the goals of the workshop was the development of courses that would teach the theory and application of security, including the use of specially designed (quarantined) "attack" and "defend" computer labs. Additional goals include development of modules related to security for CS core courses, and an interdisciplinary minor for Computer Science and Criminology majors.It was the consensus of the panel participants that many institutions would be unable to implement special degree programs or tracks, and, in a significant number of cases, might be unable to immediately implement even one specialized course. Yet, all the participants also believed strongly that security-related content in our computer courses can, and should, be improved. Even if no security-based courses are added, major and non-major courses in computer science, CIS, etc., can do a better job of raising awareness of threats, vulnerabilities, and risks.Each panel member will address a specific course or sub discipline and describe how security was infused or added to the current curriculum. The intent is to foster discussion regarding appropriateness and pedagogy while relating individual experiences, successes and failures. Audience and panel members will be encouraged to discuss the relative merits of this approach.
Interactive Pushdown Automata Animation
Authors: McDonald Jennifer
Published: July 2004

This paper will present the Interactive Pushdown Automata Animation for use in an Automata Theory class. It will present the features of the IPAA as well as the algorithm and data model used. Finally, this article will outline the necessary pieces of a good visual tool and show how they are implemented in the IPAA.
A tutorial program for propositional logic with human/computer interactive learning
Authors: Lukins Stacy , Levicki Alan , Burg Jennifer
Published: July 2004

This paper describes a tutorial program that serves a double role as an educational tool and a research environment. First, it introduces students to fundamental concepts of propositional logic and gives them practice with theorem proving. Secondly, the program provides an environment in which we can track student learning, explore cognitive issues of human problem solving, and investigate the possibilities of interactive human/machine learning. We have tested the tutorial program on two groups of Discrete Mathematics students and report the results of our assessment. We also discuss the contributions and future directions of our research in interactive human/machine learning.
A comprehensive project for CS2
Authors: Newhall Tia , Meeden Lisa
Published: July 2004

We present our experience using a large, real-world application as a course project for the second half of the semester of a CS2 course. Our primary goal for the project was to create an engaging application that incorporated most of the key data structures and algorithms introduced in the course. Specifically, the project uses binary search trees, priority queues, hash tables, and graphs. The project consisted of four parts combined to build an integrated web browser and search engine in Java. A key benefit of an incremental, long-term project of this type is that students quickly learn that their initial design and implementation decisions have a significant impact on the eventual extensibility and performance of their software. This provides numerous opportunities for students to recognize the importance of software engineering techniques and complexity analysis in the development of a successful application. We present students' responses to the project which show that they overwhelmingly enjoyed the project and felt that it helped them to see how the data structures and algorithms discussed in the course are used in real software.