bluuebunny/crossref_metadata_2025 huggingface dataset:
Systems analysis and design in an uncontrolled management environment
Authors: Stoob John C.
Published: July 2004

Most published schemes for developing computer data systems base themselves on very structured, well established milestones in the development process. Further, they emphasize frequent and complete liason with users. They also imply that the funding required to form and operate the development teams and oversight committees are reasonably available and that the management environment is flexible enough to establish these requisite management organizations. What if, though, a computer system was being developed in an environment where there was no ready agreement as to the approach towards the development, where current information systems decisions were made by a high level committee and where that committee could not agree on basic information systems concepts. Further, what if there was no one individual or authority in management who had the stature to provide the necessary leadership to get the process going properly. This paper outlines such a situation, how systems are being designed and implemented in that situation, and suggests that any course on systems analysis and design must include this much less that ideal management environment in its content.
The influence of BASIC on performance in introductory computer science courses using Pascal
Authors: McGee Linda , Polychronopoulos Gerasimoula , Wilson Carroll
Published: July 2004

Results are presented testing the hypothesis that knowledge of BASIC has a positive effect on performance in introductory Pascal courses. During the Fall 1985 term, two computer science courses were surveyed at the University of Illinois, and students' final course grades were analyzed based on their programming background. In CS 121 surveys were given out in both lecture sections, with students being expected to mail surveys back on their own. The largest lecture section of five was surveyed for CS 105. The surveys were distributed to students and collected at the end of class. The data for the course for computer science majors (CS 121, which is a requirement) show no grade differences based on prior background. The data for the course for non-majors (CS 105, which is only required for finance majors and is an alternate choice for a few others) show significantly higher grades for students with background in BASIC in comparison to students with no programming background.
Software support for computer science video courses
Authors: van Houten Karen
Published: July 2004

The Computer Science department at the University of Idaho offers a Masters degree to off-campus students via video taped courses. One of the major roadblocks to the expansion of course offerings is the lack of inexpensive software available to the video student.
An overview of MiniJava
Authors: Roberts Eric
Published: July 2004

This paper describes the implementation of MiniJava, a teaching-oriented programming language closely based on the Java language developed by Sun Microsystems [6]. The core of the MiniJava environment is a restricted subset of the standard Java release and is designed to reduce the intimidation factor introductory students experience when they encounter a system as large as the Java environment. The paper outlines the particular restrictions and extensions that define MiniJava along with pedagogical justifications for each.
JKarelRobot
Authors: Buck Duane , Stucki David J.
Published: July 2004

We introduce a new software tool, JKarelRobot, for supporting an Inside/Out pedagogy in introductory programming courses. Extending the original conception of "Karel the Robot", with Bloom's Taxonomy of Educational Objectives as a guiding principle, we have provided a mechanism for designing exercises that are cognitively appropriate to the developmental levels of our students. JKarelRobot is platform independent (written in Java) and language/paradigm independent, supporting Pascal, Java, and Lisp style environments.
Teaching CS1 with karel the robot in Java
Authors: Becker Byron Weber
Published: July 2004

Most current Java textbooks for CS1 (and thus most current courses) begin either with fundamentals from the procedural paradigm (assignment, iteration, selection) or with a brief introduction to using objects followed quickly with writing objects. We have found a third way to be most satisfying for both teachers and students: using interesting predefined classes to introduce the fundamentals of object-oriented programming (object instantiation, method calls, inheritance) followed quickly by the traditional fundamentals of iteration and selection, also taught using the same predefined classes.Karel the Robot, developed by Richard Pattis [6] and well-known to many computer science educators, has aged gracefully and is a vital part of our CS1 curriculum. This paper explains how Karel may be used and the advantages of doing so.
A study of the impact of student background and preparedness on outcomes in CS I
Authors: Morrison Malcolm , Newman Timothy S.
Published: July 2004

A study that assesses the significance of student background characteristics on outcomes in a depth-first CS I course is presented. The study was conducted over a two-year period and involved more than 400 students in fourteen different course sections taught by eight different instructors in a CSAC-accredited program. In this paper, focus is on the impact of prior programming courses on CS I outcomes. In particular, the impact of the prior course's programming language and provider is reported.
Encapsualtion and reuse as viewed by java students
Authors: Fleury Ann E.
Published: July 2004

Through audio-taped student interviews, this study examined beginning Java students' conceptions of object-oriented programming. Students rated programs on stylistic criteria including ease of comprehension, ease of debugging, ease of modification, ease of reuse, and overall quality of design. They also explained the reasons for their ratings. The results will be discussed and interpreted in light of previous research. Implications for instruction will also be examined.
Offering CS1 on-line reducing campus resource demand while improving the learning environment
Authors: Preston Jon A. , Wilson Laura
Published: July 2004

