bluuebunny/crossref_metadata_2025 huggingface dataset:
A global progressive register allocator
Authors: Koes David Ryan , Goldstein Seth Copen
Published: July 2006

This paper describes a global progressive register allocator, a register allocator that uses an expressive model of the register allocation problem to quickly find a good allocation and then progressively find better allocations until a provably optimal solution is found or a preset time limit is reached. The key contributions of this paper are an expressive model of global register allocation based on multicommodity network flows that explicitly represents spill code optimization, register preferences, copy insertion, and constant rematerialization; two fast, but effective, heuristic allocators based on this model; and a more elaborate progressive allocator that uses Lagrangian relaxation to compute the optimality of its allocations. Our progressive allocator demonstrates code size improvements as large as 16.75% compared to a traditional graph allocator. On average, we observe an initial improvement of 3.47%, which increases progressively to 6.84% as more time is permitted for compilation.
Profile-based global live-range splitting
Authors: Nakaike Takuya , Inagaki Tatsushi , Komatsu Hideaki , Nakatani Toshio
Published: July 2006

Live-range splitting is a technique to split the live range of a given variable into multiple subranges, each of which can be assigned to a different register or spilled out to memory in order to improve results of coloring register allocation. Previous techniques, such as aggressive live-range splitting, tend to produce extra spill code in the frequently executed (called hot) regions of the code, since they don't distinguish hot regions from others. We propose a new live-range splitting algorithm, which can reduce the amount of spill code in hot regions by coalescing the live ranges based on profile information after splitting the live ranges at every join and fork point in the control-flow graph. Our experimental results have shown that our new algorithm improved the performance of SPECjvm98 by up to 33% over aggressive live-range splitting and 7% over the base coloring algorithm without any live-range splitting.
Accurate, efficient, and adaptive calling context profiling
Authors: Zhuang Xiaotong , Serrano Mauricio J. , Cain Harold W. , Choi Jong-Deok
Published: July 2006

Calling context profiles are used in many inter-procedural code optimizations and in overall program understanding. Unfortunately, the collection of profile information is highly intrusive due to the high frequency of method calls in most applications. Previously proposed calling-context profiling mechanisms consequently suffer from either low accuracy, high overhead, or both. We have developed a new approach for building the calling context tree at runtime, called
adaptive bursting
. By selectively inhibiting redundant profiling, this approach dramatically reduces overhead while preserving profile accuracy. We first demonstrate the drawbacks of previously proposed calling context profiling mechanisms. We show that a low-overhead solution using sampled stack-walking alone is less than 50% accurate, based on degree of overlap with a complete calling-context tree. We also show that a static bursting approach collects a highly accurate profile, but causes an unacceptable application slowdown. Our adaptive solution achieves 85% degree of overlap and provides an 88% hot-edge coverage when using a 0.1 hot-edge threshold, while dramatically reducing overhead compared to the static bursting approach.
Continuations and transducer composition
Authors: Shivers Olin , Might Matthew
Published: July 2006

On-line transducers are an important class of computational agent; we construct and compose together many software systems using them, such as stream processors, layered network protocols, DSP networks and graphics pipelines. We show an interesting use of continuations, that, when taken in a CPS setting, exposes the control flow of these systems. This enables a CPS-based compiler to optimise systems composed of these transducers, using only standard, known analyses and optimisations. Critically, the analysis permits optimisation across the composition of these transducers, allowing efficient construction of systems in a hierarchical way.
Free-Me
Authors: Guyer Samuel Z. , McKinley Kathryn S. , Frampton Daniel
Published: July 2006

Garbage collection has proven benefits, including fewer memory related errors and reduced programmer effort. Garbage collection, however, trades space for time. It reclaims memory only when it is invoked: invoking it more frequently reclaims memory quickly, but incurs a significant cost; invoking it less frequently fills memory with dead objects. In contrast, explicit memory management provides prompt low cost reclamation, but at the expense of programmer effort.This work comes closer to the best of both worlds by adding novel compiler and runtime support for compiler inserted frees to a garbage-collected system. The compiler's free-me analysis identifies when objects become unreachable and inserts calls to free. It combines a lightweight pointer analysis with liveness information that detects when short-lived objects die. Our approach differs from stack and region allocation in two crucial ways. First, it frees objects incrementally exactly when they become unreachable, instead of based on program scope. Second, our system does not require allocation-site lifetime homogeneity, and thus frees objects on some paths and not on others. It also handles common patterns: it can free objects in loops and objects created by factory methods.We evaluate free() variations for free-list and bump-pointer allocators. Explicit freeing improves performance by promptly reclaiming objects and reducing collection load. Compared to marksweep alone, free-me cuts total time by 22% on average, collector time by 50% to 70%, and allows programs to run in 17% less memory. This combination retains the software engineering benefits of garbage collection while increasing space efficiency and improving performance, and thus is especially appealing for real-time and space constrained systems.
Combining abstract interpreters
Authors: Gulwani Sumit , Tiwari Ashish
Published: July 2006

