bluuebunny/crossref_metadata_2025 huggingface dataset:
Inter-class synergy by design
Authors: Daigle Roy J. , Niccolai Marino J.
Published: July 2004

Most often curricula are defined in university catalogs according to course prerequisite structures. Formal linkages between individual courses are typically first-order relationships based on prerequisite knowledge or discipline maturity. This paper describes a second-order, collaborative relationship that was established between two computer science courses that has greatly benefitted the students of both classes and has added another dimension to a combined computer and information sciences curricula.
Women in introductory computer science
Authors: Brown Judy , Andreae Peter , Biddle Robert , Tempero Ewan
Published: July 2004

This paper documents efforts that the department has made to support women students between 1991 and the 1996. Our major goal has been to reduce the high withdrawal rate of women students in our entry level course in computer science. We describe the approaches that have been taken to address this concern, and present the data which has been collected to track the results of our efforts. Our data suggests that providing a gender neutral content is not enough to ensure that men and women will retain similarly. In this paper we suggest policies which we feel may be beneficial in achieving similar male and female retention rates.
Integrating the practical use of a database product into a theoretical curriculum
Authors: Urban Susan D. , Dietrich Suzanne W.
Published: July 2004

Integrating the practical use of a database product into the theoretical curriculum of a database management course is a challenge. The approach described minimizes the amount of class time that is allocated to teaching students the use of a database product, while providing guidance to the students in the use of the tool. Introduction of the database product is accomplished through cooperative learning, where students help each other learn the intricacies of the system. To facilitate this process, the students are provided with a complete database implementation example. Using this example, students gradually advance from a tutorial exercise, to a step-by-step extension of the example, and finally to more difficult extensions. These self-paced assignments provide a solid foundation for the students' knowledge in the implementation of their own cooperative group project.
Science and engineering case studies in introductory computing courses for non-majors
Authors: Spooner David L. , Skolnick Michael
Published: July 2004

This paper relates experience in exploiting a science and engineering case study approach to teach introductory computing concepts in a course for non-majors. It describes how a case study is structured and implemented using hypermedia. It also discusses experience gained in using the case studies in the course.
A course on multimedia technology for computer science and computer engineering students
Authors: Reeves Douglas S.
Published: July 2004

We have developed a new course on Multimedia Technology, intended for upper-level undergraduates and graduate students majoring in either Computer Science or Computer Engineering. In this paper we describe the topics covered, the method of instruction, the work done by the students, and the facilities needed to teach such a course. The paper concludes with some feedback provided by students, and possible ways in which the course could be improved or extended.
Simulation game for teaching communications protocols
Authors: Shifroni Eyal , Ginat David
Published: July 2004

During the development of a new program for teaching the subject of computer communication at high school, we examined different ways of teaching the algorithmic aspect of communication protocols. Upon trying the "standard" frontal lecture-type presentation, only a minority of the students comprehended the protocols.In looking for an alternative way of teaching, we developed a simulation game in which the students act as the protocol components. After playing the game, they discuss the characteristics of the protocol as experienced through playing.We found the simulation game method to be far more effective than the lecture-type presentation. The simulation game method had significantly improved the level of understanding and the motivation of the students.In this paper we describe the simulation game and its didactic method and discuss the results of applying it in high school classes in Israel during the past year.
Adding some spice to CS1 curricula
Authors: Holmes Goefrey , Smith Tony C.
Published: July 2004

CS1 curricula that focus primarily on teaching programming skills may fail to give students a sense of the breadth of topics to which a knowledge of computability might apply. We attempt to correct for this by adding a survey of computing concepts into our introductory course. Sophisticated topics usually reserved for senior level courses are presented in a
popular science
manner, and given equal time alongside the essential introductory programming material. By exposing students to a broad range of specific computational problems we endeavour to make their first course more interesting and enjoyable, and instil in them a sense of vision for areas they might specialise in as computing majors.
The use of animation to explain genetic algorithms
Authors: Jackson David , Fovargue Andrew
Published: July 2004

Algorithm animation has been applied to a huge variety of algorithms, and has been found to be of enormous benefit in assisting with their comprehension. However, the radical nature of several classes of algorithm has caused them to be largely overlooked in this regard; noticeable among these are genetic algorithms. In addressing this, we have used the XTANGO software system to develop a set of animation sequences designed to illustrate the behaviour of a genetic algorithm applied to a real-world problem. The resulting package is general enough to be adapted easily to a range of problems.
Iconic programming proves effective for teaching the first year programming sequence
Authors: Calloni Ben A. , Bagert Donald J. , Haiduk H. Paul
Published: July 2004

