bluuebunny/crossref_metadata_2025 huggingface dataset:
Computer architecture and mental models
Authors: Yehezkel Cecile , Ben-Ari Mordechai , Dreyfus Tommy
Published: November 2005

The EasyCPU visualization environment was developed for teaching computer architecture to novice students of computer science. During the development, the process of choosing the appropriate conceptual model of the computer for the visualization motivated research on the
mental models
that arise in the students as they learn. These mental models come from attempts by the students to make sense of the
conceptual models
presented to them by the software tool and their learning materials (textbook and exercises). The research findings support the view that the visualization was critical in enabling the construction of a viable mental model, a process that did not occur from textbook learning alone, because for the majority of students, their mental models were based upon their end-user experience rather than on the theoretical learning.
SPIMbot
Authors: Zilles Craig
Published: November 2005

This paper describes SPIMbot, an extension to James Larus's widely-used MIPS simulator SPIM, that allows virtual robots to be controlled by writing programs in the MIPS assembly language. SPIMbot was written to provide an engaging environment to motivate students to learn assembly language concepts. The SPIMbot tool allows the development of scenarios---in which students must program the robot to perform certain tasks---and provides the means to compete two robots against each other.In our sophomore/junior-level class, we structure the programming component as a collection of structured assignments that produce sub-components for the robot; these sub-components are then used in a final open-ended programming assignment to produce an entry for a SPIMbot tournament. In our experience, this has been an effective means of engaging students, with many students investing time to aggressively optimize their implementations. SPIMbot has been effectively used in large classes and its source code is freely available [7].
Using asynchronous discussions to enhance student participation in CS courses
Authors: Bhagyavati  , Kurkovsky Stan , Whitehead Christopher C.
Published: November 2005

As Computer Science (CS) educators, we are involved in teaching a variety of undergraduate and graduate courses such as database management systems, networking, software development and web development courses. In addition to the traditional classroom environment, we use online and blended teaching methods to enhance student participation and improve the achievement of learning objectives. Typical online supplements to classroom instruction include posting homework, links to external resources, lecture notes and exams online. Asynchronous discussions and synchronous chat sessions provide additional forums outside the classroom for strengthening interaction and enriching the learning experience for students. This paper focuses on how asynchronous discussions can be used to enhance student participation in CS courses; increased participation leads to learning effectiveness, rich involvement with the course content, and student satisfaction.
Research to classroom
Authors: Hannon Charles , Huber Manfred , Burnell Lisa
Published: November 2005

Bringing the excitement and challenges of active research into the classroom offers unique learning experiences. This is particularly true for undergraduate students not otherwise exposed to the processes, methods, and results of research. Designing and delivering such a course, however, presents many challenges. In this article, we describe our recent experience co-teaching a multi-institutional course in smart home technologies. From our experience and analysis of student evaluations, we offer a number of lessons learned and recommendations.
A company-based framework for a software engineering course
Authors: Way Thomas P.
Published: November 2005

The subject matter of a typical undergraduate software engineering course, while providing necessary background, can be quite dry. Team-based programming projects often complement the more theoretical textbook and lecture content by giving students valuable hands-on practice, albeit on a small scale and within a traditional classroom setting. This paper describes a company-based framework used in two semesters of a software engineering course. This approach incorporates a novel, collaborative framework to simulate the real-world experience of working for a medium-sized software design company or research laboratory, while giving students a vested interest in the overall outcome.
Large team projects in software engineering courses
Authors: Coppit David , Haddox-Schatz Jennifer M.
Published: November 2005

A key goal of educators teaching software engineering is to provide students with useful experience that will benefit them after graduation. A key component of this experience is usually a class project that is meant to expose students to the issues associated with real software development efforts. Unfortunately, educators rarely have the time required to manage software projects in addition to their normal pedagogical duties. As a result, many software engineering courses compromise the project experience by reducing the team sizes, project scope, and risk. In this paper, we present an approach to teaching a one-semester software engineering course in which approximately 30 students work together to construct a moderately sized (22 KLOC) software system. This approach provides a more realistic project experience for the students, without incurring significant managerial overhead for the instructor. We present our experiences using the approach for the spring 2004 software engineering course at The College of William and Mary.
Computer forensics programs in higher education
Authors: Gottschalk Larry , Liu Jigang , Dathan Brahma , Fitzgerald Sue , Stein Michael
Published: November 2005