We present a methodology for automatically combining abstract interpreters over given lattices to construct an abstract interpreter for the combination of those lattices. This lends modularity to the process of design and implementation of abstract interpreters.We define the notion of logical product of lattices. This kind of combination is more precise than the reduced product combination. We give algorithms to obtain the join operator and the existential quantification operator for the combined lattice from the corresponding operators of the individual lattices. We also give a bound on the number of steps required to reach a fixed point across loops during analysis over the combined lattice in terms of the corresponding bounds for the individual lattices. We prove that our combination methodology yields the most precise abstract interpretation operators over the logical product of lattices when the individual lattices are over theories that are convex, stably infinite, and disjoint.We also present an interesting application of logical product wherein some lattices can be reduced to combination of other (unrelated) lattices with known abstract interpreters.
Termination proofs for systems code
Authors: Cook Byron , Podelski Andreas , Rybalchenko Andrey
Published: July 2006

Program termination is central to the process of ensuring that systems code can always react. We describe a new program termination prover that performs a path-sensitive and context-sensitive program analysis and provides capacity for large program fragments (i.e. more than 20,000 lines of code) together with support for programming language features such as arbitrarily nested loops, pointers, function-pointers, side-effects, etc.We also present experimental results on device driver dispatch routines from theWindows operating system. The most distinguishing aspect of our tool is how it shifts the balance between the two tasks of constructing and respectively checking the termination argument. Checking becomes the hard step. In this paper we show how we solve the corresponding challenge of checking with binary reachability analysis.
MxYacc
Authors: Kintali Shiva Prasad
Published: July 2006

In the recent years mixed language programming has received much attention. In this paper we introduce MxYacc, a parser generator for mixed languages. We discuss the concepts of mixed language parsing with an example. We present a simple and elegant parsing algorithm to parse mixed grammars.
The shinning face of plagiarism
Authors: Gotterbarn Don
Published: July 2006

In 2005 October, ACM issued a new policy and procedures on plagiarism. At SIGCSE 2006, a Birds-of-a-feather (Bof) session had taken place on plagiarism and self-plagiarism. Prior to the Bof, it was amazing to listen to the professorial ramblings about plagiarism such as "I had a student who plagiarized from the course textbook", "I had a student who plagiarized from a paper I wrote." Many academics treat a discussion of plagiarism as the academic equivalent of "What do you think about the weather?" They are both effective discussion starters about something that has an impact, but something they can't really do anything about. I was struck by how fast we academics opted for simplistic and erroneous reasoning about this subject. There were numerous points of agreement. Some include the following: (1) plagiarism is wrong; (2) it is on the increase (evils of the internet and paper mills); (3) it is (sometimes) hard to detect; (4) it is a problem getting "others" to do anything about it; (5) I would rather not have to address instances of plagiarism. We also have avoidance techniques as no longer requiring term papers or having all work done in class.
On the necessity of removing "cruelty" from the teaching of computing
Authors: Clear Tony
Published: July 2006

In his famous article [1] Edsger Dijkstra reflected upon how cruel it would be truly to teach computer science. For some reason the CS community over the years have taken the sadistic element of his entreaties to heart. Why is this so? Does it have intuitive appeal to those CS educators who believe in the "hard man" school of computer science and the "real programmers don't eat quiche" model of education?
Graduate curriculum now available
Authors: Gorgone John T.
Published: July 2006

The Joint ACM-AIS (Association for Information Systems) Graduate Curriculum Task Force presented its final report for approval to the ACM Education Board and AIS Council in December 2005. The approved report, "MSIS 2006: Model Curriculum and Guidelines for Graduate Degree Programs in Information Systems," is published as the first article in Communications of AIS in January 2006 [1] and is reprinted in this issue of inroads for ACM SIGCSE members. This is the first time SIGCSE published an information systems model curriculum report.
Call me Ishmael
Authors: Lister Raymond
Published: July 2006

It was the best of times, it was the worst of times, it was the age of wisdom, it was the age of foolishness, it was the epoch of belief, it was the epoch of incredulity, it was the season of Light, it was the season of Darkness, it was the spring of hope, it was the winter of despair, we had everything before us, we had nothing before us ...[2].
Thoughts about lecturing
Authors: Walker Henry M.
Published: July 2006