Research has been undertaken to answer the following question:
Can icon-based programming languages be used to teach first year programming concepts to undergraduate students more effectively than text-based languages?
BACCII++ is an iconic environment developed at Texas Tech University for teaching procedural and object-oriented programming concepts and languages. Course materials were developed and used under experimental conditions during the 1995-96 school year at Texas Tech University, with half using BACCII++ to generate C++ code, and the other half using only C++. For each course in each semester the experiment was run, the sections using BACCII++ did significantly better in overall performance.
The road less traveled
Authors: Lutz Michael J. , Naveda J. Fernando
Published: July 2004

In the fall of 1996, RIT admitted the first students to a new undergraduate program in software engineering. Our goal in creating the program was to provide for the education of a new type of engineer: the software engineer. This paper presents the rationale for developing such a program, the process we followed in its design, and an outline of the distinctive features it possesses.
Simulating requirements gathering
Authors: Barrett Martin L.
Published: July 2004

One of the difficulties in teaching a project-based Software Engineering course for undergraduates is giving students experience with requirements gathering before they begin the course project. This paper describes a simulation of Joint Application Design (JAD), a technique used in industry to gather requirements from users. The simulation is a role-playing exercise in which students play the parts of both developers and customers involved in specifying a new software product. Each participant is given a script of behaviors to act out for his or her role and a set of specific requirements for the product. The participants must work out conflicts and ambiguities built into the simulation to produce a consistent product specification.
The object shop—using CD-ROM multimedia to introduce object concepts
Authors: Woodman Mark , Griffiths Robert , Holland Simon , Law Andrew
Published: July 2004

This paper describes key features of a new multimedia CD-ROM pack produced by television makers in collaboration with computer science educators --- by the BBC for the Open University Computing Department. The pack, The Object Shop, forms an early component of an undergraduate course which introduces object-oriented computing and software development to students new to computing. Building on the results of empirical evaluation, The Object Shop has been designed to help students with no programming experience to understand core object programming concepts. Throughout the CD-ROM, video, animated graphics and an underlying object-oriented simulation of a virtual shopping environment provide an accessible introduction to the central ideas of object-oriented programming. The key power of the multimedia approach is that the student-user is able to gain a sound operational understanding of concepts before learning the details of programming code or syntax. Users can continually monitor their progress through a series of task-based, assessed exercises.
Enterprise enhanced education
Authors: Mulder Michael C. , Lidtke Doris , Stokes Gordon E.
Published: July 2004

For many years there have been complaints from enterprises such as business, industry and government that academia is unable to produce graduates that can function well in the design and implementation of large and complex information and engineering systems. These complaints have been voiced and confirmed once again in recent reports and conference addresses [5],[3]. As a result of discussions on the results of the Mulder NSF report following the report's completion it was suggested that recent advancements in information, communication and computer technologies could enable a new and innovative approach to improving the graduates from our university information specialists programs. This new learning/teaching paradigm involves both the universities and the concerned enterprises. The paper that follows presents some of the reasoning and organizational structure for the suggested cooperative approach enabled by information technology, and information regarding some test sites of cooperative programs involving universities and industry.
Strategies for effective integration of software engineering concepts and techniques into the undergraduate computer science curriculum
Authors: Jackson Ursula , Manaris Bill Z. , McCauley Renée A.
Published: July 2004

This paper discusses various strategies for introducing and reinforcing software engineering principles in the undergraduate Computer Science curriculum. These strategies are based on a set of standards for internal/external documentation and organization of software which may be implemented quickly and inexpensively without a complete overhaul of courses. This provides a flexible framework for the development of a wide variety of carefully-planned programming assignments/projects.
Developing critical skills in technical courses (seminar)
Authors: Kourik Janet
Published: July 2004