Multimedia-rich Web interfaces offer an increasingly attractive option for teaching distance and large-scale courses. We explore our experience of publishing CS1 to over 200 students and the resulting student performance. Our approach included streaming QuickTime audio and video synchronized with animated PowerPoint slides; in addition, a "Frequently Asked Questions" (FAQ) list was compiled from previous students' questions and made available. We demonstrate that the on-line lecture material enhanced students' learning of those enrolled in the traditional, lecture-based sections and those enrolled in the on-line section. The process is cost-effective, scalable, and affords use in other disciplines beyond CS1. Our future research is also discussed.
Implementation of object-relational DBMSs in a relational database course
Authors: Wang Ming
Published: July 2004

Object-relational DBMS was gradually added as a new topic to the author's database course in response to the rapid changes in DBMS technology in the real world. Implementation of ORDBMS technology in a traditional relational database course had significant impacts on the database curriculum. As an outcome, students were able to solve problems that could not be solved well in a relational database. ORDBMS was implemented with Universal Modeling Language (UML) and the Oracle 8i server. Course design, teaching methodology, class activities and the outcome of the course are discussed.
Local versus comprehensive assignments
Authors: Pareja-Flores Cristóbal , Velázquez-Iturbide J. Ángel
Published: July 2004

Two complementary classes of assignments, local and comprehensive, are advocated with different goals and features. The aim of describing both classes of assignments provides guidance to teachers in their design. Local assignments ideally provide an in-depth coverage of only one concept, whereas global ones ideally provide a breadth coverage of most of the concepts studied in a period of time. Both classes of assignments are illustrated with two motivating programming examples: "rolling dice" and "lights out," respectively.
Some thoughts on undergraduate teaching and the Ph.D.
Authors: Baldwin Doug
Published: July 2004

As the hiring crisis in academic computer science worsens, many people ask whether faculty whose primary job is teaching need doctorates. In the past, the answer would have been "yes;" now people increasingly suggest that it could be "no." I have argued in my own department for hiring only faculty with doctorates, because, while the doctorate does not directly train people to teach, it does seem to correlate with many characteristics of a good educator. This paper explores the thinking underlying my view, in hopes that it may help others clarify the needs and reasoning behind their own faculty searches.
Modern software development concepts
Authors: Tymann Paul T. , Schneider G. Michael
Published: July 2004

In this paper we propose a significantly different approach to CS2, the second course in the undergraduate computer science curriculum. Rather than a central focus on the design and implementation of data structures, we propose that the central focus be on modern software development concepts such as object-oriented design, exceptions, GUIs, graphics, collection classes, threads, and networking. We believe that these are the important concepts that students should be exposed to and should use in the second computer science course.
Creative pedagogy for computer learning
Authors: Hamza M. Khalid , Alhalabi Bassem , Marcovitz David M.
Published: July 2004

Do your students seem uninterested in learning about computing? Do they complain that the subject matter has no relevant application to the "real world"? Do they appear baffled, bored, and inattentive? Your mission as a creative facilitator is not to assign a grade; your mission is to educate students to think, learn, and make new connections they never thought possible. A teacher's guidance, constructive feedback, and facilitated instruction should pave the way for students to meaningfully bridge prior knowledge with new knowledge. In this article, the authors suggest eight essential tactics on how teachers might teach creatively, particularly with respect to computing curricula, while they enjoy the teaching and learning processes and reap the pleasures of getting students to think creatively and productively in a complex information world.
Software complexity assessment: annotated bibliography
Authors: Waguespack L. , Badiani S.
Published: July 2004

Software complexity is an area of software engineering concerned with the identification, classification and measurement of features of software that effect the cost of developing and sustaining computer programs. As a human endeavor, programming is subject to behavioral and psychological factors that eventually lead to the study of the human thought processes. The introduction and annotated bibliography presented are intended to relate a diversity of literature from computer science, cognitive psychology, and software engineering that are contributing to the current state of investigation in software complexity.
A course in programming languages for computer science majors
Authors: Lee M. C.
Published: July 2004

This paper presents my first experience in teaching third year computer science majors a course entitled, "Principles of Programming Languages" at the Chinese University of Hong Kong. The course has been aimed at teaching the students to analyze and to evaluate a high-level programming language; it also enables the students to gain knowledge in a wide spectrum of current programming languages. In this paper, the preparation, the teaching materials, the organization, and the actual running of the course are described.
Teching PL/I using a microcomputer
Authors: Harrow Keith , Langsam Yedidyah , Goldberg David E.
Published: July 2004