Lectures have a negative image these days. Yet many conference sessions follow a lecture format, and anecdotal evidence suggests that may courses utilize lectures extensively. This column seeks to encourage discussions of pedagogy by identifying advantages and disadvantages of lecturing and presenting variations of the lecture format that address some of its criticisms. Please contact the author with your feedback and arguments in rebuttal!
Information technology
Authors: Campbell Robert D.
Published: July 2006

Many readers will be familiar with the associate-degree curriculum guidelines published in 2000 by the ACM Two-Year College Education Committee, under the grouping "Programs to Support Computing in a Networked Environment" and providing "performance objectives to encompass the technical skills and knowledge required for associate-degree programs in each of three areas: User Support Services, Networking Services, and Internet/Web Services." Today many would instantly identify these tracks as linchpins in the realm now commonly referred to as "I.T." -- the discipline of Information Technology. Just a short five years ago, that phrase -- IT -- wasn't nearly as prevalent as today and certainly wasn't perceived as a defined discipline. However, the last few years in particular have seen much more attention paid to bringing a sense of structure among and distinction between many areas of concentration within computing.
Graph cycles
Authors: Ginat David
Published: July 2006

Most of the previous challenges in this column were based on very little CS knowledge, but required problem-solving competence. This is also the case with the "Queens on a chessboard" challenge solved in the second part of this issue. The first part of the issue presents a graph-based challenge and requires familiarity with graph algorithms. Yet, the main theme in its solution is problem-solving through suitable insight.
Active and cooperative learning
Authors: McConnell Jeffrey J.
Published: July 2006

Active and cooperative learning can energize the instructor, students, and the classroom. This third article in a series on active and cooperative learning discusses the characteristics that make groups effective as well as techniques for the formation and evaluation of groups. Icebreaking exercises that can demonstrate the value of cooperation and teamwork are also discussed.
Using O(
n
) ProxmapSort and O(1) ProxmapSearch to motivate CS2 students, Part II
Authors: Standish Thomas A. , Jacobson Norman
Published: July 2006

Presenting "cool" algorithms to CS2 students helps convince them that the study of data structures and algorithms is worthwhile. An algorithm is perceived as cool if it is easy to understand, very fast on large data sets, uses memory judiciously and has a straightforward, short proof --- or at least a convincing proof sketch --- using accessible mathematics. To illustrate, we discuss two related and relatively unknown algorithms: ProxmapSort, previously discussed in Part I of this paper, and ProxmapSearch, discussed here.
Abstraction ability as an indicator of success for learning object-oriented programming?
Authors: Bennedsen Jens , Caspersen Michael E.
Published: July 2006

Computer science educators generally agree that abstract thinking is a crucial component for learning computer science in general and programming in particular. We report on a study to confirm the hypothesis that general abstraction ability has a positive impact on programming ability. Abstraction ability is operationalized as stages of cognitive development (for which validated tests exist). Programming ability is operationalized as grade in the final assessment of a model-based objects-first CS1. The validity of the operationalizations is discussed. Surprisingly, our study shows that there is no correlation between stage of cognitive development (abstraction ability) and final grade in CS1 (programming ability). Possible explanations are identified.
Most difficult topics in CS1
Authors: Dale Nell B.
Published: July 2006

In the spring of 2004, a survey was posted on the Internet concerning the content of the first course in computing (CS1) and email messages were sent to approximately 3,500 instructors asking them to participate in the survey. Three hundred fifty one faculty members responded. The responses to one survey item form the basis of this paper: "In your experience, what is the most difficult topic to teach in CS1?" This paper describes the demographics of the respondents and present a content analysis of the responses to this item. The analysis indicates that the difficult topics fall into four categories: problem solving and design, general programming topics, object-oriented constructs, and student maturity (or lack thereof). The paper presents the specific topics within each category along with sample comments.
Teaching the undergraduate CS Information Security Course
Authors: Jensen Bradley K. , Cline Melinda , Guynes Carl S.
Published: July 2006

This paper presents a lab based approach to teaching the undergraduate CS Information Security course. Given the magnitude of real and potential loses associated with security breaches, employers increasingly expect graduates of CS programs to have an understanding of information security concepts. The infrastructure requirements for the course includes setting up a secure laboratory environment to accommodate the development of viruses and worms. The labs and lectures are intended to instruct students in the inspection and protection of information assets, and detection of and reaction to threats to information assets.
Data Engineering education with real-world projects
Authors: Grisham Paul S. , Krasner Herb , Perry Dewayne E.
Published: July 2006