This paper presents a preliminary survey of computer forensics programs in North America. It summarizes existing requirements for associate, bachelor's, and master's degree programs as well as certificate programs. It briefly discusses factors which must be considered when introducing a new program (curriculum design, faculty, students, facilities, and budget).
Viruses 101
Authors: Aycock J. , Barker K.
Published: November 2005

The University of Calgary introduced a controversial course in the fall of 2003 on computer viruses and malware. The primary objection about this course from the anti-virus community was that students were being taught how to create viruses in addition to defending against them. Unfortunately, the reaction to our course was based on a dearth of information, which we remedy in this paper by describing key pedagogical elements of the course.Specifically, we present four aspects of our course: how students are vetted for entry, operation of the course, course content, and the instructional materials used. In addition, we pay particular attention to the controversial course assignments, discussing the assignments and the need for balance, objectivity, security, and learning in a university environment. Our experiences with the course and future plans may be helpful for other institutions considering such course offerings. It should also provide opponents of the course with valuable information about the true nature of the course, the pedagogy used, and the value provided to the computer community as computer science graduates with this kind of expertise take their place as the next generation computer security experts.
Experiments with balanced-sample binary trees
Authors: Barnes G. Michael , Noga John , Smith Peter D. , Wiegley Jeff
Published: November 2005

In this paper we propose using experiments with Balanced-Sample Binary Trees (BSBTrees) as assignments and lecture material in intermediate data structures courses (CS2/3). BSBTrees are composite data structures that have a temporarily constructed form that precedes their normal construction. We present them in the context of binary search trees. To do this we first investigate the retrieval properties of randomly generated binary search trees and show how temporary construction can improve both worst case and average case behavior. We provide a brief analysis of BSBTree performance and description of the classes that can be used for BSBTree implementation. Last we discuss the use of BSBTrees in CS2 and CS3 courses and a survey of student opinions about BSBTrees.
Analyze that
Authors: Levitin Anany
Published: November 2005

The paper advocates a wider use of puzzles and puzzle-like games in teaching the analysis of algorithms. It discusses many specific examples---from classic puzzles of recreational mathematics to newly popular job interview brainteasers---which illustrate all major aspects of algorithm analysis.
Revealing the programming process
Authors: Bennedsen Jens , Caspersen Michael E.
Published: November 2005

One of the most important goals of an introductory programming course is that the students learn a systematic approach to the development of computer programs. Revealing the programming
process
is an important part of this; however, textbooks do not address the issue -- probably because the textbook medium is static and therefore ill-suited to expose the process of programming. We have found that process recordings in the form of captured narrated programming sessions are a simple, cheap, and efficient way of providing the revelation.We identify seven different elements of the programming process for which process recordings are a valuable communication media in order to enhance the learning process. Student feedback indicates both high learning outcome and superior learning potential compared to traditional classroom teaching.
An introductory VR course for undergraduates incorporating foundation, experience and capstone
Authors: Stansfield Sharon
Published: November 2005

This paper presents the structure, pedagogy and motivation for an introductory undergraduate course in Virtual Reality. The course is offered as an elective at the 400-level, hence students taking the course are juniors and seniors who have completed a substantial portion of their Computer Science curriculum. The course incorporates multiple components of VR theory and practice, including hardware and software survey and analysis, human perception, and applications. It also contains a semester-long, hands-on development component utilizing a specific virtual reality environment. In addition, because VR is a broad, multidisciplinary field of study, the course provides an ideal environment for incorporating capstone elements that allow undergraduate students to tie together many of the computing principles learned during their undergraduate academic careers.
Photon mapping made easy
Authors: Yu Tin-Tin , Lowther John , Shene Ching-Kuang
Published: November 2005

This paper presents the authors' introduction of photon mapping in an undergraduate computer graphics course, Software was designed as a pedagogical and demonstration tool which permitted students to practice and learn photon mapping. Classroom experience and examples that illustrate soft shadows, color bleeding, indirect illumination and caustic are also discussed.
A geographically-distributed, assignment-structured undergraduate grid computing course
Authors: Holliday Mark A. , Wilkinson Barry , House Jeffrey , Daoud Samir , Ferner Clayton
Published: November 2005

Grid computing is now mature enough and important enough to be studied as a full course at the undergraduate level for upper-level computer science majors. We have developed such a course, including a set of lecture slides, assignments, and assignment handouts specifically targeted for this audience. The sequence of assignments is a key part of the course. Some of the assignments are modifications of pre-existing work and others are completely new. We describe the key decisions we made about the course organization and content and describe the assignments. An important feature of the course is that it was geographically distributed with copies of the grid software installed at three campuses. Those campuses plus three others were receiving sites and included students and faculty associated with nine universities.
The grader in ProgrammingLand
Authors: Hill Curt , Slator Brian M. , Daniels Lisa M.
Published: November 2005