Until the Fall 1983 semester, the introductory programming course at Brooklyn College had been taught (in the PL/C dialect of PL/I) using keypunch equipment in a batch environment. However, that term two experimental sections used IBM Personal Computer (PC's) instead of keypunches. The experiment was expanded in the Spring 1984 semester to include almost one third of all sections of the introductory course, and then expanded again in the Fall 1984 semester to all sections of the first PL/I course, plus three sections of second-level courses. Although the PC's were quite easy to use, the PL/I-86 PC-DOS compiler produced by Digital Research caused many problems. A number of advantages and disadvantages of the experiment are discussed. Other implications of the use of PC's are also noted, including the possible change of language and the extension to more advanced courses in the curriculum.
On the feasibility of teaching Backus-type functional programming (FP) as a first language
Authors: Pagan Frank G.
Published: July 2004

In an attempt to demonstrate that Backus-type functional programming (FP) might be made as palatable and understandable as conventional programming to the computing novice, the author has written an introductory textbook-style description of a small FP system. This paper describes and summarizes that description. It is concluded that teachability concerns should not present an obstacle for FP's possible future success.
Introduction to computer use
Authors: Cherry Joan M.
Published: July 2004

An introductory course appropriate for students who wish to learn how to use computers but who do not want to major in Computer Science, is offered as a service course by the Department of Computer Science, within the Faculty of Arts. Ten sections, each with an enrollment of 120 students, are offered during the academic session. The course content, method of assessment, assignments, and computer facilities are described. Course materials, including a detailed syllabus and lecture schedule, assignments, quizzes, and examinations, are available from the author. [1]
Performance specification of software components
Authors: Sitaraman Murali , Kulczycki Greg , Krone Joan , Ogden William F. , Reddy A. L. N.
Published: July 2004

Component-based software engineering is concerned with predictability in both functional and performance behavior, though most formal techniques have typically focused their attention on the former. Reasoning about the (functional or performance) behavior of a component-based system must be compositional in order to be scalable. Compositional performance reasoning demands that components include performance specifications, in addition to descriptions of functional behavior. Unfortunately, as explained in this paper, classical techniques and notations for performance analysis are either unsuitable or unnatural to capture performance behaviors of generic software components. They fail to work in the presence of parameterization and layering. The paper introduces elements of a compositional approach to performance analysis using a detailed example. It explains that performance specification problems are so basic that there are unresolved research issues to be tackled even for the simplest reusable components. These issues must be tackled by any practical proposal for sound performance reasoning. Only then will software developers be able to engineer new systems by choosing and assembling components that best fit their performance (time and space) requirements.
Implementing product line variabilities
Authors: Gacek Critina , Anastasopoules Michalis
Published: July 2004

Software product lines have numerous members. Thus, a product line infrastructure must cover various systems. This is the significant difference to usual software systems and the reason for additional requirements on the various assets present during software product line engineering. It is imperative that they support the description of the product line as a whole, as well as its instantiation for the derivation of individual products.

Literature has already addressed how to create and instantiate generic product line assets, such as domain models and architectures to generate instance specific ones [1, 2, 3], yet little attention has been given on how to actually deal with this genericity at the code level.

This paper addresses the issue of handling product line variability at the code level. To this end various implementation approaches are examined with respect to their use in a product line context.
Techniques and language constructs for developing generic informations systems
Authors: Eckstein Silke , Ahlbrecht Peter , Neumann Karl
Published: July 2004

When creating a family of systems, i.e. several systems of similar type which differ within some aspects, it is desirable to be able to express these differences already at the level of the specification, and to automatically obtain systems from it which are ready to run. The use of generic methods may lead to substantial progress in this area. This report explores two aspects: parameterization concepts at the specification level, which can be used to describe variants of a system, and generator programs, which produce runnable systems from prefabricated components.
Evaluating the value-added benefits of using requirements reuse metrics in ERP projects
Authors: Daneva Maya
Published: July 2004

Measurement programs often go astray and fail to reach full success because of misconceptions and differences in expectations about the benefits to be realized as a result of a measurement exercise. This paper suggests how to plan and apply requirements reuse measurement in a business focussed way, by doing frequent benefits assessments. We describe an approach to analyzing, evaluating and tracking the reuse metrics usage patterns in Enterprise Resource Planning (ERP) projects and the benefits gained from integrating requirements reuse measurement practices in the ERP requirements elicitation- modelling- negotiation cycle. Relationships between requirements measurement activities and requirements engineering activities and deliverables are studied in the context of SAP R/ 3 implementation projects.
Safety analysis of Hawk In Flight monitor
Authors: Whiting Liz , Hill Mike
Published: July 2004

The development of a military safety critical system has many facets, one of which is the collecting of evidence that can be used to assist the production of the safety case necessary for certification of a system into military use. Within the certification process, static analysis is required by the UK Ministry of Defence to provide evidence of a systems integrity and fitness for purpose. In this paper we describe how we have extended the approach of static analysis to gain evidence of the dynamic integrity of a system. This work, based on the abstract interpretation of variable values into sets of ranges of values, has resulted in the development of a software tool, called the Exception Analyser. This tool can investigate the potential for code, written in C, C++ and Ada, to raise run time exceptions and then derive the system constraints which would prevent these exceptions from occurring. We outline the foundation behind our approach and present the results of a case study into the successful application of the tool on a safety critical military project.
Inter-class def-use analysis with partial class representations
Authors: Souter Amie L. , Pollock Lori L. , Hisley Dixie
Published: July 2004

Object-oriented program design promotes the reuse of code not only through inheritance and polymorphism, but also through building server classes which can be used by many different client classes. Research on static analysis of object-oriented software has focused on addressing the new features of classes, inheritance, polymorphism, and dynamic binding. This paper demonstrates how exploiting the nature of object-oriented design principles can enable development of scalable static analyses. We present an algorithm for computing def-use information for a single class's manipulation of objects of other classes, which requires that only partial representations of server classes be constructed. This information is useful for data flow testing and debugging.
SRI workshop summary
Authors: Svoboda Frank , Maymir-Ducharme Fred , Poulin Jeff
Published: July 2004

The Workshop on "Domain Analysis in the DoD," sponsored by the Software Reuse Initiative (SRI) and Defense Information Systems Agency (DISA), was held at MITRE Corporation, in McLean, Virginia on 26 - 27 September 1995. The primary purpose of the workshop was to discuss issues related to identifying and scoping domains with emphasis on product lines and to assess the usefulness of the strawman SRI Domain Scoping Framework as a proposed basis for this scoping activity. To this end, two specific objectives were identified:1. to identify the barriers facing Program Executive Offices (PEOs) and Program Managers (PMs) in incorporating domain analysis technology in their organizations and programs and2. to recommend a range of solutions and/or approaches to address and overcome these barriers.Many DoD and Industry programs can benefit from the application of domain analysis technology (concepts, processes, methods, and tools). However, PEOs/PMs rarely have enough information regarding why, when, or how to use domain analysis on their programs. A more basic question is whether there are sufficient reuse benefits within an organization/domain to warrant the associated investment in domain engineering - does a product line exist that justifies reuse costs? The solution to this problem involves bringing together leading domain analysis experts and PEO/PM representatives and managers to discuss a framework, currently under development by the DoD SRI, to guide DoD managers in applying domain analysis in their organizations and programs.The workshop brought together over fifty representatives from DoD, commercial, and academic organizations, with varied interests and perspectives on Domain Analysis, including those of methodologist, practitioner, management, and customer. The workshop approach included a Program Management panel, Domain Analysis Experts panel, a follow-up plenary discussion session and two working group sessions. In the working groups, the attendees were divided into 5 color-coded teams: Blue, Green, Gold, Orange, and Red, and were instructed to 1) identify issues in performing domain scoping, using the SRI Domain Scoping Framework as a "strawman"; and 2) make recommendations for improving the framework and applying its principles in real-world situations.The teams were chosen to provide a diversified mix of view-points. Each team included a facilitator/rapporteur (responsible for keeping the discussion activities relevant to the task at hand) and a Framework expert (who served as the technical authority on issues relating to framework content). The general team approach involved focusing on issues and actions within the individual teams and then looking across teams for common threads in the plenary sessions. The ultimate goal was to build consensus and move ahead with implementation recommendations.
Effect of laboratory facilities on computer science curriculum
Authors: Maguire R. Brien , Symes L. R.
Published: July 2004