This paper presents an experience report on teaching Data Engineering using a real-world project domain. Our course introduces databases within the context of Systems and Information Engineering, supplementing relational database theory with requirements engineering, design, and analysis. The primary deliverable of the course was a semester-long project to implement an information system in a real-world application domain, interacting with an external customer with uncertain requirements. We believe that real-world projects motivate students to apply good Software Engineering principles in the classroom and encourage those principles to be adopted into industrial practice.
Ethics and usability testing in computer science education
Authors: Hepting Daryl H.
Published: July 2006

Ethics and usability testing are increasingly important parts of a modern computer science education, given the changing profile of computer science employment and the increased focus on privacy. This paper introduces the concept of a participant pool, a means to recruit participants for research, which can be a valuable tool in teaching usability testing and ethics. It has a role in an overall emphasis on software quality and the importance of research. It can also help to increase the profile of this research and the desirability of a Computer Science degree to the larger population.
When to use an interface?
Authors: Hu Chenglie
Published: July 2006

Interface, as an object-oriented programming construct, has been one of the most difficult concepts for students to understand and apply properly. Textbooks often only address the shallow side of usefulness of interfaces, and some may even mislead as to when and how an interface should be used. This article argues that the interfaces can only be effectively taught in a context of program design. The material is appropriate to be included in a second course on programming.
The development of a Human Computer Interaction course at a senior synthesis course
Authors: Shumba Rose
Published: July 2006

HCI has been taught in universities and colleges as an elective for computer science majors. An inter-disciplinary synthesis course was developed in the Department of Computer Science at Indiana University of Pennsylvania. The course was first offered in the fall of 2004. Objectives, content, and pedagogy of this course are outlined. The paper is concluded by citing challenges and issues regarding the development and launching of such a course.
Honeynet learning
Authors: Talabis Ryan
Published: July 2006

Learning IT Security in a classroom setting has often been a frustrating endeavor for both instructors and students alike. From our experience, traditional instructional methods like direct instruction and lectures though widely used and effective in most other areas have significant shortcomings when applied in IT security learning. In this paper, we shall propose an alternative approach to learning and teaching IT Security called Honeynet Learning which uses the Honeynet as a tool and resource to augment both student and instructor learning. This approach will incorporate the learning concepts that we feel is important to promote learning in IT Security namely discovery, feedback and "real world" experience. Aside from this, we shall be illustrating an actual methodology built upon these concepts that can be applied in the typical IT Security course.
MSIS 2006
Authors: Gorgone John T. , Gray Paul , Stohr Edward A. , Valacich Joseph S. , Wigand Rolf T.
Published: July 2006

This article presents the MSIS 2006 Model Curriculum and Guidelines for Graduate Degree Programs in Information Systems. As with MSIS 2000 and its predecessors, the objective is to create a model for schools designing or revising an MS curriculum in Information Systems. The curriculum was designed by a joint committee of the Association for Information Systems and the Association for Computing Machinery.MSIS2006 is a major update of MSIS 2000. Features include increasing the number of required courses from 10 to 12 while revising prerequisites, introducing new courses and revising existing courses to modernize the curriculum, and alternatives for phased upgrading from MSIS2000 to MSIS 2006.As with the previous curriculum, it is the product of detailed consultation with the IS community. The curriculum received the endorsement of 8 major IS professional groups.
Jovial information bulletin no. 1
Authors: Oppenheim David K.
Published: July 2006

This issue of the JOVIAL INFORMATION BULLETIN (JIB) does not contain very much information nor is it very Jovial. It is an attempt to arouse interest and/or controversy on the subject of JOVIAL so as to obtain the maximum participation of individuals interested in this subject area. I found it rather encouraging that so many of you requested copies of the JIB and I hope that many of you will support it by contributing to the information content of this bulletin.
Low complexity, stable scheduling algorithms for networks of input queued switches with no or very low speed-up
Authors: Bauer Claus
Published: July 2006

The delay and throughput characteristics of a packet switch depend mainly on the queueing scheme and the scheduling algorithm deployed at the switch. Early research on scheduling algorithms has mainly focused on maximum weight matching scheduling algorithms. It is known that maximum weight matching algorithms guarantee the stability of input-queued switches, but are impractical due to their high computational complexity. Later research showed that the less complex maximal matching algorithms can stabilize input-queued switches when they are deployed with a speed-up of two. For practical purposes, neither a high computational complexity nor a speed-up of two is desirable.In this paper, we investigate the application of matching algorithms that approximate maximum weight matching algorithms to scheduling problems. We show that while having a low computational complexity, they guarantee the stability of input queued switches when they are deployed with a moderate speed-up.In particular, we show that the
improve_matching
algorithm stabilizes input-queued switches when it is deployed with a speed-up of 32+ε.In a second step, we further improve on these results by proposing a class of maximal weight matching algorithms that stabilize an input-queued switch without any speed-up.Whereas initial research has only focused on scheduling algorithms that guarantee the stability of a single switch, recent work has shown how scheduling algorithms for single switches can be modified in order to design
distributed
scheduling algorithms that stabilize networks of input-queued switches. Using those results, we show that the switching algorithms proposed in this paper do not only stabilize a single switch, but also networks of input-queued switches.
XCP for shared-access multi-rate media
Authors: Abrantes Filipe , Ricardo Manuel
Published: July 2006