In this paper, we describe a customized instructional content delivery system named ProgrammingLand with special emphasis on a program evaluation module named TorqueMOODa. The system is fully online and is used as a component of several classroom courses, as well the foundation of comparable distance education classes. The context of these systems is the early programming classes often taken by introductory Computer Science students, among others.
Using testing and JUnit across the curriculum
Authors: Wick Michael , Stevenson Daniel , Wagner Paul
Published: November 2005

While the usage of unit-testing frameworks such as JUnit has greatly increased over the last several years, it is not immediately apparent to students and instructors how to best use tools like JUnit and how to integrate testing across a computer science curriculum. We have worked over the last four semesters to infuse testing and JUnit across our curriculum, building from having students use JUnit to having them write their own test cases to building larger integration and use case testing systems to studying JUnit as an example of good application of design patterns. We have found that, based on this increased presentation and structuring of the usage of JUnit and testing, students have an increased understanding and appreciation of the overall value of testing in software development.
On integrating web services from the ground up into CS1/CS2
Authors: Lim Billy B. L. , Jong Chu , Mahatanankoon Pruthikrai
Published: November 2005

Web services technology is a burgeoning technology that has received tremendous amount of attention in the software industry in recent years under the broader umbrella of service-oriented architecture (SOA). While Web services have been incorporated in many industries in the market place in the last few years, they are only beginning to appear in the academia, primarily in upper division and graduate CS curricula. In this paper, we share our belief that the Web services technology can and should be introduced early in a CS curriculum. We describe a number of scenarios that Web services can be integrated into CS1/CS2 to make them more interesting and more importantly, make the students better prepared for upper division classes and for the industry upon graduation. These scenarios can be incorporated without compromising the core materials presently covered in many CS1/CS2 sequence.
Why structural recursion should be taught before arrays in CS 1
Authors: Bruce Kim B. , Danyluk Andrea , Murtagh Thomas
Published: November 2005

The approach to teaching recursion in introductory programming courses has changed little during the transition from procedural to object-oriented languages. It is still common to present recursion late in the course and to focus on traditional, procedural examples such as calculating factorials or solving the Towers of Hanoi puzzle. In this paper, we propose that the shift to object-oriented programming techniques calls for a significant shift in our approach to teaching recursion. First, we argue that in the context of object-oriented programming students should be introduced to examples of simple recursive structures such as linked lists and methods that process them, before being introduced to traditional procedural examples. Second, we believe that this material should be presented before students are introduced to structures such as arrays. In our experience, the early presentation of recursive structures provides the opportunity to reinforce the fundamentals of defining and using classes and better prepares students to appreciate the reasons to use classes to encapsulate access to other data structures when they are presented.
Use and assessment of a rigorous approach to CS1
Authors: Dougherty John P. , Wonnacott David G.
Published: November 2005

We have developed and implemented a "rigor-first" approach to CS1 instruction, in which we introduce rigorous techniques for understanding algorithms alongside associated programming skills. This core material is developed through a number of engaging problems from more advanced courses in computer science and other natural sciences. These principles are continued in CS2, and the two courses form our "3-2-1" first-year sequence: three programming paradigms and two models of program execution are explored on a single platform. This article discusses the design of our CS1 course, its role in the computer science curriculum, and our experiences with it. Preliminary assessment suggests this approach has merit in our curriculum.
Computer games and CS education
Authors: Sweedyk Elizabeth , deLaet Marianne , Slattery Michael C. , Kuffner James
Published: November 2005

Computer and video games have grown to be a major industry but, until recently, have largely been ignored by academia. The last couple of years, however, have seen the emergence of new academic programs, conferences, and journals dedicated to games studies. This panel discusses a variety of ways, and whys, for introducing games into computer science curricula. Panelists discuss their experiences in designing a broad range of courses including a games course for women, a software development course that uses games as projects, an introductory games programming course in Java, and an advanced graphics course that focuses on games.
Outcomes-based computer science education
Authors: Cooper Stephen , Cassel Lillian , Moskal Barbara , Cunningham Steve
Published: November 2005