To succeed in today's computer information systems (CIS) environment, CIS professionals need far more than traditional technical skills. Managers seek technical staff with the ability to communicate effectively and understand an organization's primary mission. Industry would like CIS professionals to have strong backgrounds in a broad variety of skills such as oral and written communication, team work, and an awareness of international issues. Current computer science and information system curricula often do not provide our students with the opportunity to learn these critical skills.By adding a variety of simple activities to existing technical courses we can provide students with valuable opportunities to develop these critical skills. A variety of teaching techniques can re-enforce skills in both arenas at the same time. Some assignments can assist students in understanding the technical material by requiring them to apply advanced critical thinking skills. Active learning can reach students with different learning styles and increase the understanding and retention of technical material. A mixture of activities also provides a variety of forms of assessment which may more accurately reflect students' understanding of the material. As a bonus, these skills will enable our students to continue to thrive in a field fraught with constant change.The seminar will expand on these themes and provide examples and practice developing assignments that can help prepare well-rounded students for success in computer information systems.
Teaching C++ on the WWW
Authors: Hitz Martin , Kögeler Stefan
Published: July 2004

We present the WWW-based interactive C++ Course developed at the University of Vienna to support introductory programming lectures of the first year of our
Wirtschaftsinformatik
("business informatics") curriculum.The paper focuses on some major design concepts of the course as well as on the lessons learned during the project, such as the 3-layer structure of the course, ergonomic issues, an integrated programming interface with multi-user support, and maintainability issues.All of these may apply also to similar projects for different programming languages.
A fantasy adventure game as a learning environment
Authors: Moser Robert
Published: July 2004

A number of factors contribute to the difficulty of learning computer programming, and by examining some of these factors we can hope to design an environment that is more conducive to the learning process. I analyse some of these problems and find that one possible solution is to embed the educational content into a fantasy adventure game. Designing an educational game is, however, fraught with difficulties beyond those normally associated with writing such a program, as there are conflicts between educational and entertainment goals. Described are a few of these conflicts from the early stages of my project, and the compromises that they have engendered.
CS student research experience applied to developing instructional technology
Authors: Cizmar Dawn
Published: July 2004

CS undergraduate research in a cooperative development effort is described. Significant experience in current technology was gained by creating an instructional unit. CS students directly applied research skills, and measured learning effectiveness in a controlled study. The work includes research, application, evaluation, model for future work, and presentation. It also provided a learning aid for general students, an interactive tutorial on elementary gate-level logic. JavaScript and HTML were used to rapidly develop this prototype. It was student-tested by student researchers, and served several objectives in a computer science course. Data on student performance was collected and analyzed. Positive results were obtained, indicating a model for further development.
Finding a place for computer-equipped lectures in a lab-rich environment
Authors: Baldwin Doug
Published: July 2004

Many computer science courses are taught via a combination of lectures and laboratories; many of the lectures use a room equipped with a computer and data projector. But such lecture halls create a problem for instructors: how to use the lecture-hall computer for more than poor approximations to experiences students could have working one-on-one with a computer in the laboratory. One solution is to use computers in lecture halls as tools for collecting and archiving information, much of it generated by students (via methods such as questions, discussions, and group exercises). My initial experience using a lecture-hall computer in this manner was a great success.
An applicable test data generation algorithm for domain errors
Authors: Hajnal Ákos , Forgács István
Published: July 2004

An integrated testing criterion is proposed that extends traditional criteria to be effective to reveal domain errors. The method requires many fewer test cases and is applicable for any kind of predicates. An automated test data generation algorithm is developed to satisfy the criterion. This is the first integrated algorithm that unites path selection and test data generation. The method is based on function minimization and is extended to find required test cases corresponding to ON-OFF points very quickly. In this way the algorithm is dynamic and thus can be used in practice.
Automated regression test generation
Authors: Korel Bogdan , Al-Yami Ali M.
Published: July 2004

Regression testing involves testing the modified program in order to establish the confidence in the modifications. Existing regression testing methods generate test cases to satisfy selected testing criteria in the hope that this process may reveal faults in the modified program. In this paper we present a novel approach of automated regression test generation in which all generated test cases uncover an error(s). This approach is used to test the common functionality of the original program and its modified version, i.e., it is used for programs whose functionality is unchanged after modifications. The goal in this approach is to identify test cases for which the original program and the modified program produce different outputs. If such a test is found, then this test uncovers an error. The problem of finding such a test case may be reduced to the problem of finding program input on which a selected statement is executed. As a result, existing methods of automated test data generation for white-box testing may be used to generate these tests. Our experiments have shown that our approach may improve the chances of finding software errors as compared to the existing methods of regression testing. The advantage of our approach is that it is fully automated and that all generated test cases reveal an error(s).
What's wrong with software engineering research methodology
Authors: Xia Franck
Published: July 2004