The eXplicit Control Protocol (XCP) was developed to overcome some of the limitations of TCP, such as low utilization in high bandwidth delay product networks, unstable throughput, large queue build-up, and limited fairness. XCP, however, requires that each queue controller in a path knows the exact capacity of its link. In shared access media, e.g. IEEE 802.11, knowing the actual capacity of the channel is a difficult task.In this paper we propose modifications to the XCP algorithm that enable the utilization of XCP even when the capacity of a link is unknown. These modifications are validated through simulation.We also present the results of a comparison between the performance of the modified XCP and TCP, where XCP controlled flows result more stable, fairness increases, and the network delay becomes lower. In addition, as the bandwidth delay product increases, XCP is able to maintain near-maximum utilization while TCP decreases utilization.
Some remarks to recent papers on traffic analysis
Authors: Ricciato Fabio
Published: July 2006

In this informal contribution we raise a few remarks and requests for clarification about some recent papers in the field of traffic analysis. These examples are illustrative of the kind of issues and open points that are encountered when reading, applying and working with published papers. The readers and followers of each published paper - especially of the best ones - form naturally a small community of interest. In most cases remarks and open points about the paper are of interest for the them all. Based on these considerations we raise the following proposal to the research community: let each conference and/or journal editor maintain an open public wiki-like commenting platform for publishing comments and rebuttals after the paper publication.
Knowledge building using visualizations
Authors: Shanmugasundaram Vijayakumar , Juell Paul , Hill Curt
Published: July 2006

In this paper, we describe our efforts in knowledge building by creating visualizations. Our efforts include problem-based learning. We have identified a problem that the students have in learning OOP. To solve that problem we engage our students in the classroom using existing visualizations created by students of the earlier class, then we have the currents students improve the existing visualizations, or create new visualizations for future use in the same class. We describe the process of building knowledge, problem based learning, the details of the visualizations, our observations and the merits of this approach.
Identifying novice difficulties in object oriented design
Authors: Thomasson Benjy , Ratcliffe Mark , Thomas Lynda
Published: July 2006

We report on a study of novice programmers' object oriented class designs. These designs were analysed to discover what faults they displayed. The two most common faults related to non-referenced classes (inability to integrate them into the solution), and problems with attributes and class cohesion. The paper ends with some implication for teaching that may be indicated by the empirical results.
Creating a realistic context for team projects in HCI
Authors: Koppelman Herman , van Dijk Betsy
Published: July 2006

Team projects are nowadays common practice in HCI education. This paper focuses on the role of clients and users in team projects in introductory HCI courses. In order to provide projects with a realistic context we invite people from industry to serve as clients for the student teams. Some of them have a professional interest in participating in our course and define a project themselves. Another way we make projects realistic is to have teams evaluate their designs with real users.We describe how we incorporate the role of clients and users in our courses and describe our experiences. One of the results of our evaluations is that most students find it very interesting and stimulating to work with a client on a 'real' project from industry.
Some experiences with the "contributing student approach"
Authors: Hamer John
Published: July 2006

We report on our recent experiences with Collis' "contributing student approach" in two computing courses. Departing radically from traditional lecture-based teaching, the approach involves students preparing learning resources to share with other members of the class. Contributions are peer assessed, lectures become class meetings, and the course web page is replaced by a shared "wiki" collaboration tool to which all students can contribute. Consequently, students are inescapably placed at the centre of all learning activities.The approach may form a model for higher education courses that aspire to equip students with the skills necessary to function effectively in the knowledge era.
"Numeri e Macchine"
Authors: Giangrandi Paolo , Mirolo Claudio
Published: July 2006

Considering a historical perspective may be not only, in Knuth's witty words [?], "one of the ways to help make computer science respectable," but also a valuable tool for education purposes. After outlining the main reasons for teaching the history of computing, in this paper we present a virtual museum on the subject, addressed to Italian students, developed in a cooperative project engaging both university and school teachers. It is meant first of all as an opportunity to experiment a learning environment suitable to explore the cultural roots of computer science, especially in the school ages. We are now planning classroom experiences to assess this tool, as well as proposing it in a curricular course on the history of computer science for training secondary school teachers.
Using patterns in the automatic marking of ER-diagrams
Authors: Thomas Pete , Waugh Kevin , Smith Neil
Published: July 2006