As computer science educators, we are being pushed to define (by accreditation agencies, within our institutions, etc.) our courses and programs in terms of measurable outcomes. The Computing Accreditation Commission (CAC) is responsible for reviewing and accrediting computer sciences departments across the United States. As part of this review process, computer science departments must specify and measure student learning objectives and outcomes (see criteria at http://www.abet.org/cac1.html). The same is true for institution-wide accreditation (for example, by the Middle States Commission on Higher Education). Also, faculty who are composing proposals for NSF or other funding agencies are expected to provide descriptions of objectives and outcomes and how these are to be measured.
Supporting workflow in a course management system
Authors: Botev Chavdar , Chao Hubert , Chao Theodore , Cheng Yim , Doyle Raymond , Grankin Sergey , Guarino Jon , Guha Saikat , Lee Pei-Chen , Perry Dan , Re Christopher , Rifkin Ilya , Yuan Tingyan , Abdullah Dora , Carpenter Kathy , Gries David , Kozen Dexter , Myers Andrew , Schwartz David , Shanmugasundaram Jayavel
Published: November 2005

CMS is a secure and scalable web-based course management system developed by the Cornell University Computer Science Department. The system was designed to simplify, streamline, and automate many aspects of the workflow associated with running a large course, such as course creation, importing students, management of student workgroups, online submission of assignments, assignment of graders, grading, handling regrade requests, and preparation of final grades. In contrast, other course management systems of which we are aware provide only specialized solutions for specific components, such as grading. CMS is increasingly widely used for course management at Cornell University. In this paper we articulate the principles we followed in designing the system and describe the features that users found most useful.
Automated use of a Wiki for collaborative lecture notes
Authors: O'Neill Melissa E.
Published: November 2005

This paper gives a first look at
slides2wiki
, a new scheme for easily providing collaborative lecture notes. Unlike previous web-based courseware schemes, the
slides2wiki
approach integrates with existing techniques that computer-science course instructors already use to prepare their classes. This tool is used to create a site where students may collaborate to create their own notes, using the lecture slides as a starting point. Adopting a surprisingly low-tech approach that uses familiar tools and paradigms,
slides2wiki
avoids many of the stumbling blocks of previous approaches to web-based course support.
Learning by doing
Authors: Reid Karen L. , Wilson Gregory V.
Published: November 2005

Professional software developers use version control systems to coordinate their work, and to provide an unwindable history of their project's evolution. In contrast, students in most programming courses use a homegrown electronic submission program to submit their work, and email to coordinate with partners when doing team projects. In May 2003, we began using CVS, a popular open source version control system, as an assignment submission system. Students receive starter code by checking out the assignment, use the version control system to manage their work, and submit their assignment by committing it to CVS. Teaching assistants grade assignments by checking out each student's repository, and committing the marks. Our experience to date shows that this is both a simpler and a more flexible way to manage student assignments, and also an excellent way to teach them how to use a fundamental software development tool.
Steganography and cartography
Authors: Stevenson Daniel E. , Wick Michael R. , Ratering Steven J.
Published: November 2005

Today's generation of students crave assignments that are relevant to their world, both in terms of graphical interfaces and, more importantly, the application area. To be fully engaged they must find the application of importance. However, we have found that many assignments in computer science attempt to engage the students by moving further and further away from the underlying machine representations. This causes a disconnect between the applications our students write and the material we present on machine representations and architecture. We present examples of assignments based from the fields of Steganography and Cartography that we have found to be valuable in helping to reinforce the importance of machine representations with today's students. We found that the students were excited and intrigued to see how their discipline could play a vital role in the war on terrorism and how what they were learning in their CS 1 course was directly relevant to what they heard on the nightly news and experience on a daily basis via the Internet.
The impact of virtual classroom laboratories in CSE
Authors: Bower Matt , Richards Debbie
Published: November 2005

In order to gauge the pedagogical implications of conducting Computer Science practical sessions remotely, the Division of ICS at Macquarie University conducted a formal experiment using a virtual classroom environment called Macromedia Breeze Live. Research results indicated that students who completed their practical in the virtual classroom: i) felt they performed significantly more collaboration, ii) expressed a preference for this mode of practical session over regular laboratory sessions, iii) felt that they learnt significantly more from their classmates and iv) felt that they learnt significantly more from the practical supervisor than students in the standard classroom. Reasons for these results are proposed in the pedagogical context of offering Computer Science practical sessions online.
Closed laboratories with embedded instructional research design for CS1
Authors: Soh Leen-Kiat , Samal Ashok , Person Suzette , Nugent Gwen , Lang Jeff
Published: November 2005