In a recent conference, there was a panel session on whether Software Engineering is really engineering. The debate was interesting but inconclusive, not because the panelists disagreed on the state of the arts of software engineering, but on the definition of what is called engineering. Some thought that the aim of engineering is to build useful machines, and as far as we build machines we are engineers using engineering knowledge. So the question of the panel session was somehow ill-posed. For others, an engineering needs a scientific theory to help building machines, and when the theory cannot well guide practice, the engineering is still at the craft stage [1].I believe on the last definition: an engineering must have a scientific theory as foundation and this theory can be applied to build products. If we examine other engineering disciplines such as mechanical, electrical, or civil engineering in a modern sense, all these engineering disciplines have their theoretic foundation [2]. Therefore, anyone who builds products without theoretic knowledge, whatever the expertise he may have, can only be called craftsman or artist, not engineer.In this sense I feel that, with the current knowledge on software "engineering", those who develop software are akin to artisans rather than engineers. Many people will disagree with my assertion, by mentioning a great variety of tools, languages, environments, etc. It is true that software development practices have achieved a lot of progress. However, as an engineering discipline and therefore from its scientific aspect, I think we are progressing very slowly. The reason is that there are few theories in software engineering that can really be qualified scientific and I will try to demonstrate it from epistemology viewpoint. Comments will be welcome.
Viewpoint-centred reuse
Authors: Lam W.
Published: July 2004

The "Reuse without Reusers" SyndromeThe problems of low productivity, late delivery and poor software quality are, unfortunately, characteristic of the software industry (Horowitz and Munson 1989). Increasingly, software developers are looking towards reuse as a possible solution to these problems.However, attempting to develop genuinely reusable artifacts without a firm understanding of the reuser's (or potential reuser's) needs, i.e. their "reuse requirements", is a difficult process. A lack of understanding and general detachment of the reuser from the reuse process is a situation recognised in this paper as the "reuse without reusers" syndrome.The aim of this paper is to highlight the role played by the reuser in the reuse process, and to encourage more user-centric approaches to key reuse activities such as domain analysis (Prieto-Diaz 1990). We do this by describing a reuse process called Viewpoint-Centred reuse (VCR), which forms part of our current research agenda in the ART (Applied Reuse Technology) project at the University of Hertfordshire, UK.
Traffic simulation
Authors: Proulx Viera K.
Published: July 2004

In teaching object oriented design, it is important for students to work on projects that use a variety of design patterns, interaction between objects, and provide the opportunity to explore design options in a realistic setting. Originally, object oriented languages have been designed for use in building simulations. We use a familiar simulation of a traffic through an intersection, controlled by a traffic light as a framework for teaching various aspects of object oriented design. We present this project and show how it illustrates a variety of object oriented design problems.
A tool for teaching curve design
Authors: Zhao Yuan , Lowther John , Shene Ching-Kuang
Published: July 2004

This paper describes a tool for teaching curve design. This tool is a component of the software tools to be used in a computing with geometry course [3, 4] that is being developed under the support of National Science Foundation. Curve design is important in computer graphics, animation, and computer aided design. Unfortunately, curve design requires very involved mathematics even though many curve design concepts are intuitive. As a result, it has been a challenging job for instructors teaching curves and surfaces in computer graphics, computer aided design, and other related courses. During past years, there have not been very many efforts dedicated to curve design tool development. Yen [7] produced a well-received video program explaining important concepts of B-spline curves and surfaces and Rockwood and Chambers [6] published a multimedia tutorial on computer aided geometric design. The former only provides a one-way communication, while the latter restricts users to a predefined environment with very limited interaction for users to carry out experiments. To fill this gap, our tool provides students with a fully interactive environment in which they are free to design, modify, and manipulate curved objects and perform experiments without constraints.In the following, Section 2 presents design issues, Section 3 discusses general features, Section 4 enumerates basic elements, Section 5 covers advanced topics, and Section 6 is our conclusion. Interested readers should consult [1, 2, 5] for mathematical background details.
Large introductory computer science classes
Authors: Kay David G.
Published: July 2004

Traditionally, a large introductory course meant a lecture hall with a single lecturer talking and students taking notes---but no longer. Today a wide variety of techniques, not only in the classroom but in labs and faculty offices and cyberspace, can make a large introductory course an extremely effective educational experience. We explore these practices, with pointers for further information, as a guide for instructors or departments faced with the large-course model of instruction.
A problem-based interface design and programming course
Authors: Kay Judy , Kummerfeld Bob
Published: July 2004