This paper describes the effect that the introduction of computing laboratory facilities has had on the curriculum of an undergraduate Computer Science program. From its initial use by only one course, the laboratory has grown gradually both in terms of equipment and involvement with the Department's teaching program. Demands placed on the laboratory by various courses have influenced the acquisition of new equipment. Conversely, with the addition of new and varied equipment, it was possible to incorporate the laboratory into more courses. The Paper describes this interplay between the development of the laboratory and the growth of the Department. Problems such as maintenance and support staff for the laboratory are discussed whenever they have affected decisions on the use of the laboratory by a course or the selection of equipment.
“The simple internal procedure as an effective tool in the teaching and practice of structured PL/I”
Authors: Levine David R.
Published: July 2004

This paper reports on two successful curricular innovations made in the first-year PL/I programming course at Rutgers. Simple internal procedures are introduced at an early point, and used extensively thereafter; and fairly long, large programming projects are undertaken. The combined effect significantly reinforces the presentation of structured programming methodology, as well as enhancing the general educational effectiveness of the course.
ORACLE a tool for learning compiler writing
Authors: Haynes William R. , Hughes Charles E. , Pfleeger Charles P.
Published: July 2004

This paper describes a compiler called ORACLE which allows a student to examine the actions performed by a simple compiler. Two features are provided to assist the student. The first called replacement mode, provides the necessary conditions to simulate the replacement of three compiler components: symbol table management, lexical analysis, and syntax analysis. Each replacement module is monitored by ORACLE in order to detect errors and to verify correct operation. The second, a trace option, permits source statements to initiate or terminate a selective monitoring of the actions of the compiler.
Alternative teaching strategy for an introductory computer language course
Authors: Khailany Asad
Published: July 2004