Closed laboratories are becoming an increasingly popular approach to teaching introductory computer science courses. However, as observed in [1], "Considering the prevalence of closed labs and the fact that they have been in place in CS curricula for more than a decade, there is little published evidence assessing their effectiveness." In this paper we report on an integrated approach to designing and implementing laboratories with embedded instructional research design. The activities reported here are part of our department-wide effort to not only improve student learning in Computer Science and Computer Engineering, but also to improve the agility of our Computer Science and Engineering Department in adapting our curriculum to changing technologies, incorporate research, and validate the instructional strategies used. This paper presents the design and implementation of the labs and the results and analysis of student performance. Also described in this paper is how we have employed cooperative learning in our labs and how it impacts student learning.
An introductory software engineering course that facilitates active learning
Authors: Ludi Stephanie , Natarajan Swaminathan , Reichlmayr Thomas
Published: November 2005

At the Rochester Institute of Technology, the undergraduate introductory software engineering course has been redesigned from a lecture-lab format to a project-centric studio format. The new format blends the lecture material with the project work. As a result, students drive their own learning experience based on scaffolding created by the course design. The challenges faced and the techniques and strategies utilized in the planning and delivery of the course will be discussed, including the utilization of online learning support infrastructure. This paper presents instructor experiences, analysis of student feedback, lessons learned and recommendations for other educators considering an active learning approach for their courses.
The new science students in too much, too soon an abbreviated, accelerated, constructivist, collaborative, introductory experience in CS
Authors: Rebelsky Samuel A.
Published: November 2005

Although faculty are most accustomed to teaching semester-long traditional courses, they are encountering an increasing number of situations in which they must teach "courses" of only a few hours that are intended to give others a "flavor" of the discipline. Such situations include alumni events, orientation activities for incoming or potential students, and community outreach programs. In many disciplines, faculty can rely on participants' academic or basic skills (e.g., how to dissect an argument; basic laboratory skills). In computer science, faculty must accept not only a lack of basic skill in the discipline, but also a potential gap in knowledge of what the study of computer science entails.This paper explores the design of one such introductory experience, which is held in two two-hour sections for selected incoming science students at Grinnell College. The course emphasizes hands-on discovery, algorithm design and algorithm analysis grounded in the problem of sorting. Different faculty members in the department have taught the course three times to general success.
Experiences with a CS0 course targeted for CS1 success
Authors: Dierbach Charles , Taylor Blair , Zhou Harry , Zimand Iliana
Published: November 2005

In this paper, we report on an approach taken addressing the issue of the preparedness of students entering CS1. Specifically, we discuss the adoption of a first-day assessment test in lieu of completed course prerequisites for determining students' preparedness, and the development of a corresponding CS0 "fallback" course intended to provide the appropriate background for those students lacking the necessary programming reasoning skills, as indicated by assessment test results. We report here on the adequacy of the assessment test designed, the effectiveness of the CS0 course as targeted for CS1 success, and the perceptions of students as to the impact that the CS0 course has had on their ultimate success in CS1.
Taming Java for the classroom
Authors: Hsia James I. , Simpson Elspeth , Smith Daniel , Cartwright Robert
Published: November 2005

Java is the canonical language for teaching introductory programming, but its complex syntax and abundance of constructs are difficult for beginners to learn. This paper shows how object-oriented programming in Java can be made more accessible to beginners through the use of "language levels", a hierarchy of progressively richer subsets of Java. This hierarchy is implemented as an extension of the DrJava pedagogic programming environment.
A model for improving secondary CS education
Authors: Ericson Barbara , Guzdial Mark , Biggers Maureen
Published: November 2005

This paper describes how the Institute for Computing Education (ICE) at Georgia Tech is trying to improve the state of computer science education in secondary schools in Georgia. ICE is a partnership between the Georgia Department of Education and the College of Computing at Georgia Tech. The goals for this partnership are to increase the number and quality of computer science teachers and increase the number, quality, and diversity of computer science students. One specific goal is to increase the number of students taking the CS-AP course. We believe that this partnership can serve as a model for other states.
A "secondary" look at digital image processing
Authors: McAndrew Alasdair , Venables Anne
Published: November 2005