This paper illustrates how the notion of pattern can be used in the automatic analysis and synthesis of diagrams, applied particularly to the automatic marking of ER-diagrams. The paper describes how diagram patterns fit into a general framework for diagram interpretation and provides examples of how patterns can be exploited in other fields. Diagram patterns are defined and specified within the area of ER-diagrams. The paper also shows how patterns are being exploited in a revision tool for understanding ER-diagrams.
Not seeing the forest for the trees
Authors: Lister Raymond , Simon Beth , Thompson Errol , Whalley Jacqueline L. , Prasad Christine
Published: July 2006

This paper reports on the authors use of the SOLO taxonomy to describe differences in the way students and educators solve small code reading exercises. SOLO is a general educational taxonomy, and has not previously been applied to the study of how novice programmers manifest their understanding of code. Data was collected in the form of written and think-aloud responses from students (novices) and educators (experts), using exam questions. During analysis, the responses were mapped to the different levels of the SOLO taxonomy. From think-aloud responses, the authors found that educators tended to manifest a SOLO relational response on small reading problems, whereas students tended to manifest a multistructural response. These results are consistent with the literature on the psychology of programming, but the work in this paper extends on these findings by analyzing the design of exam questions.
Mental models of recursion revisited
Authors: Sanders Ian , Galpin Vashti , Götschi Tina
Published: July 2006

Students struggle to understand recursion and we need to find good ways to teach the concept. We believe that an understanding of the mental models of recursion that students develop will assist us in teaching them more effectively. In 2003 we reported on a study of the mental models our students developed. This paper discusses some changes that we made to our teaching in 2003 after that study. An analysis of the students' mental models in 2003, 2004 and 2005 shows that more students are developing the copies model of recursion which is always a viable model.
Implementing the jigsaw model in CS1 closed labs
Authors: Soh Leen-Kiat
Published: July 2006

We apply the Jigsaw cooperative learning model to our CS1 closed labs. The Jigsaw cooperative learning model assigns students into main groups in which each group member is responsible for a unique subtask, gathers all students responsible for the same subtask into a same focus group for focused exploration, returns all students to their original main groups for reporting and reshaping, and then each group integrates the solutions for the subtasks from its members. For our study, we used the Jigsaw model in three CS1 closed labs. For each, there were three sections: (1) students worked individually, (2) students worked in groups using Jigsaw, and (3) students worked in groups using a computer-supported Jigsaw environment. The post-test scores of the three sections are compared to study the impact of Jigsaw and the feasibility of using a computer-supported Jigsaw design. Further, we investigate how the three lab topics (debugging, unified modeling language (UML), and recursion) affected impact of Jigsaw model on student performance.
Agents help students in ProgrammingLand
Authors: Hill Curt , Shanmugasundaram Vijayakumar , Miteva Martina
Published: July 2006

ProgrammingLand is an online system for delivering content to introductory computer science courses as a substitute for a conventional textbook. Because the system has a large number of exhibits, sometimes students were not finding the material needed. The system was recently enhanced with several agents to direct students to pertinent locations. This paper discusses the capabilities and techniques of these agents.Preliminary data from the use of ProgrammingLand in two different introductory programming classes is discussed. This data suggests that the agents are successful in aiding students, especially those who are struggling.
Problems in the initial teaching of programming using Java
Authors: Utting Ian
Published: July 2006

In their analysis of the use of Java as a first teaching language, the ACM Java Task Force (JTF) identified a number of issues with the Java language and APIs which caused significant pedagogic problems. The focus of their work, and hence of their characterisation of the issues, was the Java "Standard Edition" (J2SE).This paper contends that the version of Java designed for programming small devices (Java 2 Micro Edition, J2ME) does not suffer from these problems identified by the JTF to the extent that the (more familiar) J2SE does, and suggests a number of other reasons why J2ME represents a good choice as a first programming language.
Learner interaction with algorithm visualizations
Authors: Lauer Tobias
Published: July 2006

Studies on the pedagogical value of algorithm visualizations have suggested that the level of learner engagement plays a crucial role for the learning outcome. We report on an evaluation carried out within a common research framework in order to compare the effects of three different levels of student interaction with visualizations, ranging from simply viewing animations to constructing visualizations from smaller algorithmic building blocks. The hypothesis that an increasing level of engagement leads to significantly better learning was not substantiated by the test results, which might be due to the influence of the accompanying lectures on the results. Suggestions for the design of future evaluations are given to better control such effects.
A tool for helping teach a programming method
Authors: Dony Isabelle , Le Charlier Baudouin
Published: July 2006