This paper describes a course that addresses two important issues: introducing interface design and programming at the same time as helping students develop life-long learning skills. Many computer science programmes could well be based on the assumption that the computing world is still oriented towards batch processing. Yet, interactive systems are central to information technology and the interface to a system is very important. Our courses introduces students to this area. At the same time, programming tools for building interfaces are an excellent example of very fast changing technology. Our course explicitly aims to help students learn to how to learn about such tools.The course is based on the approach called problem-based learning: the need to solve an authentic problem drives the definition of appropriate learning goals and strategies. An unusual feature of the course is the interweaving of the learning about programming tools and the classic skiIls of user interface design. We describe our course and its evaluation in a class of over 100 senior year undergraduate computer science students.
Parallel computing in the undergraduate curriculum
Authors: Kurtz Barry L. , Kim Chinhyun , Alsabbagh Jamal
Published: July 2004

This paper reports on our NSF grant (CDA-9414309) from the Education Innovation program in the CISE directorate. We not only present the current status of grant activities as we near completion, but we also present a "how to" approach for those faculty from teaching-oriented schools who want to submit a proposal in the area of educational computing. We discuss both our successes and our failures and we give advice on how to avoid the pitfalls we have encountered. Most important, throughout the paper, we give advice on how to obtain funding in the first place.
“Alfonse, your Java is ready!”
Authors: Hartley Stephen J.
Published: July 2004

Is Java suitable for
teaching
concurrent programming? This paper describes the features Java has for this, how well they work, and what is missing. The author has written a library of classes, also described here, to provide the missing features. Supplemented with these classes, Java works well as the concurrent programming language in operating systems and related courses.
Extended analogy
Authors: Matocha Jeff , Camp Tracy , Hooper Ralph
Published: July 2004

In computer science education one should employ creative teaching methods, especially for non-majors or beginning students. Students who are new to computer science typically find the field full of theoretical, technical, or even tedious concepts. Lack of interest, motivation, or understanding creates a difficult mix of students. This paper describes a technique which combines analogy and simple memory techniques to aid in the teaching of technical concepts.
Computer science through the eyes of dead monkeys
Authors: Lewandowski Gary , Morehead Amy
Published: July 2004

Our breadth-first introduction to Computer Science presents the fundamentals of the discipline by engaging students in active learning. In designing and teaching this course we established four goals. First, since problem solving is essential to Computer Science, students should learn to solve problems proficiently in several areas. Second, since Computer Science is best learned through intimate engagement with the material, students should learn in an active classroom environment. Third, students of all experience levels and majors should feel equally comfortable with the course material. And fourth, students should discover that Computer Science is interesting, relevant and fun.We encountered two major obstacles to achieving our goals. First, in an introductory course such as this, one regularly finds a range of experience among students: some have never used a computer, others have used it only for word processing, and still others have built their own computers. Therefore, designing an interesting and useful course that doesn't bore or intimidate any students is a significant challenge. Second, students have a wide variety of preferred learning styles which affect the way they gather and process information. Instructors also have a preferred learning style which affects the way they present the course material. Therefore, presenting the material in ways that engage all learning styles is another challenge.Despite these obstacles, our presentation strategies for this course have yielded promising results. After teaching the course for three semesters, we have observed the following. First, the course involves every student and is highly interactive. Second, as students learn the core material they ask more depth questions and achieve a higher overall level of knowledge than students in previous semesters of the course. Finally, students enjoy the class and report that they are highly satisfied with their learning; more CS I students are choosing to take additional Computer Science classes.
Integrating recent research results into undergraduate curricula (panel)
Authors: Marion Bill , Linden Keith Vander , Sabin Roberta , Cushing Judy , Anderson Penny
Published: July 2004