For the past few years, we have run a highly successful activity teaching some elementary digital image processing to students at years 9 and 10 of secondary school. The activity involves working with a digital camera, taking, capturing and saving images, and exploring pixel values and their relationship to image brightness and colour. We also perform some elementary processing tasks: thresholding, changing spatial resolution and quantization. Students then have a brief introduction to spatial filtering, followed by some examples: image blurring and edge detection. The activity finishes with some binary morphology. Given that digital image processing is usually offered only at the upper undergraduate or postgraduate level, we have demonstrated that it is quite possible to introduce some image processing concepts in a friendly and supportive environment to students in the middle years of their secondary schooling.
Teaching and learning ethics in computer science
Authors: Botting Richard J.
Published: November 2005

The author shares techniques used in a successful "Ethics and Professionalism" class at California State University, San Bernardino. Ethical issues played a part in designing the class. The author describes active learning and holistic grading. Ethics demanded a novel way to post grades on the web without exposing personal data. This was evaluated by students. The author points out some improvements he has made, or will make.
A discussion format for computer ethics
Authors: Sanders Alton F.
Published: November 2005

This paper, describes a format and grading scheme for a discussion course in Computing Ethics. The teaching of ethics, particularly in a discussion format, can be somewhat problematic in a computer science department where courses tend to be technical and faculty tend to be more comfortable with material presented in a lecture and/or workshop format. Grading of discussion and papers can also be perceived as more difficult or, at least, less grounded in objective criteria. The following describes an approach that attempts to address those particular concerns. The course described was offered in the spring of 2003 when two sections were taught.
Intention-based scoring
Authors: Lane H. Chad , VanLehn Kurt
Published: November 2005

Traditional methods of evaluating student programs are not always appropriate for assessment of different instructional interventions. They tend to focus on the final product rather than on the
process
that led to it. This paper presents intention-based scoring (IBS), an approach to measuring programming ability that looks at intermediate programs produced over the course of an implementation rather than just the one at the end. The intent is to assess a student's ability to produce algorithmically correct code on the first attempt at achieving each program goal. In other words, the goal is to answer question "How close was the student to being initially correct?" but not to speak to a student's debugging skills or ability to ultimately produce a working program. To produce an IBS, it is necessary to inspect a student's online protocol, which is simply the collection of all programs submitted to a compiler. IBS involves a three-phase process of (1) identification of the subset of all programs in a protocol that represent the initial attempts at achieving programming goals, (2) bug identification, and (3) rubric-based scoring. We conclude with an example application of IBS in the evaluation of a tutoring system for beginning programmers and also show how an IBS can be broken down by the underlying bug categories to reveal more subtle differences.
In-person grading
Authors: East J. Philip , Schafer J. Ben
Published: November 2005

In this paper, we discuss in-person or face-to-face grading: what it is, a rationale for its use, our use of it, and an experiment we conducted to evaluate its use. While no statistically significant differences in instructional outcome effects were found, several interesting affective results were seen. Additionally, a number of research methodological suggestions arose from the study.
Changes in CS students' sttitudes towards CS over time
Authors: Beyer Sylvia , DeKeuster Michelle , Walter Kathleen , Colar Michelle , Holcomb Christina
Published: November 2005

Few women major in Computer Science (CS), which creates a serious bottleneck of women qualified to enter into the CS workforce. To address this bottleneck, this study examines gender issues in CS education. We assessed whether gender differences in CS students' stereotypes of CS and attitudes towards CS classes and the CS program remain stable from one semester to the next. We found that gender differences in CS students are not temporally stable and conclude that one-time assessments of gender differences may lead to erroneous conclusions. We also found that concerns about future work-family conflicts and gender issues in the CS program (e.g., female CS students feeling that they are not being taken as seriously as male CS students) emerged as important concerns for female CS students.0The implications of these findings for increasing the representation of women in CS are discussed.
Diversifying the images of computer science
Authors: Frieze Carol
Published: November 2005

This paper tells the story of a student initiative, driven by a desire to diversify the images that surround the field of computer science and those who work in it.
Climbing onto the shoulders of giants
Authors: Lopez Antonio M. , Schulte Lisa J. , Giguette Marguerite S.
Published: November 2005

The "incredible shrinking pipeline" problem has become the euphemism for the dilemma of declining numbers of women seeking bachelor's degrees in a computing discipline. The problem is well recognized, and many have suggested reasons for it. Unfortunately, much of what has been written is based on anecdotal evidence or inferences made from statistical results from small samples of very specific groups in the computing disciplines. There have been few multi-disciplinary approaches to analyze the problem with even fewer attempts to create a model that might explain it. This paper is the end of a beginning. Having received a National Science Foundation grant to study gender-based differences and ethnic and cultural models in the computing disciplines, the principle investigators document the work that has led to launching a nationwide study of the problem to commence in Fall 2004.
Programming
Authors: Bergin Susan , Reilly Ronan
Published: November 2005