We present and discuss a tool that checks the correctness of simple programs constructed according to the structured programming method. The tool is intended to provide interesting feedback to students learning the programming method: it detects programming and/or reasoning errors and it provides typical counter-examples. We argue that our system is better adapted to our pedagogical context than other verification tools and we report on preliminary experiments with the tool in a third year programming course.
RoboCode & problem-based learning
Authors: O'Kelly Jackie , Gibson J. Paul
Published: July 2006

The fundamental principle behind Problem-based Learning (PBL) is that the problem is the driving force that initiates the learning. In order to function effectively in a PBL environment a
good
set of problems is required. Solving problems is a vital element within Computer Science and yet the discipline has been slow to embrace PBL as an approach to learning. The net result means that there are few
good
PBL problems available to assist new practitioners with implementation. PBL emphasizes a real-world approach to learning, and we present a RoboCode Competition as a candidate for a
good
, realistic PBL problem within the computer science discipline. We list and identify the criteria that categorise a PBL problem as
good
and validate the RoboCode domain against these criteria. We argue that the concept of
freedom
--- in different guises --- plays a key role in making PBL a
good
mechanism for teaching programming, and for making RoboCode a
good
domain for PBL.
Unicast vs. multicast over wireless
Authors: Bristow Patrick
Published: July 2006

As the state of learning technology advances, there is a pressing need to understand how we can best utilize and compensate for the bandwidth available to us over wireless networks. TCP traffic is ill-designed for an environment that subjects it to random packet loss, and because of which, it is plagued by congestion issues, unfairness, and insufficient bandwidth. While IP multicast traffic is not without its own burdens, such as lower overall throughput and "bursty" packet loss, we have found that it is often an appropriate and underutilized medium for data distribution in classroom-centric applications. We present the pros and cons of both unicast and multicast transmissions over wireless, follow with anecdotal evidence on what has worked in the past, and conclude with a discussion of the strategy we have taken and our future directions. This paper is intended to function as a means for distilling many years of work in understanding the properties of 802.11 wireless networks in the communications field, and transferring that knowledge to the field of computational technology for advancing CS education.
Training students to administer and defend computer networks and systems
Authors: Tjaden Brian , Tjaden Brett
Published: July 2006

The security of computer systems, networks, and the Internet is becoming more critical by the day. Attacks on corporations, banks, schools, and government and international agencies are becoming more and more frequent, and the amount of damage that results is also rising rapidly. Despite these facts, few educational institutions offer courses that teach students the practical knowledge and skills needed to administer and defend computer networks and systems. We describe a semester-long Secure Operations course, which offers a unique laboratory experience that makes each student fully responsible for the configuration, administration, defense, and secure operation of his/her own Internet-based server on a 24/7 basis for the entire semester.
Encouraging the development of undergraduate researchers in computer vision
Authors: Olson Clark F.
Published: July 2006

In a small computer science department without a graduate program, it is sometimes difficult to attract research students. This is particularly true for research in computer vision, since it is built upon a substantial body of knowledge, including considerable mathematics, that most undergraduates are not familiar with. My approach to encouraging students to take part in this research starts by introducing computation with images in early programming classes. Students become comfortable working with images in a structured framework, where they are not exposed to excessive underlying details. The students that become interested in working with images can take my computer vision class. This course is taught in a way that students can understand the material without having a deep background in mathematics. Students that are successful in this class are ready for (and encouraged to) work on undergraduate research projects and perform internships in computer vision research. While my strategy focuses on computer vision, similar approaches could be used for other research areas.
Using student performance predictions in a computer science curriculum
Authors: Chamillard A. T.
Published: July 2006

Professors often develop anecdotal guidelines about how each student's past performance in their academic major relates to their performance in later courses. While these guidelines can be useful, a more formal statistical analysis of these relationships can provide valuable insight into predicted student performance, which can help professors guide their students to focus on potential areas of difficulty. In addition, such analyses can identify which courses are key indicators of later performance in the major. This additional insight into the relationships between the courses in the curriculum can help professors implement curriculum changes and measure the effects of those changes. In this paper, we present the results of such an analysis for computer science majors at the U.S. Air Force Academy.
ASSISTing CS1 students to learn
Authors: Hughes Janet , Peiris D. Ramanee
Published: July 2006