Many consider that the best strategy to teach an introductory computer language course is to start programming very early in the semester. This paper discusses the drawbacks of such a strategy and presents an alternative way to teach such a course. Based on experiments the alternative strategy appears to be more effective. The advantages and outline of the alternative strategy are discussed. Furthermore, the course outline to teach a FORTRAN language based on the alternative strategy is presented.
Teaching software development using a microprocessor laboratory
Authors: Irby Thomas C.
Published: July 2004

This paper describes an attempt to provide realistic software development experience to a group of 15 students at North Texas State University. Each of the students had some previous programming experiences. Most of this experience was with higher level languages, but all students had been exposed to at least a simple assembler language, CARDIAC(1), in previous course work. The course was designed to be more like a laboratory rather than a lecture course. Scheduled lectures were held to present basic concepts, discuss the programming assignments and to provide for class discussion periods. The course grade was based on the quality of the software projects and on the ability of students to interact with others in the class. The software projects were implemented using several Motorola M6800 Microprocessors.
Recursive programming in english for freshmen
Authors: Kimura Takayuki
Published: July 2004

The importance of recursive programming in an introductory computer science course is discussed from the viewpoint that the notions of 'process', 'program' and 'processor' are fundamental in computer programming. Several examples demonstrate how the concept of recursive programming and proving program correctness can be taught to freshman business majors before they are exposed to any programming language.
On guiding the business school toward computer literacy
Authors: Costello Donald F. , Schonberger Richard J.
Published: July 2004

In colleges and unversities around the country it is common to find that needs for new courses in computing are recognized long before suitable courses are made available. This is especially true for colleges of business administration. The needs have long been obvious, but staffing such courses internally is a slow process. Some colleges of business are well served by computer science departments, but in other schools the catalyst for getting started is lacking. This paper addresses the problem by describing the development of a service course in computing offered by the Department of Computer Science for the College of Business Administration at the University of Nebraska. The approach taken to course development postulated that if a course is to appeal to a college of business administration, it must appeal to the special needs and aptitudes of the typical business student. This particular service course concentrated on special behavioral objectives: need to develop man-machine interface skills, attention to developing self-confidence and a sense of accomplishment, and understanding the information processing concepts needed in business today. The pedagogical approach to attainment of these objectives also was carefully fashioned for the given audience.

As originally conceived, the cognitive objectives of the course aimed at teaching the analytically oriented business college under-graduate how to write programs in the FORTRAN language. In addition, the student was expected to be able to read application programs in the areas of marketing, accounting, finance, operations and personnel management. The course explained how these latter applications packages aid in the management decision process. Finally, the course required that the student become more familar with the general expository material in the area of electronic data processing.
Foundations of computer science for entry-level graduate students
Authors: Weiner Leonard H.
Published: July 2004

In recent years, as colleges and universities have established new interdisciplinary programs, students have tended increasingly to combine (or switch) academic fields as they pass from one degree level to the next. This has brought about a situation in which many students try to enter new academic areas at the graduate level without having the prerequisite undergraduate course background. And so for some time now, academicians have sought to develop programs and courses that will help those students make up their deficiencies and prepare them for more advanced work, rather than lower the standards of the basic courses.