This paper documents a study, carried out in the academic year 2003-2004, on fifteen factors that may influence performance on a first year object-oriented programming module. The factors included prior academic experience, prior computer experience, self-perception of programming performance and comfort level on the module and specific cognitive skills. The study found that a student's perception of their understanding of the module had the strongest correlation with programming performance,
r
=0.76,
p
‹0.01. In addition, Leaving Certificate (LC) mathematics and science scores were shown to have a strong correlation with performance. A regression module, based upon a student's perception of their understanding of the module, gender, LC mathematics score and comfort level was able to account for 79% of the variance in programming performance results.
Tracking an innovation in introductory CS education from a research university to a two-year college
Authors: Tew Allison Elliott , Fowler Charles , Guzdial Mark
Published: November 2005

Innovations in teaching and learning computer science education can easily be overly-specific to a given institution, or type of institution. For example, an innovation may require special hardware, or may make assumptions about the background of the students. This paper tracks one such innovation, a multimedia-focused introductory computing course, as it moved from a research-focused university to a public two-year college. At both institutions, the new course resulted in dramatically improved retention. Students at the two-year college were even more motivated and more positive about computing after the course than students at the research university. The results suggest ways of approaching innovation that is easily adaptable to other institutions.
What can computer science learn from a fine arts approach to teaching?
Authors: Barker Lecia J. , Garvin-Doxas Kathy , Roberts Eric
Published: November 2005

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.
Creating emergent behaviors
Authors: Harlan Robert M. , McClarigan Shelley
Published: November 2005

Most undergraduate robotics courses introduce reactive behaviors, behaviors that are not mediated by world knowledge or a world model. What is missing from these courses, however, is the experience of combining reactive behaviors to create emergent behavior, behavior that is not anticipated by the robotocist but generated by the interaction of behaviors and the environment. We discuss two laboratory exercises that introduce reactive behaviors and combine them to produce emergent behaviors.
Multidisciplinary teamwork in a robotics course
Authors: Weinberg Jerry B. , White William W. , Karacal Cem , Engel George , Hu Ai-Ping
Published: November 2005

Real-world systems are comprised of interdependent components creating integrated systems. These systems are developed by multidisciplinary teams. The goal of this project is the development of a comprehensive undergraduate course in robotics that encompasses various fields that are integral to robotic systems: Computer Science, Electrical and Computer Engineering, and Mechanical Engineering. A main pedagogical goal of the course is to teach group dynamics and the skills necessary for interaction with people in different disciplines in multidisciplinary teams. Descriptions of the course and the hands-on lab assignments are presented along with course assessment.
Emerging areas in computer science education
Authors: Kumar Amruth N. , Shumba Rose K. , Ramamurthy Bina , D'Antonio Lawrence
Published: November 2005

Computer Science is an evolving discipline. It continues to reinvent itself every 5-7 years. In order to keep up, Computer Science educators have had to continually modify the curriculum, either changing existing courses or introducing new ones. It is next to impossible for educators to keep abreast of all the developments in the discipline - learning a new area can place substantial demands on their time and effort.Therefore, this panel is intended as a quick introduction to some of the emerging areas and practices in Computer Science that deserve inclusion in the undergraduate curriculum. The panelists will present four new emerging areas - Grid Computing, Cybersecurity, Bioinformatics, and Robotics in the traditional Artificial Intelligence course. Each panelist will present a typical syllabus, list sample resources, and recount his/her experience developing the course. It is hoped that this panel will help interested faculty adopt successful practices.
Design patterns for parsing
Authors: Nguyen Dung "Zung" , Ricken Mathias , Wong Stephen
Published: November 2005

We provide a systematic transformation of an LL(1) grammar to an object model that consists of

an object structure representing the non-terminal symbols and their corresponding grammar production rules,

a union of classes representing the terminal symbols (tokens).