On July 7-11, 60 computer scientists came together at The Evergreen State College in Olympia, Washington to consider how the undergraduate curricula might be improved in light of recent research in computer science. At this NSF-funded workshop, researchers presented work in four areas where current research might be particularly relevant, and undergraduate faculty (with experience in software engineering, functional programming, artificial intelligence, discrete mathematics or theoretical computer science) explored the current state of undergraduate computer science curricula and ways in which they might be better informed by recent research.Each participant attended sessions in one of the four interest areas--Software Engineering Capstone Courses, Functional Programming, Neural Networks and Their Applications, and Computational Geometry--and faculty developed curricular materials that they could use in their teaching the following year. Those materials are being placed on the WWW, and faculty are refining them as they use them in their courses. A second workshop is planned for summer, 1998.The workshop was sponsored by The Evergreen State College, the Oregon Graduate Institute, the Washington Center for the Improvement of Undergraduate Education, and by the Center for Discrete Mathematics and Theoretical Computer Science (DIMACS).All of the panelists participated in the workshop and each panel member will share his or her experiences in incorporating the recent research results studied at the workshop into their undergraduate curriculum. In addition, the panelists will discuss with the audience their own plans for integrating research results into their own undergraduate programs.
Using classes early, an object-based approach to using C++ in introductory courses (seminar)
Authors: Astrachan Owen
Published: July 2004

In the heyday of structured programming, many educators debated the sequencing of topics in introductory courses, particularly the introduction of functions and procedures. As object-oriented programming gains a foothold, particularly via the languages C++ and Java, the debate moves from the introduction of functions to the introduction of classes. To keep the discussion in the form of a debate, this seminar will focus on the issue:
Resolved: classes should be used early in the introductory sequence of courses.
Classes should be used early in introductory programming courses when a program or application warrants their use, not because classes are intrinsically a good thing. Rather than demanding that students use a class to convert a Fahrenheit temperature to Celsius, we must show students examples that use classes; examples that leverage the power of classes into programs that would be more difficult to do without the use of classes.In many cases, classes can be used as units or modules have been used with structured languages. Students and educators can become accustomed to the syntax of C++ and the concepts of object-based and object-oriented programming by using classes for fundamental language constructs such as strings and vectors, and for application-specific programs as well. Classes are used first, then modified, and finally (if ever) written from scratch. With this approach students learn about good coding and design from experience. For this approach to using classes to be effective, a library of well-designed and useful classes must be available to instructors and students.
Reasoning about team tracking
Authors: Fan Xiaocong , Xu Dianxiang , Hou Jianmin , Zheng Guoliang
Published: July 2004

One subject of much ongoing research is team tracking --- tracking a team's joint goals and intentions in dynamic, real-time domains. In this paper, a theory of team tracking and an architecture for team-oriented communication-based agents are presented. The problems faced in tracking ill-structured teams are also discussed.
A multi-threaded object-oriented programming model
Authors: Chen Jiajun , Yuan Xiaodong , Zhengp Guolian
Published: July 2004

This paper presents a concurrent object-oriented programming (COOP) model established around concurrent objects which may have a body. Once an object with a body is created, its body begins to run as a separate execution thread of the object. Distinguished from some active-object-based concurrent object-oriented models, the object body in our model is not used for the concurrency control of objects, but only as a mechanism to introduce concurrent executions into OO model. Concurrency control is specified by the attributes of objects and the control codes are generated by a compiling system based on these attributes. In addition, objects should be designed in such a way that they can be used in both sequential and concurrent environments, no matter whether they have a body or not. In our model, several execution threads may coexist in an object and some synchronization mechanisms are provided to control the concurrent executions of these threads. The paper presents two examples of concurrent programming with our model.
An agent-oriented modeling approach
Authors: Liu Hong , Zeng G. , Lin Zongkai
Published: July 2004

This paper proposes an agent-oriented modeling method for the information processing. First of all, it presents an information processing model for real world; then the hierarchical organization of agents and the structure of an agent are given. Furthermore, the logical representation of transaction and event are described. Finally, an agent-oriented modeling process is put forward. Modeling starts from describing the agents that participate in the process; then gathers the other information centered on agents and creates the model. The approach can explicitly present the organized structure of agents and the correlation among transactions, reflect the dynamic process change by describing the state change of the system, illustrate the dynamic character of information process.
A new bachelor's degree program in software engineering
Authors: Soloman Ad
Published: July 2004

We describe a new program of studies in Software Engineering (SE). The program regards SE as an engineering discipline and focuses on the training of the student as an engineer involved in all aspects of a software product.
An integratable unit based computer science distance learning curriculum design for the ACM/IEEE curricula 1991
Authors: Abunawass Adel , Maskarinec Martin , Neumann Kathleen
Published: July 2004