The course described in this paper was designed to cover approximately two and a half years of undergraduate computer science material in a six-credit, two-semester sequence. It is directed at graduate students from a variety of academic areas and does not require more than the usual resources for a programming course. Therefore, it should be of interest to institutions faced with limited budgets at a time when they are trying to build quality computer science graduate programs.
Program efficiency and data structures
Authors: Augenstein Moshe , Tenenbaum Aaron
Published: July 2004

Program efficiency is usually considered from the point of view of optimizing code. Selecting a proper data structure can have a remarkable effect on the efficiency of the final program. In this paper it is shown how one problem can be solved in several ways using several different data structures. The efficiency of the programs depend on the data structures selected.
Experiments with file accessing techniques
Authors: Barnes G. Michael
Published: July 2004

This paper describes a series of experiments designed to be carried out by students in an introductory file processing class. The experiments were class assignments that involved student teams implementing various file accessing techniques. For each implementation, teams had to run a set of benchmark tasks and obtain software metrics. In addition each team was required to write a report analyzing the results of their experimentation. Our four objectives were to provide students with experiences in: file processing, team programming dynamics, generating software metrics, and the experimental evaluation of different solutions to a set of problems.
An assessment of the use of microcomputers to support computer science instruction
Authors: Horn Lister W.
Published: July 2004

The use of microcomputers to support a junior college curriculm in computer science is described and evaluated. The microcomputer has been found to be useful to support beginning level students programming in BASIC. Use of the micro to support other courses/languages has been hampered by lack of common editors, difficulties in securing needed compilers, problems with maintenance and security, the inability to share software with potential users and lack of support in the professional community for the concept. A mixture of micro systems and time sharing systems is recommended.
The teaching of assembly language to computer science and computer engineering majors
Authors: Heuring Vincent P.
Published: July 2004

Progress in the fields of computer science and computer engineering has put considerable strain on academic departments to keep the curricula abreast of the "state of the art." This is a constant demand to modernize courses and programs. This usually takes the form of continually adding new courses, and including new material in existing courses.Our solution at the University of Colorado at Boulder has been to share the curriculum between the Departments of Computer Science and Electrical and Computer Engineering wherever possible. The teaching of Assembly Language programming is an example of a course taught to both Computer Science and Electrical and Computer Engineering majors. The course has two semesters of Pascal programming as prerequisites.
Experiment in programming laboratory
Authors: Fajuyigbe O. , Ogbokor D. L.
Published: July 2004

An implementation of a programming laboratory is described. Under this implementation, the emphasis is on the motivation and objectives, which are closely patterned after the ACM Curriculum '78 requirements. The resultant effects on students' performances and attitudes to programming are described. An achievement of this implementation is the systematic breakdown of students' psychological fear of programming and program debugging.
Identifying predictors of programming skill
Authors: Whipkey Kenneth L.
Published: July 2004

. . . We have seen that computer programming is an art, because it applies accumulated knowledge to the world, because it requires skill and ingenuity, and especially because it produces objects of beauty -- Donald E. Knuth [1].
The uses of program reading
Authors: Deimel Lionel E.
Published: July 2004

It is argued that program reading is an important programmer activity and that reading skill should be taught in programming courses. Possible teaching methods are suggested. The use of program reading in test construction and as part of an overall teaching strategy is discussed. A classification of reading comprehension testing methods is provided in an appendix.
A graduate course in database management
Authors: Purdy J. Gerry
Published: July 2004

Database management is a new and fast growing discipline within computer science. Curriculum 68 did not include database management in its recommended courses. With the advent of large direct access secondary storage devices to hold large volumes of information referred to as a database and with the need to manage that storage efficiently and conveniently, there has developed the computer science discipline of database management. This paper describes a course in database management, including a course catalog overview, course outline, and bibliography. This paper could serve as a guideline for future ACM Curriculum Committee on Computer Science recommendations in database management.
A decision making environment in the classroom
Authors: Yaverbaum Gayle J.
Published: July 2004

Management Information Systems (MIS) books usually survey decision theory and behavioral issues as they apply to the information system's environment. The material covered is theoretical in nature leaving the student with little awareness of the importance of individual decision processes and information usage.In order to link this theory with the real world environment, I have developed a simulation which has been tested in several sections of an MBA course in Management Information Systems. This paper describes that simulation.
Introductory concurrent programming with Modula-2
Authors: Lees B.
Published: July 2004

Modula-2 can be a useful language for teaching the principles of concurrent programming. Although the language does not provide any particular process synchronisation primitives, its facilities for defining user modules and for low-level machine access enable it to be extended to support a variety of concurrency mechanisms. A description is given of how Module-2 may be used to provide a concurrent programming environment to give practical support to an undergraduate course in operating systems.
A hypothetical computer configuration
Authors: Reisman Sorel
Published: July 2004