We present a variant form of the visitor pattern and apply it to the above union of token classes to model a predictive recursive descent parser on the given grammar. Parsing a non-terminal is represented by a visitor to the tokens. For non-terminals that have more than one production rule, the corresponding visitors are chained together according to the chain of responsibility pattern in order to be processed correctly by a valid token. The abstract factory pattern, where each concrete factory corresponds to a non-terminal symbol, is used to manufacture appropriate parsing visitors.Our object-oriented formulation for predictive recursive descent parsing eliminates the traditional construction of the predictive parsing table and yields a parser that is declarative and has minimal conditionals. It not only serves to teach standard techniques in parsing but also as a non-trivial exercise of object modeling for objects-first introductory courses.
Teaching inter-object design patterns to freshmen
Authors: Dewan Prasun
Published: November 2005

The benefits of object-oriented programming apply only to programs consisting of multiple objects. Inter-object design patterns make it, in theory, possible for beginning programmers to create well-understood forms of such programs. However, their descriptions have been targeted at experienced programmers with knowledge, for instance, of the implementation of compilers. We show that it is possible to explain and motivate several of these patterns including the iterator, model-view-controller, model-interactor, observer, façade, composite, and factory patterns by showing them working "in the small" in simple examples. We have effectively used this approach to teach an undergraduate class including several college freshmen and one high-school junior, who were able to exercise the patterns "in the medium.
Teaching design patterns by stealth
Authors: Weiss Stephen
Published: November 2005

Learning design patterns is tough, even for seasoned programmers who have seen lots of programs and hence have a sense for constructs that tend to recur. Teaching design patterns to new programmers is even tougher. As Asher Sterkin states, "Teaching design patterns in isolation is similar to studying a foreign language with only a dictionary." [4]. It is far better to try to teach design patterns using killer examples to help motivate and illustrate each pattern. I propose here something a little more radical: to teach by stealth. With a small number of principles of good program design, and using a running case study that grows in complexity through the semester, we can, through class discussions and exercises, "invent" programming solutions that turn out to be some of the important design patterns. The official names and definitions of the pattern [2, 3] are revealed only after the fact, if at all.
Synthesis and analysis of automatic assessment methods in CS1
Authors: Traynor Des , Gibson J. Paul
Published: November 2005

This paper describes the use of random code generation and mutation as a method for synthesising multiple choice questions which can be used in automated assessment. Whilst using multiple choice questions has proved to be a feasible method of testing if students have suitable knowledge or comprehension of a programming concept, creating suitable multiple choice questions that accurately test the students' knowledge is time intensive.This paper proposes two methods of generating code which can then be used to closely examine the comprehension ability of students. The first method takes as input a suite of template programs, and performs slight mutations on each program and ask students to comprehend the new program. The second method performs traversals on a syntax tree of possible programs, yielding slightly erratic but compilable code, again with behaviour that students can be questioned about. As well as generating code these methods also yield alternative distracting answers to challenge the students. Finally, this paper discusses the gradual introduction of these automatically generated questions as an assessment method and discusses the relative merits of each technique.
Using a pre-assessment exam to construct an effective concept-based genetic program for predicting course success
Authors: Boetticher Gary D. , Ding Wei , Moen Charles , Yue Kwok-Bun
Published: November 2005

There is a limit on the amount of time a faculty member may devote to each student. As a consequence, a faculty member must quickly determine which student needs more attention than others throughout a semester. One of the most demanding courses in the CS curriculum is a data structures course. This course has a tendency for high drop rates at our university. A pre-assessment exam is developed for the data structures class in order to provide feedback to both faculty and students. This exam helps students determine how well prepared they are for the course. In order to determine a student's chance of success in this course, a Genetic Program-based experiment is constructed based upon the pre-assessment exam. The result is a model that produces an average accuracy of 79 percent.
Designing, implementing, and analyzing a placement test for introductory CS courses
Authors: Soh Leen-Kiat , Samal Ashok , Person Suzette , Nugent Gwen , Lang Jeff
Published: November 2005

An introductory CS1 course presents problems for educators and students due to students' diverse background in programming knowledge and exposure. Students who enroll in CS1 also have different expectations and motivations. Prompted by the curricular guidelines for undergraduate programs in computer science released in 2001 by the ACM/IEEE, and driven by a departmental project to reinvent the undergraduate computer science and computer engineering curricula at the University of Nebraska-Lincoln, we are currently implementing a series of changes which will improve our introductory courses. One key component of our project is an online placement examination tied to the cognitive domain that assesses student knowledge and intellectual skills. Our placement test is also integrated into a comprehensive educational research design containing a pre- and post-test framework for assessing student learning. In this paper, we focus on the design and implementation of our placement exam and present an analysis of the data collected to date.