This paper presents the concept of learning units as a vehicle for curriculum design in computer science that is suited for distance learning. Our emergent view of distance learning is based on desktop and Internet technologies. This emergent view of distance learning is neither bound by time nor by place. This is unlike traditional distance learning programs where satellite uplinks and/or videotapes are the primary method of delivery of course lectures. The learning unit based curriculum described here accounts for all of the guidelines and knowledge units set forth in Curricula 1991 of the ACM/IEEE.
Abstract data types as a project development organiser
Authors: Haberman Bruria , Scherz Zahava , Shapiro Ehud
Published: July 2004

Abstract Data Types (ADTs) has been introduced recently to Israeli high-school students as tools for problem solving and knowledge representation in Prolog environment. This paper reviews a research that was conducted in order to assess the influence of students' use of ADTs on the development process of knowledge-based Prolog programs.
Software engineering across computing curricula
Authors: Hilburn Thomas B. , Mengel Susan , Bagert Donald J. , Oexmann Dale
Published: July 2004

In this paper, we address issues that are pertinent to the improvement of software engineering curricula. We submit that a key impediment to the development of new courses and curricula and the advancement of software engineering education is the lack of guidance and support for such development. In this paper we propose the creation of a set of "Guidelines for Software Education". We outline the content of such Guidelines and discuss some initial steps in defining the body of knowledge that is a foundation for the Guidelines.
Why the hypermedia model is inadequate for computer-based instruction
Authors: Kotzé Paula
Published: July 2004

With the persuasiveness of hypermedia and its advocated use in computer-based instruction (CBI), it is important to understand the relationship between the two directions. The major difference lies in the way nodes are traversed and the rules that govern such traversals. Whereas hypermedia systems are limited to referential browsing, computer-based instructional systems also require contextual linking enabling the traversal of alternative routes based on the performance level of a student and/or the instructional mode involved. This requires additional facilities not available in the hypermedia model. In this paper, we describe an abstract model of computer-based instructional systems that can be used to highlight the inadequacies of the general hypermedia model and extend its conceptual base to a much wider range of instructional modes.
On-line finals for CS1 and CS2
Authors: Medley M. Dee
Published: July 2004

In this paper, I describe the implementation of on-line final examinations for CS1 and CS2. I also include a brief statistical comparison of outcomes of using that form of examination and the more traditional, written final examination.
Re-engineering a concurrency simulator
Authors: Persky Yakov , Ben-Ari Mordechai
Published: July 2004

SimAda is a concurrency simulator, reengineered from the simulator given in M. Ben-Ari,
Principles of Concurrent Programming
. The language was written in Ada 95 to enhance portability and to utilise the structuring constructs of a modern language. The concurrency constructs simulated include protected types which are new for Ada 95, as well as the Ada rendezvous. Several task scheduling models can be chosen for experimentation. SimAda is intended for teaching concurrency, both by running programs and by studying the implementation techniques.
A system for improving distance and large-scale classes
Authors: Preston Jon Anderson , Shackelford Russell
Published: July 2004

The emergence of large-scale classes and distance education has created problems that cannot be adequately addressed by the traditional student-teacher based model of interaction. Students in large-scale classes and distance education environments do not receive the same kind of interaction with the instructor they may have received in smaller, more traditional classroom settings. Our experiences have resulted in "lessons learned" and solutions that address issues that arise in distance and large-scale education. This paper presents these solutions and an in-progress system that facilitates the interaction and information flow of students, raters, and instructors.
Specification of an algorithm design system
Authors: Eyck James Ten , Sampath G. , Goldstone Richard
Published: July 2004

This paper describes an Internet based system for studying the design of algorithms and the structure of mathematical proofs. The Algorithm Design System consists of a framework for the construction and maintenance of the learning environment by a distributed group of contributors, and a set of web pages, produced by the contributors, that form the learning environment used by students of algorithm analysis and design. The framework of the system that we describe allows for the material used by students to grow dynamically in a distributed environment and provides constraints to ensure the uniformity of form and quality of content of the end product. The paper discusses both the architecture of the system and the content of the pages that it produces.
Evaluating the design and delivery of WWW based educational environments and courseware
Authors: Wade Vincent P. , Power Conor
Published: July 2004

The mid 1990s has seen a significant growth in both the popularity and development of WWW based courseware and delivery. However, such efforts have been very variable in both effectiveness and comprehensiveness. This paper identifies a set of general requirements necessary in designing a pedagogically successful WWW based educational experience, which can be used in the assessment of WWW based educational courses. To illustrate how such requirements can be successfully addressed, the evaluation of a WWW based course which was trialed over a three-year period with approximately 300 students is presented.
Utilising the student model in distance learning
Authors: Whitehurst R. Alan , Powell Christopher L. , Izatt Jason S.
Published: July 2004