The following is a suggestion for the format of a 12-digit pseudo-computer word. This scheme can be used for instructors of introductory computer science courses to discuss more effectively the relationship between hardware and software at the machine language level as well as between high level and low level languages.
A guide to the literature for undergraduate and graduate courses in numerical mathematics
Authors: Ginsberg Myron
Published: July 2004

This report contains a compilation of selected references which have been useful in the preparation of lectures and in assigning outside reading for the numerical mathematics courses taught in the Department of Computer Science at Southern Methodist University. Introductory remarks describe the environment in which the courses are taught as well as criteria for reference selection. The references are divided up into eleven sections:1. General Texts; 2. Numerical Approximation, Interpolation, and Extrapolation; 3. Numerical Integration and Differentiation; 4. Numerical Linear Algebra; 5. Numerical Solution of Differential Equations; 6. Software Influences; 7. Symbolic and Algebraic Manipulation; 8. Computational Complexity; 9. Hardware Influences; 10. Computer arithmetic; 11. Recommended Periodicals. In addition, many of the references are placed in one or more of three categories: generally-recognized classics in a subject area; relatively applied presentations; works containing extensive bibliographical material. Brief descriptions of the courses which utilize the references are included along with a list of sources for research and technical reports.
An interactive turning/post/mixed machine simulator
Authors: McDaneld T. G. , Schweppe E. J.
Published: July 2004

An interactive system has been developed which makes it convenient to prepare, execute, and modify programs for Turing, Post, or mixed machines. The system runs on a Datapoint 2200 intelligent terminal with CRT display, keyboard, and dual tape cassette drives. Machine type, legal symbols, program or rules, 'tape' contents, and other initial parameters are input from the keyboard and shown on the display. During 'execution' the sixty-four characters about the 'read head' are also shown on the display and the speed of the execution can be dynamically modified (including single-stepping) or interrupted. Tape cassettes are used to make the 'tape' of the machine effectively infinite relative to its speed. Such pedagogical simulators should increase understanding and/or reduce frustration for students being introduced to these theoretical machines. They can also be used to verify moderately complex computations with such machines. This paper deals with the organization, utilization, and possible extensions of the system.
An experiment in teaching programming languages
Authors: Mavaddat F.
Published: July 2004

To alleviate some difficulties involved in teaching programming in an introductory course, a simple programmable machine of mechanical nature with a small set of very tangible instructions is proposed. All the necessary concepts such as sequencing, looping, sub-routines and declarative statements are introduced in the framework of this machine. A number of examples are discussed which illustrate the use of this programmable machine. It is argued that a simplified version ofmost programming language is easily teachable by relating the simplified language to the concepts developed for this machine. A simplified version of Fortran is treated as an illustration.
Some general observations on Ph.D. production in computer science
Authors: Traub J. F.
Published: July 2004

Based on remarks made as a participant of Panel on the Ph.D. Production Rate, Meeting of Heads of Ph.D. Computer Science Departments, Snowbird, Utah, July 1-2, 1974.
Reading Fortran
Authors: Lancaster Ronald L. , Thomas Richard T.
Published: July 2004

A new type of computer science service course is described which was developed in response to a request from several natural science departments. The goal of the course is to give advanced students the ability to read and understand existing Fortran programs. An evaluation of the course is also given.
Applying direct manipulation concepts
Authors: Iseki Osamu , Shneiderman Ben
Published: July 2004

Software engineers are often called upon to design user interfaces, but strategies and guidelines are only beginning to emerge. Shneiderman (1983) introduced the term "Direct Manipulation" to describe user interfaces which have:1) continuous representation of the objects of interest.2) physical actions (movement and selection by mouse, joystick, touch screen, etc.) or labeled button presses instead of complex Syntax.3) rapid, incremental, reversible operations whose impact on the object of interest is immediately visible.4) layered or spiral approach to learning that permits usage with minimal knowledge.The concepts of direct manipulation has been applied in some distinctive systems such as XEROX STAR and APPLE Macintosh, and many application software products such as spread sheets, word processors, drawing tools, desk-top managers, etc.However, the basic software of personal computers, the operating system, is still often based on command language concepts. This paper describes DMDOS (Direct Manipulation Disk Operating System), that we designed by applying the concepts of direct manipulation. to MS-DOS on the IBM PC.
The LIFESPAN system
Authors: Pirie I. W.
Published: July 2004