Identifying and managing students who experience difficulty with learning to program is a challenge for CS educators. In an attempt to answer the familiar question "What makes for success in CS1?" we have investigated student approaches to learning using the ASSIST measure of learning approach. This measure considers three dimensions related to studying - deep (related to meaning), surface (reproducing) and strategic (achieving).Two cohorts of CS1 students completed an online ASSIST questionnaire midway through their first semester. Their three ASSIST scores were analysed together with their CS1 performance. The strongest relationships were a significant, negative correlation between a surface approach to learning and CS1 performance and a significant positive correlation between a strategic approach to learning and CS1 performance. Participants were classified via a cluster analysis according to the extent to which they showed deep, strategic, and surface learning profiles. Members of the cluster favouring a surface approach had the poorest performances, whereas members of the cluster favouring strategic or deep approaches rather than a surface approach had the best performances.
Promoting women in science and technology
Authors: Mano Meirav , Haberman Bruria , Rosenthal Tammy
Published: July 2006

This poster presents our experience in implementing a project for promoting women in science and technology. The low number of women who opt for academic studies in hi-tech areas, and who eventually choose a profession in the field, is a common phenomenon. This phenomenon has been observed in many institutes which offer scientific and engineering study-programs. Table 1 presents the percentage of women in the study programs offered by Holon Institute of Technology (HIT) in 2005.
AtoCC
Authors: Hielscher Michael , Wagenknecht Christian
Published: July 2006

The learning environment AtoCC is presented to be of use in teaching abstract automata, formal languages, and some of its applications in compiler construction. From a teacher's perspective AtoCC aims to address a broad range of different learning activities forcing the students to actively interact with the subjects being taught.
Is there such a thing as too much support?
Authors: Sudol Leigh Ann , Bambino Kathryn
Published: July 2006

Over the past decade, support groups and organizations have become increasingly commonplace in universities and schools. The poster will explore how these groups can unintentionally serve as deterrents for girls interested in pursuing CS.
Computing curricula 2005
Authors: Impagliazzo John
Published: July 2006

This poster describes a progress to conclusion of the
Computing Curricula 2005
(CC2005) report. It demonstrates the status of this work and highlights its salient features. These features include the scope of the computing areas of computer engineering, computer science, information systems, information technology, and software engineering. The poster illustrates the commonalities and differences of these areas and shows some of the outcome expectancies of the graduates from these programs. It also demonstrates a new addition - a "guide" - intended for distribution to high schools throughout the United States and elsewhere. Participants of the poster session would have the opportunity to comment on this guide before it goes public.
Teaching AI through machine learning projects
Authors: Russell Ingrid , Markov Zdravko , Neller Todd
Published: July 2006

An introductory Artificial Intelligence (AI) course provides students with basic knowledge of the theory and practice of AI as a discipline concerned with the methodology and technology for solving problems that are difficult to solve by other means. It is generally recognized that an introductory Artificial Intelligence course is challenging to teach. This is, in part, due to the diverse and seemingly disconnected core AI topics that are typically covered. Recently, work has been done to address the diversity of topics covered in the course and to create a theme-based approach. Russell and Norvig present an agent-centered approach [9]. Others have been working to integrate Robotics into the AI course [1, 2, 3].We present work on a project funded by the National Science Foundation with a goal of unifying the artificial intelligence course around the theme of machine learning. This involves the development and testing of an adaptable framework for the presentation of core AI topics that emphasizes the relationship between AI and computer science. Machine learning is inherently connected with the AI core topics and provides methodology and technology to enhance real-world applications within many of these topics. Machine learning also provides a bridge between AI technology and modern software engineering. In his article, Mitchell discusses the increasingly important role that machine learning plays in the software world and identifies three important areas: data mining, difficult-to-program applications, and customized software applications [6].We have developed a suite of adaptable, hands-on laboratory projects that can be closely integrated into the introductory AI course. Each project involves the design and implementation of a learning system which will enhance a particular commonly-deployed application. The goal is to enhance the student learning experience in the introductory artificial intelligence course by (1) introducing machine learning elements into the AI course, (2) implementing a set of unifying machine learning laboratory projects to tie together the core AI topics, and (3) developing, applying, and testing an adaptable framework for the presentation of core AI topics which emphasizes the important relationship between AI and computer science in general, and software development in particular. Details on this project as well as samples of course materials developed are published in [4, 5, 7, 8] and are available at the project website at http://uhaweb.hartford.edu/compsci/ccli.We present an overview of our work along with a detailed presentation of one of these projects and how it meets our goals.The project involves the development of a learning system for web document classification. Students investigate the process of classifying hypertext documents, called tagging, and apply machine learning techniques and data mining tools for automatic tagging. Our experiences using the projects are also presented.
Finite automata models for CS problem with binary semaphore
Authors: Schreyer Boguslaw , Wawrzynski Wojciech
Published: July 2006

A non-deterministic finite automata (NFA) application to a critical section (CS) problem modeling is investigated. A traditional approach to an analysis and design includes the C- like pseudo codes. This is also an educational method popular in the vast majority of texts. However, a finite automata approach offers simplicity and visualization of synchronization mechanisms.