A key to effective automated learning systems is the ability to dynamically adapt learning strategies to the needs of individual students. This presentation will describe the dynamic presentation facility of the DANDIE distance-based learning system that utilises a student model and intelligent system techniques to optimise presentation content and form to meet individual needs. Given a knowledge-base of course material, the system adapts the information through the selection of predefined learning strategies, dynamically constructs an interconnected set of presentation modules, and evaluates the effectiveness of the presentation strategy with respect to the individual student.
A conservative data flow algorithm for detecting all pairs of statements that may happen in parallel
Authors: Naumovich Gleb , Avrunin George S.
Published: July 2004

Information about which pairs of statements in a concurrent program can execute in parallel is important for optimizing and debugging programs, for detecting anomalies, and for improving the accuracy of data flow analysis. In this paper, we describe a new data flow algorithm that finds a conservative approximation of the set of all such pairs. We have carried out an initial comparison of the precision of our algorithm and that of the most precise of the earlier approaches, Masticola and Ryder's non-concurrency analysis [8], using a sample of 159 concurrent Ada programs that includes the collection assembled by Masticola and Ryder. For these examples, our algorithm was almost always more precise than non-concurrency analysis, in the sense that the set of pairs identified by our algorithm as possibly happening in parallel is a proper subset of the set identified by non-concurrency analysis. In 132 cases, we were able to use reachability analysis to determine exactly the set of pairs of statements that may happen in parallel. For these cases, there were a total of only 10 pairs identified by our algorithm that cannot actually happen in parallel.
Automatic generation of state invariants from requirements specifications
Authors: Jeffords Ralph , Heitmeyer Constance
Published: July 2004

Automatic generation of state invariants, properties that hold in every reachable state of a state machine model, can be valuable in software development. Not only can such invariants be presented to system users for validation, in addition, they can be used as auxiliary assertions in proving other invariants. This paper describes an algorithm for the automatic generation of state invariants that, in contrast to most other such algorithms, which operate on programs, derives invariants from requirements specifications. Generating invariants from requirements specifications rather than programs has two advantages: 1) because requirements specifications, unlike programs, are at a high level of abstraction, generation of and analysis using such invariants is easier, and 2) using invariants to detect errors during the requirements phase is considerably more cost-effective than using invariants later in software development. To illustrate the algorithm, we use it to generate state invariants from requirements specifications of an automobile cruise control system and a simple control system for a nuclear plant. The invariants are derived from specifications expressed in the SCR (Software Cost Reduction) tabular notation.
Our experiences teaching functional programming at University of Ri´o Cuarto (Argentina)
Authors: Szpiniak Ariel Ferreira , Luna Carlos D. , Medel Ricardo H.
Published: July 2004

The goal of this paper is to describe our experiences in teaching functional programming in computer science careers at the University of Río Cuarto (Argentina). First, the frame in which the subject is learned in these careers is established. Then, the results after three years teaching this subject are discussed. The main conclusion suggests maintaining this subject in the curriculum, but redefining and updating most of its contents.
Java pitfalls for beginners
Authors: Biddle Robert , Tempero Ewan
Published: July 2004

In this paper we will examine the Java language, and consider how easy it is for beginning programmers to learn. We address primarily the issues that arise directly from the language itself, and discuss whether the promises are compromised by the pitfalls. This analysis is the result of our teaching of Java to people in industry, our consideration of whether Java is suitable as a first programming language for university students, and our earlier work involving similar issues with regard to C++.
The effects of narrow-band width multipoint videoconferencing on group decision making and turn distribution
Authors: Takao Shinji
Published: July 2004

This study reports an experiment that examines the effects that face-to-face meetings (FF) and two modes of videoconferencing, switching video (SV), which shows only the current speaker, and mixing video (MV), which shows each group member simultaneously, have on turn distribution and the quality of small group decision making. The subjects were 200 undergraduate students and the task was the NASA Moon Survival Problem. Multiple comparison tests indicated that MV yielded significantly higher group decision quality than FF. The other pairs, FF-SV and SV-MV, showed no significant differences. With regard to turn taking, there was almost no difference between SV-MV.