In your October '85 edition you published an excellent paper entitled, The Evolution of Configuration Management, by Rudy Bazelmans.Unfortunately the article did not cover any material describing UK developments, so I have taken the liberty of providing some information on the development of our automated Configuration Management system called LIFESPAN.
Into the fourth dimension—an introduction to dynamic analysis and design
Authors: Botting Richard J.
Published: July 2004

The author critiques the three-dimensional approach to systems design presented by Mastro and proposes a correction. He also shows that the time dimension is not modeled and that it should be. He presents notations for documenting dynamics and shows how these structures can be utilized in the design of software.
Software maintenance
Authors: Parikh Girish
Published: July 2004

U.S. programmers shave days off software development time while squandering weeks on ad-libbed software maintenance. Soviet and Japanese companies have a jump on developing rigorous methods.
Practical applications of CASE tools on DoD projects
Authors: Polack Alexander J.
Published: July 2004

The use of software in the defense--related systems has increased substantially in the last decade. The Department of Defense has developed a comprehensive standard for software development. Known as DoD-STD-2167 A, its use is now mandated for all DoD projects. CASE tools are uniquely positioned to help DoD contractors in fulfilling the requirements of the standard. This article discusses some of the practical aspects of CASE technology applications in the DoD contracting environment. An example, using Software Requirements Analysis activity, is given.
A scenario-based methodology for conducting requirements elicitation
Authors: Holbrook H.
Published: July 2004

Requirements analysis is the process of identifying a user's needs and determining what to build in an a system. Within requirements analysis is the process of
requirements elicitation
in which tacit information about "what to build" is obtained from the user and his environment. Here, we will describe a methodology, dubbed
Scenario Based Requirements Elicitation
(SBRE), which structures the early interaction between users and designers in order to quickly develop a set of initial requirements. The methodology features the parallel development of requirements and a high-level design, the use of scenarios to communicate the behavior of a design, an evaluation function to assess the suitability of the design, and an issue base with which to maintain the issues that arise during the elicitation process.
Issues in transfer of skills in software engineering training
Authors: Delgado Joseph F.
Published: July 2004

This paper summarizes issues of skills transfer in current software engineering training, under the categories of management support, training resources, scheduling, training process, and incentives.
Ordered mutation testing
Authors: Duncan I. M. M. , Robson D. J.
Published: July 2004

Mutation Analysis is an established technique for test data generation and source code testing. Developed systems have concentrated on applying some or all of the possible mutant operators (perturbations) to the submitted code. Recent work tackled the scheduling of mutant program execution on vector processors or a Hypercube as a cost reduction scheme. This paper discusses a logical mechanism of impact driven testing in order to acheive full mutation testing with reduced overheads regardless of implementation. Guiding the mutant generation by block impact together with mutant operator heirarchies and a test data coverage scheme enable an efficient tool to be constructed.
Experiences with C++ and object-oriented software development
Authors: Wybolt Nicholas
Published: July 2004

Object-oriented
is a very hot topic and buzzword both in academia and industry. There are object-oriented analysis and design techniques, object-oriented languages and databases, and so on. Many people see the letters "OO", attach a "G" to the front, and a "D" to the back and deem it to be "GOOD"---without much consideration for what it means in the software life cycle.This paper discusses the on-going (3+ years) object-oriented re-design and re-implementation in C++ of a commercial CASE tool. Specifically, why an object-oriented approach was chosen and the implications and collective experiences of this approach. In addition to the anticipated benefits, much of what we experienced was unforeseen and unexpected.
Domain analysis
Authors: Prieto-Díaz Rubén
Published: July 2004

The objective of this paper is to provide a brief introduction to the area of domain analysis as seen from the software engineering perspective. The approach is by illustrating the concepts through selected reported experiences and to point out the specific characteristics of these experiences that relate to domain analysis. Definitions are introduced after the examples to avoid over explaining the concepts. A model for the domain analysis process is also proposed. The concept of a library based domain infrastructure is introduced as an attempt to show how domain analysis is integrated into the software development process.A second objective in this paper is to give a perspective on some of the research issues facing domain analysis. The nature of the process calls for a variety of multidiciplinary issues ranging from knowledge acquisition and knowledge representation to management and methodologies to cultural and social questions.
Providing mark-up and feedback to students with online marking
Authors: Mason David V. , Woit Denise M.
Published: July 2004

Online marking of assignments can lead to improved marking consistency and integrate well with on-line mark reporting. It can also be easier for the marker. Unfortunately, most such systems do not include good feedback mechanisms for the students. This paper describes an environment that provides online marking with convenient, structured and detailed feedback.