Mark Weiser University of Maryland
|
|
- Preston Baldwin
- 6 years ago
- Views:
Transcription
1 Human Aspects of Computing Programmers Use Slices When Debugging Mark Weiser University of Maryland Henry Ledgard Editor Computer programmers break apart large programs into smaller coherent pieces. Each of these pieces: functions, subroutines, modules, or abstract datatypes, is usually a contiguous piece of program text. The experiment reported here shows that programmers also routinely break programs into one kind of coherent piece which is not coniguous. When debugging unfamiliar programs programmers use program pieces called slices which are sets of statements related by their flow of data. The statements in a slice are not necessarily textually contiguous, but may be scattered through a program. CR Categories and Subject Descriptors: D.2.5 [Software Engineering]: Testing and Debugging--debugging aids; H. 1.2 [Models and Principles]: User/Machine Systems-human information processing; D.2.7 [Software Engineering]: Distribution and Maintenance--corrections, enhancement, restructuring General Terms: Experimentation, Human Factors, Languages Additional Key Words and Phrases: program decomposition, slice Introduction Experts differ from novices in their processing of information. This difference has been studied in chess [2, 4], physics [3, 1], and computer programming [12, 16]. An expert in physics problem-solving encodes and processes physics problems in terms of laws such as conservation of energy or Newton's second law. A chess expert processes only reasonable positions when thinking about a game. An expert computer programmer encodes and processes information semantically, ignoring programming language syntactic details [17]. This work was supported in part by the Air Force Office of Scientific Research Grant no. F C-1, by National Science Foundation Grant no. MCS , and by a grant from the General Research Board of the University of Maryland. Computer time was provided in part by the Computer Science Center of the University of Maryland. Author's Present Address: Mark Weiser, Computer Science Department, University of Maryland, College Park, MD Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and/or specific permission ACM 1-782/82/7-446 $.75. How do expert programmers encode and process information for program debugging? Gould [7] reports that many programmers start debugging by carefully reading the faulty program from top to bottom, without ever bothering to look closely at the erroneous program output. Dijkstra [5] and others have proposed that debugging time could be shortened by rigorous reasoning about a program's correctness. However, perhaps the most basic method of debugging is to start at the point in the program where an error first becomes manifest, and then proceed to reason about the sequence of events (as verified by the program text) that could have led to that error. Since this reasoning generally moves through the program's flow-of-control backwards (compared to its ordinary execution sequence), this debugging strategy is called working backwards. Gould [7] and Lukey [11] report instances of programmers working backwards from an error's appearance, attempting to locate its source. Supporting this, Sime, Green, and Guest [2] report that debugging is better aided by program constructs describing program state than by the usual program constructs describing flow-of-control. A flow-of-control construct (such as ELSE) can be understood only in context (with its accompanying IF) while program state constructs (Sime, Green, and Guest use ELSE (assertion)) have meaning in isolation and hence are more useful while working backwards. Zelkowitz [27] reports on the efficacy of a interactive debugger capable of backwards execution. Less rigorously, programmers generally accept working backwards as an important debugging method [15], but there has been tittle investigation of the working backwards process or its advantages for the programmer. The results reported here clarify this process by showing that while working backwards, programmers construct in their minds a specific kind of abstract representation of the program being debugged. Program Slicing Tracing backwards from a particular variable in a particular statement to identify all possible sources of influence on the value of that variable often reveals that many statements in a program have no influence. The process of stripping a program of statements without influence on a given variable at a given statement is called program slicing. A brief summary of automatic program slicing follows. More details may be found in [21, 22, 23]. Proofs of many of the assertions below are in [24]. Example slices are shown in Fig. 1. Definition: An elementary slicing criterion of a program P is a tuple (i, V), where i denotes a specific statement in P and V is a subset of variables in P. An elementary slicing criterion determines a projection function from a program's state trajectory, in which 446 Communications July 1982
2 Fig. I. A Program and Some Program Slices. The original program: 1 2 READ(X, Y) 3 TOTAL :=. 4 SUM :=. 5 IFX_<I 6 THEN SUM := Y 7 ELSE 8 READ(Z) 9 TOTAL := X*Y 1 END 11 WRITE(TOTAL, SUM) 12 END. Slice on the variable Z at statement 12. READ(X, Y) IFX_I THEN ELSE READ(Z) END. Slice on the variable X at statement 9. READ(X, Y) END. Slice on the variable TOTAL at statement 12. READ(X, Y) TOTAL := IFX_<I THEN ELSE TOTAL := X.Y END. only the value of variables in V just prior to the execution of i are preserved. Definition: A slicing criterion is a set of elementary slicing criteria. The projection function associated with a slicing criterion is the union of the projection functions of its elementary slicing criteria. Definition: A slice S of a program P on a slicing criterion C is any executable program with the following two properties. (1) S can be obtained from P by deleting zero or more statements from P. (2) Whenever P halts on an input I with state trajectory T, then S also halts on input I with state trajectory T', and PROJ(T) = PROJ(T'), where PROJ is the projection function associated with criterion C. There can be many different slices for a given program and slicing criterion. There is always at least one slice for a given slicing criterion--the program itself. Slices are most useful for understanding a program when they are considerably smaller than the original program. One way to automatically find small slices is by dataflow analysis [8]. The author has built several automatic slicers based on dataflow analysis and finds that they generate tolerably small slices in most cases. For what follows, "slice" will refer to a dataflow and control-flow generated slice. (See King [9] for a symbolic execution approach to slicing-like program decomposition.) Hypothesis The hypothesis about debugging and slicing to be tested is (H1): "... debugging programmers, working backwards from the variable and statement of a bug's appearance, use that variable and statement as a slicing criterion to construct mentally the corresponding program slice." The debugging and slicing hypothesis is in contrast to the contiguous chunk hypothesis (H2): "... programmers look at code only in contiguous pieces." Atwood and Ramsey [1], for instance, assume that the meaningful chunks of programs are small contiguous code sequences. Slices are generally not contiguous pieces, but contain statements scattered throughout the code. As the results below show, programmers remembered contiguous code as well as but no better than relevant slices. Method The experiment to test H1 against H2 took the following form: (1) have programmers debug three programs; (2) after completing all three programs, see if the programmers remember various code fragments embedded in the programs--particularly the slice relevant to the bug in each program. If the programmers did slice, then their memories for the relevant slices should be at least as good as their memories of contiguous code, and somewhat better than their memories of other noncontiguous code. One procedure for testing program comprehension is to have programmer's memorize and then reconstruct the program [ 18]. Programmers were not asked to reconstruct slices in this experiment because explaining about slices would have biased the results and because reconstruction might be an insensitive detector of a weak and transient memory for slices. Instead programmers were required only to recognize the slices. This procedure also has the advantage of sometimes detecting knowledge that participants are unaware they possess [ 13, 14]. The "Materials" section describes the three programs, their bugs, and the code fragments embedded in each program for which the programmers' memories were tested. The "Participants" section describes the group of experienced programmers who participated in this study, and the "Procedure" section describes the instructions the participants received and the manner of presenting the problems. Materials The programs to be debugged were designed to appear to be difficult to debug, but in reality had only simple errors. The programs had to appear difficult because Gould and Drongowski [6] found that program- 447 Communications July 1982
3 Table I. Program Bugs. Program Original Code Bug EVADE LEFTOT:=LEFTOT-HORT.THRUST LEFTOT'=HORT*THRUST TALLY SCNT:=SCNT+ 1. SCNT:=SCNT- 1. PAYROLL EXEMPTHOURS'=OVERTIMEPAY:=. OVERTIMEPAY:=. mers approach debugging hierarchically, resorting to a more difficult strategy only when easier ways fail to work. The present experiment used difficult looking programs so that programmers, expecting the worst, would initially choose a more difficult but reliable debugging strategy. Slicing was expected to be such a strategy. The errors were constructed to be easy to find so that the entire experiment could be completed in less than an hour. Each debugging task was on a program of from 75 to 15 lines of Algol-W [26], with at least one major subroutine that performed most of the computation. In this subroutine, a single statement was changed to cause a bug (see Table I). One of the programs, TALLY, was taken from the IBM scientific subroutine package. It computes various statistics about a set of variables and displays poor coding practices such as GOTO's and nonmnemonic variable names. The other two programs, PAYROLL and EVADE, were written specifically for this experiment. EVADE is a simulation of an airplane making random turns. PAYROLL computes salaries and deductions for two kinds of employees. EVADE and PAYROLL are both well structured. They are well modularized, use good control structures, and have mnemonic variable names. Each has global comments only. After completing all three programs, participants were shown various fragments of code drawn from the three programs. Each program contributed each of the following five fragments, except TALLY which had no irrelevant contiguous fragment, making 14 fragments altogether. Fragments were truncated at top and bottom to be about ten lines long, although fragments with lots of 's or END's were a little longer. As Table II shows, fragments often had several statements in common. (1) Relevant Slice. A set of statements necessary for understanding the bug, usually near the faulty statement, taken from the slice on the variable and write statement whose execution first caused an error to appear in the program output. (2) Relevant Contiguous. A region of contiguous code, overlapping the relevant slice fragment. (3) Irrelevant Contiguous. A region of contiguous code, not overlapping the relevant contiguous or the relevant slice fragments. (4) Irrelevant Slice. A set of statements near the faulty statement, taken from a slice on a variable not directly related to the bug. (5) Jumble. Every third or fourth statement in the program, minimally modified to display reasonable syntax. There were several problems with choosing fragments for the specific programs used. EVADE had several sections of code all alike and all adjacent, which consisted of a test followed by a subroutine call, and the faulty statement was located in one of these sections. In order to focus on algorithmic rather than syntactic memories the two relevant fragments were chosen from a more computational portion of EVADE's main subroutine. PAYROLL had a rather short main subroutine and so its fragments, uniquely among the three programs, crossed subroutine boundaries. As the results show, this may have been too severe a test of the programmers' integrating abilities. A general problem in constructing relevant fragments for all three programs was whether the two relevant fragments should be made to overlap or be disjoint. The choice was made to overlap the fragments so that their relevance would more likely be similar. However, this Table II. Overlap I and Correlations 2 of Some Fragments. Relevant sequence EVADE TALLY PAYROLL Overlap Correlation Overlap Correlation Overlap Correlation VS. Relevant slices Irrelevant slices Jumble Irrelevant sequence VS. Relevant slices Irrelevant slices l 1 Jumble Overlap is the fraction of statements shared by the two fragments. 2 Correlation is the Spearman's rank correlation coefficient [19], which has critical value.37 for a significance level of Communications July 1982
4 raised the possibility that participants would recognize relevant slice fragments merely because of the overlap with relevant sequential fragments. However, a comparison of fragment overlap with correlations of fragment memory (see Table II) makes it appear unlikely that this happened. A possible source of error in testing for recognition of programs is programmers' memory for detail. Successful debugging often depends upon noticing significant details such as a counter off by one or a line containing one blank instead of two. This kind of memory could throw results awry because experts might recognize code fragments by certain idiosyncratic details. To get at programmers' semantic understanding of the fragments apart from any memory of syntactic details, syntactic changes were made in the appearance of each fragment. Variables and constants in the fragments were renamed as single letters followed by a unique number. For variables the letter was the variable's original first letter. For constants the letter was X. Indenting was adjusted from the original program to a form internally consistent with each fragment. Two judges, familiar with the experimental design but unfamiliar with the specific programs used, looked at all the fragments. They rated the fragments for inherent plausibility as code sequences and found them approximately equal. This provided a check on any inherent bias in the particular fragments chosen, apart from their use in these programs. As a check on how well these programs and bugs represented all programs and bugs, at the end of the experiment participants rated each program and each bug for its typicalness in Algol-W programming. Ratings were on a four-point scale, from "very typical" to "not at all typical." "Not sure" was also permitted as an answer, but was not used. Such ratings do not show that any program is typical, even if there were such a thing as a typical program. But they can and do show that no program was especially atypical, and thus there is no reason to expect on this basis that the results do not generalize from the three programs used here to all programs. Table III. Demographics of Participants. Standard Question Min Max Median Mean Deviation FTE months of programming Number of software courses taken FTE months of user counseling Number of software courses taught Percent experience with Algol-W "Ever heard of slicing? ''l A 1 meant "know enough to use in my work," a 7 meant "know something about it," a 3 meant "have heard the term," and a meant "never heard of it." Participants The participants in the experiment were experienced Algol-W programmers. They were chosen from Computer and Communication Sciences Department graduate student teaching assistants and Computing Center programming and counseling staff, all from the University of Michigan in Ann Arbor. Out of 31 potential participants with Algol=W experience, 26 volunteered. Four of these participated in pilot studies and one did not follow instructions in the actual experiment, leaving 21 final participants. The participants' background is summarized in Table III. Procedure Each participant signed a consent form, filled out a questionnaire about his or her programming experience, and then began the experiment. The first eight participants carded out the study with the experimenter present. Since none of those eight had any questions or comments during the study, the remaining participants were permitted to perform the experiment at home during an uninterrupted hour. One participant did not follow the instructions and his data were not used. Each participant was given all three programs to debug, in random order. Each program began with a brief description of what it was supposed to do followed by a sample run which revealed the bug followed by the program text itself. Participants could refer to a program's description and output any time they were working on that program. After finding a correction to each program, participants recorded the time and then were shown the correct answer. They were told not to look back at a program after beginning work on the next. After completing all three debugging tasks, participants were told they could take a short break before being shown the code fragments. They were asked to rate each fragment for how sure they were it had been used in one of the three programs. The rating scale is shown in Fig. 2. The instructions described the fragments as algorithms with changed variable names, truncated at top and bottom, all of whose individual statements were taken from the three programs. Participants were encouraged to give their first impressions of each fragment rather than use detailed analyses. Code fragments were presented in random order, each on a separate page with its rating scale. Participants were told not to look back either at the programs or at previously rated code fragments. After rating all 14 fragments, participants concluded the experiment by rating each program and its bug for typicalness. Results All 21 participants found the bugs in TALLY and EVADE, but only 17 found the bug in PAYROLL. The mean time to debug each program is shown in Table IV. 449 Communications July 1982
5 Fig. 2. An Example Code Fragment. This fragment is a portion of the relevant slice for program PAYROLL. The statements were originally at line numbers 47, 49, 51, 14, 17, 19, 21, 22, 6, and 65, respectively. Part A shows the fragment with its rating scale as presented to the participants. Part B shows the same fragment before changing variable names. A T1 := Xl; FOR E1 := X2 UNTIL N1 DO RI(N2, H1, P1, E2); IF MI > X3 THEN IF E2 THEN E3 := (H1 - X3) T1 := T1 + E3; i'-i almost certainly used al--* I probably used 'l--~ probably not used i J almost certainly not used 13 TOTAL_EXEMPT : =.; FOR EMPLOYEE := 1 UNTIL NUM_EMPLOYEES DO BEAD(NAME,HOURS,PAY RATE,EXEMPT); IF HOURS > 4. THEN IF EXEMPT THEN EXEMPT_HOURS := (HOURS-4.O) TOTAL_EXEMPT := TOTAL_EXEMPT + EXEMPT_HOURS Time to debug showed a significant correlation only with the particular program being debugged. The ratings for typicalness given by participants to the programs and bugs are shown in Table V. There seemed to be a tendency for low typicalness ratings to be correlated with slicing (see Fig. 5 and discussion below.) The hypothesis that programmers mentally construct slices when debugging (HI) was tested by comparing the ratings given the relevant slice fragments to the ratings given the other fragments. A two-way analysis of variance using Friedman's test [19] indicated that there was an overall difference in the ratings of the different fragments. Pairwise comparisons of ratings were then made in two ways: the first by pooling ratings for all three programs, and the second by looking at ratings program by program. Ratings across all three programs were pooled by considering the total number of times participants recognized each kind of code fragment. Ratings of "probably used" and "almost certainly used" were considered to be recognition. Under this scheme, the relevant slice Table IV. Debugging Times (minutes). Standard Program Mean Deviation TALLY EVADE PAYROLL was recognized 54 percent of the time, while the irrelevant slice and the jumble were recognized only 28 percent and 2 percent of the time, respectively. (See Fig. 3.) Using the Wilcoxon matched-pairs signed-ranks test [ 19], the difference between relevant slices and irrelevant slices is significant at the.3 level, and the difference between relevant slices and jumbles is very significant at the.5 level. To evaluate results program by program, participants' answers were converted to a one to four ordinal scale. Mean (median) scores, given in order for the relevant slice, the irrelevant slice, and the jumble were: for EVADE, 2.6 (3), 2.1 (2), and 1.6 (1); for TALLY, 3. (3), 2. (2), and 2. (1); for PAYROLL, 2.4 (2), 2.1 (2), and 1.6 (2). Wilcoxon's matched-pairs signed-ranks test was used to test for significant differences in rankings for the fragments. Differences between relevant slice scores and jumble scores were very significant at the.2, and.3 levels for EVADE and TALLY, respectively, and marginally significant at the.8 level for PAYROLL. Differences between relevant slice scores and irrelevant slice scores were marginally statistically significant for EVADE at the.8 level, very significant for TALLY at the.6 level, and not at all significant for PAYROLL. (See Fig. 4.) Because the relevant slice fragment overlapped the relevant sequential fragment in each program, this experiment gives no absolute assurance that relevant slices were not recognized only because of that overlap. However, Table II indicates that participants were probably not recognizing the nonsequential fragments based on their overlap with sequential fragments. It shows correlation scores (computed using the Spearman rank correlation [19]) between each sequential fragment and the other fragments in a program. The generally low correlations and their indifference to overlap indicate that individual participants probably did not rate fragments based on similarity to a sequential chunk. There was no statistically significant difference between participants' memory for the relevant slice vs the relevant contiguous code or between the relevant slice and the irrelevant contiguous code. There was also no Table V. Typicalness of Programs and Bugs, N = 171 Program Rating Bug Rating Debugging Standard Standard Task Mean Deviation Median Mean Deviation Median EVADE TALLY PAYROLL i Typicalness was rated by all but the first four participants, using a 1 to 4 scale where 4 meant "very typical" and 1 meant "not at all typical." 45 Communications of the ACM July 1982 Volume 25 Number 7
6 Fig. 3. Percent Recognition of Code Fragment Type. The totals exclude the four participants who did not find the PAYROLL bug. C._o 1 t- O~ O ~ 5 e- " ~ H " II ~ oo ~-- r'- o 1-.,,~ -..-.~ t- Type of Algorithm statistically significant difference between any component of participants' experience and their memory for different kinds of code fragments. Discussion The results are evidence that programmers slice when debugging. However, EVADE and PAYROLL do not show this as clearly as TALLY, and it is useful to try to account for TALLY's exceptional performance. Before discussing TALLY, the data compel asking why contiguous code far away from the bug was recognized so well. This was very likely an artifact of the small program size, which restricted the area from which irrelevant code could be drawn. The irrelevant contiguous fragment was often very near the output statements which wrote the erroneous variable values. Therefore, participants were very likely to have looked at this region of the program first and their ratings reflect this. What was exceptional about TALLY? Two factors are supported by the data. TALLY took significantly Fig. 4. Mean Recognition Scores for Code Fragments. (good) 4 - E longer to debug than the other programs, implying it was more difficult. TALLY was also the only unstructured program with many GOTO's, which would have contributed to its difficulty. Thus, EVADE and PAYROLL may have been too easy to debug or they may not have appeared sufficiently difficult to elicit a slicing strategy from some participants. A second exceptional factor may have been participants' familiarity with programs of this type. Slicing is likely a difficult mental task, useful primarily for programs of uncertain structure and purpose. An unfamiliar program is therefore more likely to be sliced. Evidence for this is that the group of 12 participants who rated EVADE less than very typical also rated the relevant slice higher than the irrelevant slice (see Fig. 5), a result significant at the.1 level by Wilcoxon's test. Implications Slicing may be put to practical use. For instance, an automatic slicer could be used interactively by a programmer to ask for statements which could be the source of erroneous behavior. Slicing could also be the basis of program complexity measures, by examining the number of distinct slices in a program or their relative distribution through the code. An automatic slicer is not difficult to build and various applications are now under investigation [24, 25]. As an example of some slices from real programs, Fig. 6 shows slices from three compilers, using slicing criteria automatically generated from each variable at every "write" statement. That is, if statement i in the program wrote variables X, Y, and Z, then slices were found for criteria (i, X), (i, Y}, and (i, Z); this was done for every write statement. Using this method, many slices end up being nearly the same, and so only slices which differed by more than ten statements were consid- Fig. 5. Mean Recognition Scores of EVADE, N = 12. Mean scores are shown for participants who rated EVADE less than very typical, i.e., between 1 and 3 on the scale shown in Table V. (good) 4 (/) Z (/3 8 3 U n~ g ~E ( poor ) Tally "" Payroll I I I I I e" t.) t" ~ r" t~.~ ~ ~o oo o: >" E o 8 Type of Fragment 8 g =E (poor) I I 4-- ~lj t" O > a) n~ I I I I C :3 " :3 C O OO OO O"-.D >~ >= >u> E O ~- O O ~O Type of Fragment 451 Communications of the ACM July 1982 Volume 25 Number 7
7 Fig. 6. Examples of Slices from Student Written Compilers. (Only distinct slices are shown.) No. of Statements Approximate Contents COMPILER 1, 554 statements. Slices: 474 Interpreter output. 429 Scanning and high-level parsing. 8 Constant messages. 149 Error: no program. 432 Symbol table listing. 453 Object code listing COMPILER 2, 662 statements. Slices: 563 Interpreter execution error. 288 Miscellaneous Error: no "end" card. 184 Miscellaneous Flow-of-control statements. 79 "read" and assignment. 125 Expressions. 49 Symbol table search. 8 Array subscript parsing. 14 Memory trace. 55 Error: procedure syntax. COMPILER 3, 497 statements. Slices: 476 Scanning, parsing, interpreter. 2 constant messages. 11 Memory dump headers 481 Memory dump. ered to be distinct. Figure 6 shows only the distinct slices. Recall that each slice, executed on the compiler's input data, accurately reproduces its portion of the compiler's output. The "approximate contents" column of Fig. 6 represents the author's best guess of the purpose of the code in each slice. Slicing is now reinvented by every programmer who uses it. Beginning programmers taught the concept of slicing could avoid this reinvention and could more rapidly improve their debugging skills. The idea of ignoring irrelevant code also goes well with using diagnostic write statements to narrow in on the cause of a program failure. Conclusion When debugging, programmers view programs in ways that need not conform to the programs' textual or modular structures. In particular, the statements in a slice may be scattered throughout the code of the larger program and yet experienced programmers routinely abstract the slices from a program. Understanding slicing may be useful in producing debugging and maintenance aids and in training programmers, and further research on slicing may lead to a more complete understanding of the many skills that make up debugging ability. Acknowledgments. Ben Shneiderman and a very helpful referee contributed substantially to the clarity of this paper. With his constant encouragement, Stephen Kaplan helped this experiment become a reality. Received 3/81; revised 6/81; accepted 7/81 References 1. Atwood, M.E. and Ramsey, H.R. Cognitive structures in the comprehension and memory of computer programs: An investigation of computer program debugging. TR-78-A21, U.S. Army Research Institute for the Behavioral and Social Sciences, Alexandria, Virginia, August, Chase, W.G. and Simon, H.A. Perception in chess. Cognitive Psychology 5, 4, Oct 1973, Chi, M.T.H. and Glasser, R. Encoding process characteristics of experts and novices in physics. Symposium on Process Models of Skilled and Less Skilled Behavior in Technical Domains. American Educational Research Association, April, DeGroot, A.D. Thought and Choice in Chess. Mouton Press, The Hague, Dijkstra, E.W. Correctness concerns and, among other things, why they are resented. Proc. Int. Conf. on Reliable Software June 1975, SIGPLAN Notices 1, Gould, J.D. and Drongowski, P. An exploratory study of computer program debugging. Human Factors 1, 6, June 1974, Gould, J.D. Some psychological evidence on how people debug computer programs. International J. of Man-Machine Studies 7, 1, Jan 1975, Hecht, M.S. Flow Analysis of Computer Programs. North- Holland, New York King, J. Program reduction using symbolic evaluation. Software Engineering Notes 6, 1, (Jan. 1981) ACM SIGSOFT. 1. Larkin, J., McDermott, J., Simon, D.P., and Simon, H.A. Expert and novice performance in solving physics problems. Science 28, June 2, 198, Lukey, F.J. Understanding and debugging programs. International J. of Man-Machine Studies 12, 2, (Feb. 198), McKeithen, K.B. Assessing knowledge structures in novice and expert programmers. PhD Thesis, University of Michigan, Ann Arbor, MI, Posner, M.I. and Keele, S.W. On the genesis of abstract ideas. 3". of Experimental Psychology 77, 3, July 1968, Posner, M.I. and Keele, S.W. Retention of abstract ideas. J. of Experimental Psychology 83, 2, Feb. 197, Schwartz, J.T. An overview of bugs, In Debugging Techniques in Large Systems. Edited by Randall Rustin. Prentice-Hall, Englewood Cliffs, NJ, Shneiderman, B. Exploratory experiments in programmer behavior. International J. of Computer and Information Sciences 5, 2, April 1976, Shneiderman, B. and Mayer, R. Syntactic/semantic interactions in programmer behavior: A model and experimental results. International J. of Computer and Information Sciences 7, 1979, Shneiderman, B. Software Psychology: Human Factors in Computer and Information Systems, Winthrop, Reading, MA, Siegel, S. Nonparametric Statistics for the Behavioral Sciences. McGraw-Hill, New York, Sime, M.E., Green, T.R.G., and Guest, D.J. Scope marking in computer conditionals--a psychological evaluation. International J. of Man-Machine Studies 5, 1973, Weiser, M. Program slices: Formal, psychological, and practical investigations of an automatic program abstraction method. PhD Thesis, University of Michigan, Ann Arbor, MI, Weiser, M. The slicing abstraction in software production and maintenance. Reliable Software Systems Group Technical Memo (RSSM), University of Michigan, Ann Arbor, Weiser, M. Theoretical foundations of program slices. Reliable Software Systems Group ( RSSM) Technical Memo 69, University of Michigan, Ann Arbor, MI Weiser, M. Program slicing. Proceedings of the Fifth International Conference on Software Engineering, San Diego, CA, March, Weiser, M. Towards an iterative enhancement software development environment. Fourteenth Hawaii International Conference on System Science, Honolulu, HA, Jan Wirth, N. and Hoare, C.A.R. A contribution to the development of ALGOL. Comm. A CM 9, 6, (June 1966), Zelkowitz, M.V., Reversible Execution. Comm. ACM 16, 9, (Sept. 1973) Communications July 1982
The Relationship between Slices and Module Cohesion
The Relationship between Slices and Module Cohesion Linda M. Ott Jeffrey J. Thuss Department of Computer Science Michigan Technological University Houghton, MI 49931 Abstract High module cohesion is often
More informationCPSC 444 Project Milestone III: Prototyping & Experiment Design Feb 6, 2018
CPSC 444 Project Milestone III: Prototyping & Experiment Design Feb 6, 2018 OVERVIEW... 2 SUMMARY OF MILESTONE III DELIVERABLES... 2 1. Blog Update #3 - Low-fidelity Prototyping & Cognitive Walkthrough,
More informationITERATIVE SEARCHING IN AN ONLINE DATABASE. Susan T. Dumais and Deborah G. Schmitt Cognitive Science Research Group Bellcore Morristown, NJ
- 1 - ITERATIVE SEARCHING IN AN ONLINE DATABASE Susan T. Dumais and Deborah G. Schmitt Cognitive Science Research Group Bellcore Morristown, NJ 07962-1910 ABSTRACT An experiment examined how people use
More informationProgram Slicing in the Presence of Pointers (Extended Abstract)
Program Slicing in the Presence of Pointers (Extended Abstract) James R. Lyle National Institute of Standards and Technology jimmy@swe.ncsl.nist.gov David Binkley Loyola College in Maryland National Institute
More informationC++ Style Guide. 1.0 General. 2.0 Visual Layout. 3.0 Indentation and Whitespace
C++ Style Guide 1.0 General The purpose of the style guide is not to restrict your programming, but rather to establish a consistent format for your programs. This will help you debug and maintain your
More informationOrganizing Information. Organizing information is at the heart of information science and is important in many other
Dagobert Soergel College of Library and Information Services University of Maryland College Park, MD 20742 Organizing Information Organizing information is at the heart of information science and is important
More informationCore Membership Computation for Succinct Representations of Coalitional Games
Core Membership Computation for Succinct Representations of Coalitional Games Xi Alice Gao May 11, 2009 Abstract In this paper, I compare and contrast two formal results on the computational complexity
More informationThe Join the Club Interpretation of Some. Graph Algorithms
The Join the Club Interpretation of Some Graph Algorithms Harold Reiter Isaac Sonin June 8, 2000 Abstract Several important tree construction algorithms of graph theory are described and discussed using
More informationCounting daily bridge users
Counting daily bridge users Karsten Loesing karsten@torproject.org Tor Tech Report 212-1-1 October 24, 212 Abstract As part of the Tor Metrics Project, we want to learn how many people use the Tor network
More informationVisual Appeal vs. Usability: Which One Influences User Perceptions of a Website More?
1 of 9 10/3/2009 9:42 PM October 2009, Vol. 11 Issue 2 Volume 11 Issue 2 Past Issues A-Z List Usability News is a free web newsletter that is produced by the Software Usability Research Laboratory (SURL)
More informationReverse Software Engineering Using UML tools Jalak Vora 1 Ravi Zala 2
IJSRD - International Journal for Scientific Research & Development Vol. 2, Issue 03, 2014 ISSN (online): 2321-0613 Reverse Software Engineering Using UML tools Jalak Vora 1 Ravi Zala 2 1, 2 Department
More informationBreakpoints and Halting in Distributed Programs
1 Breakpoints and Halting in Distributed Programs Barton P. Miller Jong-Deok Choi Computer Sciences Department University of Wisconsin-Madison 1210 W. Dayton Street Madison, Wisconsin 53706 Abstract Interactive
More informationChapter 8. Achmad Benny Mutiara
Chapter 8 SOFTWARE-TESTING STRATEGIES Achmad Benny Mutiara amutiara@staff.gunadarma.ac.id 8.1 STATIC-TESTING STRATEGIES Static testing is the systematic examination of a program structure for the purpose
More informationD-Optimal Designs. Chapter 888. Introduction. D-Optimal Design Overview
Chapter 888 Introduction This procedure generates D-optimal designs for multi-factor experiments with both quantitative and qualitative factors. The factors can have a mixed number of levels. For example,
More informationDivisibility Rules and Their Explanations
Divisibility Rules and Their Explanations Increase Your Number Sense These divisibility rules apply to determining the divisibility of a positive integer (1, 2, 3, ) by another positive integer or 0 (although
More informationGUIDELINES FOR MASTER OF SCIENCE INTERNSHIP THESIS
GUIDELINES FOR MASTER OF SCIENCE INTERNSHIP THESIS Dear Participant of the MScIS Program, If you have chosen to follow an internship, one of the requirements is to write a Thesis. This document gives you
More informationConformance Requirements Guideline Version 0.1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 Editors: Conformance Requirements Guideline Version 0.1 Aug 22, 2001 Lynne Rosenthal (lynne.rosenthal@nist.gov)
More informationTutorial 1 Answers. Question 1
Tutorial 1 Answers Question 1 Complexity Software in it what is has to do, is often essentially complex. We can think of software which is accidentally complex such as a large scale e-commerce system (simple
More informationWeek 7 Picturing Network. Vahe and Bethany
Week 7 Picturing Network Vahe and Bethany Freeman (2005) - Graphic Techniques for Exploring Social Network Data The two main goals of analyzing social network data are identification of cohesive groups
More informationComputer Aided Draughting and Design: Graded Unit 1
Higher National Graded Unit Specification General Information for Centres This Graded Unit has been validated as part of the HNC Computer Aided Draughting and Design (CADD) award. Centres are required
More informationSpeed and Accuracy using Four Boolean Query Systems
From:MAICS-99 Proceedings. Copyright 1999, AAAI (www.aaai.org). All rights reserved. Speed and Accuracy using Four Boolean Query Systems Michael Chui Computer Science Department and Cognitive Science Program
More informationIteration vs Recursion in Introduction to Programming Classes: An Empirical Study
BULGARIAN ACADEMY OF SCIENCES CYBERNETICS AND INFORMATION TECHNOLOGIES Volume 16, No 4 Sofia 2016 Print ISSN: 1311-9702; Online ISSN: 1314-4081 DOI: 10.1515/cait-2016-0068 Iteration vs Recursion in Introduction
More informationNavigation Time Variability: Measuring Menu Navigation Errors
Navigation Time Variability: Measuring Menu Navigation Errors Krystian Samp and Stefan Decker Digital Enterprise Research Institute, National University of Ireland, Galway {krystian.samp,stefan.decker}@deri.org
More informationProgramming Languages
Programming Languages As difficult to discuss rationally as religion or politics. Prone to extreme statements devoid of data. Examples: "It is practically impossible to teach good programming to students
More informationSpecification of Content-Dependent Security Policies
Specification of Content-Dependent Security Policies David L. Spooner Mathematical Sciences Department Rensselaer Polytechnic Institute Troy, NY 12181 Abstract: The protection of information from unauthorized
More informationMACHINE INDEPENDENCE IN COMPILING*
MACHINE INDEPENDENCE IN COMPILING* Harry D. Huskey University of California Berkeley, California, USA Since 1958, there has been a substantial interest in the development of problem-oriented languages
More informationAutomatic assessment of students program codes
Automatic assessment of students program codes Ahmed Hashim {ahashim@cs.joensuu.fi} June 22, 2006 1 Introduction Automatic assessment provides an effective method for giving immediate 24/7 feedback service
More informationA taxonomy of race. D. P. Helmbold, C. E. McDowell. September 28, University of California, Santa Cruz. Santa Cruz, CA
A taxonomy of race conditions. D. P. Helmbold, C. E. McDowell UCSC-CRL-94-34 September 28, 1994 Board of Studies in Computer and Information Sciences University of California, Santa Cruz Santa Cruz, CA
More informationUsable Web-based Calendaring for Blind Users
Usable Web-based Calendaring for Blind Users Brian Wentz Frostburg State University Frostburg, MD, USA bwentz@acm.org Jonathan Lazar Towson University Towson, MD, USA jlazar@towson.edu While a calendar
More informationProgramming with data frames for everyday data items*
Programming with data frames for everyday data items* by DAVID W. EMBLEY University of Nebraska Lincoln, Nebraska INTRODUCTION Processing everyday data items such as dollar amounts, time, dates, and account
More informationDebugging Program Slicing
Debugging Franz Wotawa Institut für Informationssysteme, Database and Artificial Intelligence Group, Technische Universität Wien Email: wotawa@dbai.tuwien.ac.at 1 What is a Slice? A Slice is a reduced
More informationFace Cyclographs for Recognition
Face Cyclographs for Recognition Guodong Guo Department of Computer Science North Carolina Central University E-mail: gdguo@nccu.edu Charles R. Dyer Computer Sciences Department University of Wisconsin-Madison
More informationControl Invitation
Online Appendices Appendix A. Invitation Emails Control Invitation Email Subject: Reviewer Invitation from JPubE You are invited to review the above-mentioned manuscript for publication in the. The manuscript's
More informationMHPE 494: Data Analysis. Welcome! The Analytic Process
MHPE 494: Data Analysis Alan Schwartz, PhD Department of Medical Education Memoona Hasnain,, MD, PhD, MHPE Department of Family Medicine College of Medicine University of Illinois at Chicago Welcome! Your
More informationLectures 20, 21: Axiomatic Semantics
Lectures 20, 21: Axiomatic Semantics Polyvios Pratikakis Computer Science Department, University of Crete Type Systems and Static Analysis Based on slides by George Necula Pratikakis (CSD) Axiomatic Semantics
More informationCompiler Design. Computer Science & Information Technology (CS) Rank under AIR 100
GATE- 2016-17 Postal Correspondence 1 Compiler Design Computer Science & Information Technology (CS) 20 Rank under AIR 100 Postal Correspondence Examination Oriented Theory, Practice Set Key concepts,
More informationAn Exploratory Analysis of Semantic Network Complexity for Data Modeling Performance
An Exploratory Analysis of Semantic Network Complexity for Data Modeling Performance Abstract Aik Huang Lee and Hock Chuan Chan National University of Singapore Database modeling performance varies across
More informationInteractive Campaign Planning for Marketing Analysts
Interactive Campaign Planning for Marketing Analysts Fan Du University of Maryland College Park, MD, USA fan@cs.umd.edu Sana Malik Adobe Research San Jose, CA, USA sana.malik@adobe.com Eunyee Koh Adobe
More informationUX Research in the Product Lifecycle
UX Research in the Product Lifecycle I incorporate how users work into the product early, frequently and iteratively throughout the development lifecycle. This means selecting from a suite of methods and
More informationRe: Exposure Draft Proposed ISAE 3402 on Assurance Reports on Controls at a Third Party Service Organization
Date Le Président Fédération Avenue d Auderghem 22-28 des Experts 1040 Bruxelles 31 May 2008 Comptables Tél. 32 (0) 2 285 40 85 Européens Fax: 32 (0) 2 231 11 12 AISBL E-mail: secretariat@fee.be Mr. Jim
More informationByzantine Consensus in Directed Graphs
Byzantine Consensus in Directed Graphs Lewis Tseng 1,3, and Nitin Vaidya 2,3 1 Department of Computer Science, 2 Department of Electrical and Computer Engineering, and 3 Coordinated Science Laboratory
More informationHow to Conduct a Heuristic Evaluation
Page 1 of 9 useit.com Papers and Essays Heuristic Evaluation How to conduct a heuristic evaluation How to Conduct a Heuristic Evaluation by Jakob Nielsen Heuristic evaluation (Nielsen and Molich, 1990;
More informationThe IDN Variant TLD Program: Updated Program Plan 23 August 2012
The IDN Variant TLD Program: Updated Program Plan 23 August 2012 Table of Contents Project Background... 2 The IDN Variant TLD Program... 2 Revised Program Plan, Projects and Timeline:... 3 Communication
More informationSPSS Instructions and Guidelines PSCI 2300 Intro to Political Science Research Dr. Paul Hensel Last updated 10 March 2018
SPSS Instructions and Guidelines PSCI 2300 Intro to Political Science Research Dr. Paul Hensel Last updated 10 March 2018 Table of Contents Introduction... 1 Accessing SPSS... 2 Possible Alternative: PSPP...
More informationA macro- generator for ALGOL
A macro- generator for ALGOL byh.leroy Compagnie Bull-General Electric Paris, France INTRODUCfION The concept of macro-facility is ambiguous, when applied to higher level languages. For some authorsl,2,
More informationTable of contents. Introduction...1. Simulated keyboards...3. Theoretical analysis of original keyboard...3. Creating optimal keyboards...
Table of contents Page Introduction...1 Simulated keyboards...3 Theoretical analysis of original keyboard...3 Creating optimal keyboards...4 Empirical analysis...6 Learning effects...8 Conclusions...10
More informationExercises: Instructions and Advice
Instructions Exercises: Instructions and Advice The exercises in this course are primarily practical programming tasks that are designed to help the student master the intellectual content of the subjects
More informationUML and the Cost of Defects
UML and the of s Stephen J Mellor stephen_mellor@mentor.com It is common knowledge that software defects, especially in embedded systems, are expensive to repair; less well appreciated is just how very
More informationTopic IV. Block-structured procedural languages Algol and Pascal. References:
References: Topic IV Block-structured procedural languages Algol and Pascal Chapters 5 and 7, of Concepts in programming languages by J. C. Mitchell. CUP, 2003. Chapters 10( 2) and 11( 1) of Programming
More informationData analysis using Microsoft Excel
Introduction to Statistics Statistics may be defined as the science of collection, organization presentation analysis and interpretation of numerical data from the logical analysis. 1.Collection of Data
More informationLecture Notes on Contracts
Lecture Notes on Contracts 15-122: Principles of Imperative Computation Frank Pfenning Lecture 2 August 30, 2012 1 Introduction For an overview the course goals and the mechanics and schedule of the course,
More informationCache-Oblivious Traversals of an Array s Pairs
Cache-Oblivious Traversals of an Array s Pairs Tobias Johnson May 7, 2007 Abstract Cache-obliviousness is a concept first introduced by Frigo et al. in [1]. We follow their model and develop a cache-oblivious
More informationExtensible and Dynamic Data Structure Viewers in Java
Extensible and Dynamic Data Structure Viewers in Java Jhilmil Jain Computer Science and Software Engineering Department, Auburn University, Auburn AL Email: jainjhi@auburn.edu Problem & motivation Many
More informationTHE EFFECT OF JOIN SELECTIVITIES ON OPTIMAL NESTING ORDER
THE EFFECT OF JOIN SELECTIVITIES ON OPTIMAL NESTING ORDER Akhil Kumar and Michael Stonebraker EECS Department University of California Berkeley, Ca., 94720 Abstract A heuristic query optimizer must choose
More informationTHE ADHERENCE OF OPEN SOURCE JAVA PROGRAMMERS TO STANDARD CODING PRACTICES
THE ADHERENCE OF OPEN SOURCE JAVA PROGRAMMERS TO STANDARD CODING PRACTICES Mahmoud O. Elish Department of Computer Science George Mason University Fairfax VA 223-44 USA melish@gmu.edu ABSTRACT The use
More informationMANUAL CODING VERSUS WIZARDS: EXAMING THE EFFECTS OF USER INTERACTION ON MARKUP LANGUAGE PERFORMANCE AND SATISFACTION
MANUAL CODING VERSUS WIZARDS: EXAMING THE EFFECTS OF USER INTERACTION ON MARKUP LANGUAGE PERFORMANCE AND SATISFACTION Jeffrey Hsu, Information Systems, Silberman College of Business Administration, Fairleigh
More informationTopic: 1-One to Five
Mathematics Curriculum Kindergarten Suggested Blocks of Instruction: 12 days /September Topic: 1-One to Five Know number names and the count sequence. K.CC.3. Write numbers from 0 to 20. Represent a number
More informationAP Computer Science AB
AP Computer Science AB Dr. Tyler Krebs Voice Mail: 431-8938 Classroom: B128 Office: TV Studio Characteristics We Value in This Classroom: 1. Respect. (Show respect for everyone and everything.) 2. Integrity.
More informationTHE EFFECT OF SCENT ON USER RECALL OF WEB SITE NAVIGATION
THE EFFECT OF SCENT ON USER RECALL OF WEB SITE NAVIGATION Marc L. Resnick and Amir Abou Baker Industrial and Systems Engineering Florida International University Miami, FL When designing navigation menus
More informationQualifying Exam in Programming Languages and Compilers
Qualifying Exam in Programming Languages and Compilers University of Wisconsin Fall 1991 Instructions This exam contains nine questions, divided into two parts. All students taking the exam should answer
More informationStatistics Case Study 2000 M. J. Clancy and M. C. Linn
Statistics Case Study 2000 M. J. Clancy and M. C. Linn Problem Write and test functions to compute the following statistics for a nonempty list of numeric values: The mean, or average value, is computed
More information15/16 CSY2041 Quality and User-Centred Systems
15/16 CSY2041 Quality and User-Centred Systems INTERACTION DESIGN 1 Heuristic evaluation and walkthroughs 2 1 Aims: Describe the key concepts associated with inspection methods. Explain how to do heuristic
More informationExploring Performance Tradeoffs in a Sudoku SAT Solver CS242 Project Report
Exploring Performance Tradeoffs in a Sudoku SAT Solver CS242 Project Report Hana Lee (leehana@stanford.edu) December 15, 2017 1 Summary I implemented a SAT solver capable of solving Sudoku puzzles using
More informationHigher National group award Graded Unit Specification
Higher National group award Graded Unit Specification General Information for Centres This group award Graded Unit has been validated as part of the HNC and HND Electronics awards. Centres are required
More informationSummary of the State Elder Abuse. Questionnaire for Alaska
Summary of the State Elder Abuse Questionnaire for Alaska A Final Report to: Department of Administration Adult Protective Services February 2002 Prepared by Researchers at The University of Iowa Department
More informationAnalysing Ferret XML Reports to Estimate the Density of Copied Code
Analysing Ferret XML Reports to Estimate the Density of Copied Code Pam Green Peter C.R. Lane Austen Rainer Sven-Bodo Scholz April 2010 Technical Report No. 501 School of Computer Science University of
More informationA Comparative Usability Test. Orbitz.com vs. Hipmunk.com
A Comparative Usability Test Orbitz.com vs. Hipmunk.com 1 Table of Contents Introduction... 3 Participants... 5 Procedure... 6 Results... 8 Implications... 12 Nuisance variables... 14 Future studies...
More informationslicing An example of slicing Consider the following example:
slicing The concept of slicing was introduced over two decades ago. With an initial program behavior (a variable associated with a particular statement), slicing reduces the program to a minimal form which
More informationB.2 Measures of Central Tendency and Dispersion
Appendix B. Measures of Central Tendency and Dispersion B B. Measures of Central Tendency and Dispersion What you should learn Find and interpret the mean, median, and mode of a set of data. Determine
More informationBisection Debugging. 1 Introduction. Thomas Gross. Carnegie Mellon University. Preliminary version
Bisection Debugging Thomas Gross School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213 Institut für Computer Systeme ETH Zürich CH 8092 Zürich Preliminary version Abstract This paper
More information6.001 Notes: Section 4.1
6.001 Notes: Section 4.1 Slide 4.1.1 In this lecture, we are going to take a careful look at the kinds of procedures we can build. We will first go back to look very carefully at the substitution model,
More informationLearner Expectations UNIT 1: GRAPICAL AND NUMERIC REPRESENTATIONS OF DATA. Sept. Fathom Lab: Distributions and Best Methods of Display
CURRICULUM MAP TEMPLATE Priority Standards = Approximately 70% Supporting Standards = Approximately 20% Additional Standards = Approximately 10% HONORS PROBABILITY AND STATISTICS Essential Questions &
More informationTopic IV. Parameters. Chapter 5 of Programming languages: Concepts & constructs by R. Sethi (2ND EDITION). Addison-Wesley, 1996.
References: Topic IV Block-structured procedural languages Algol and Pascal Chapters 5 and 7, of Concepts in programming languages by J. C. Mitchell. CUP, 2003. Chapter 5 of Programming languages: Concepts
More information(Refer Slide Time: 1:43)
(Refer Slide Time: 1:43) Digital Circuits and Systems Prof. S. Srinivasan Department of Electrical Engineering Indian Institute of Technology, Madras Lecture - 27 Pattern Detector So, we talked about Moore
More informationWELCOME! Lecture 3 Thommy Perlinger
Quantitative Methods II WELCOME! Lecture 3 Thommy Perlinger Program Lecture 3 Cleaning and transforming data Graphical examination of the data Missing Values Graphical examination of the data It is important
More informationFractions and their Equivalent Forms
Fractions Fractions and their Equivalent Forms Little kids use the concept of a fraction long before we ever formalize their knowledge in school. Watching little kids share a candy bar or a bottle of soda
More informationStudent Performance Q&A:
Student Performance Q&A: 2010 AP Computer Science A Free-Response Questions The following comments on the 2010 free-response questions for AP Computer Science A were written by the Chief Reader, Jody Paul
More informationStudents interpret the meaning of the point of intersection of two graphs and use analytic tools to find its coordinates.
Student Outcomes Students interpret the meaning of the point of intersection of two graphs and use analytic tools to find its coordinates. Classwork Example 1 (7 minutes) Have students read the situation
More informationInstances and Classes. SOFTWARE ENGINEERING Christopher A. Welty David A. Ferrucci. 24 Summer 1999 intelligence
Instances and Classes in SOFTWARE ENGINEERING Christopher A. Welty David A. Ferrucci 24 Summer 1999 intelligence Software Engineering Over the past decade or so, one of the many areas that artificial intelligence
More informationUsing Mutation to Automatically Suggest Fixes for Faulty Programs
2010 Third International Conference on Software Testing, Verification and Validation Using Mutation to Automatically Suggest Fixes for Faulty Programs Vidroha Debroy and W. Eric Wong Department of Computer
More informationAnalysis of Simulation Results
Analysis of Simulation Results Raj Jain Washington University Saint Louis, MO 63130 Jain@cse.wustl.edu Audio/Video recordings of this lecture are available at: http://www.cse.wustl.edu/~jain/cse574-08/
More informationProjected Message Design Principles
Projected Message Design Principles General Message Display Guidelines [G] G1. Screen display should follow the horizontal-vertical and left-right organization that is common to the culture of the intended
More informationChapter 2.6: Testing and running a solution
Chapter 2.6: Testing and running a solution 2.6 (a) Types of Programming Errors When programs are being written it is not surprising that mistakes are made, after all they are very complicated. There are
More informationDecimals should be spoken digit by digit eg 0.34 is Zero (or nought) point three four (NOT thirty four).
Numeracy Essentials Section 1 Number Skills Reading and writing numbers All numbers should be written correctly. Most pupils are able to read, write and say numbers up to a thousand, but often have difficulty
More informationIntroduction to Computer Programming Using FORTRAN 77
Introduction to Computer Programming Using FORTRAN 77 Al-Dhaher, K. Garout, Y. Lafi, A. Al-Muhtaseb, H. Nazzal, A. Saeed, M. Yazdani, J. Zeidan, Y. August 1995 Second Edition Information and Computer Science
More informationReasoning About Programs Panagiotis Manolios
Reasoning About Programs Panagiotis Manolios Northeastern University March 1, 2017 Version: 101 Copyright c 2017 by Panagiotis Manolios All rights reserved. We hereby grant permission for this publication
More informationBCS THE CHARTERED INSTITUTE FOR IT. BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 5 Diploma in IT. March 2017 PRINCIPLES OF USER INTERFACE DESIGN
BCS THE CHARTERED INSTITUTE FOR IT BCS HIGHER EDUCATION QUALIFICATIONS BCS Level 5 Diploma in IT March 2017 PRINCIPLES OF USER INTERFACE DESIGN EXAMINERS REPORT General Comments Candidates should focus
More informationRecursively Enumerable Languages, Turing Machines, and Decidability
Recursively Enumerable Languages, Turing Machines, and Decidability 1 Problem Reduction: Basic Concepts and Analogies The concept of problem reduction is simple at a high level. You simply take an algorithm
More informationITC213: STRUCTURED PROGRAMMING. Bhaskar Shrestha National College of Computer Studies Tribhuvan University
ITC213: STRUCTURED PROGRAMMING Bhaskar Shrestha National College of Computer Studies Tribhuvan University Lecture 03: Program Development Life Cycle Readings: Not Covered in Textbook Program Development
More informationA Java Execution Simulator
A Java Execution Simulator Steven Robbins Department of Computer Science University of Texas at San Antonio srobbins@cs.utsa.edu ABSTRACT This paper describes JES, a Java Execution Simulator that allows
More informationUniversity of Maryland. fzzj, basili, Empirical studies (Desurvire, 1994) (Jeries, Miller, USABILITY INSPECTION
AN EMPIRICAL STUDY OF PERSPECTIVE-BASED USABILITY INSPECTION Zhijun Zhang, Victor Basili, and Ben Shneiderman Department of Computer Science University of Maryland College Park, MD 20742, USA fzzj, basili,
More informationObjectives. Problem Solving. Introduction. An overview of object-oriented concepts. Programming and programming languages An introduction to Java
Introduction Objectives An overview of object-oriented concepts. Programming and programming languages An introduction to Java 1-2 Problem Solving The purpose of writing a program is to solve a problem
More informationRecommendations for LXI systems containing devices supporting different versions of IEEE 1588
Recommendations for LXI systems containing devices supporting different versions of IEEE 1588 Revision 1.0 December 15, 2008 Edition Page 1 of 9 Notice of Rights All rights reserved. This document is the
More informationDirection-Length Code (DLC) To Represent Binary Objects
IOSR Journal of Computer Engineering (IOSR-JCE) e-issn: 2278-0661,p-ISSN: 2278-8727, Volume 18, Issue 2, Ver. I (Mar-Apr. 2016), PP 29-35 www.iosrjournals.org Direction-Length Code (DLC) To Represent Binary
More informationDetecting Polytomous Items That Have Drifted: Using Global Versus Step Difficulty 1,2. Xi Wang and Ronald K. Hambleton
Detecting Polytomous Items That Have Drifted: Using Global Versus Step Difficulty 1,2 Xi Wang and Ronald K. Hambleton University of Massachusetts Amherst Introduction When test forms are administered to
More informationCourse: Programming 101 Introduction to Python. CIP Course Title / Code: Computer Programming / Duration: Part one of a two-semester series
Course: Programming 101 Introduction to Python CIP Course Title / Code: Computer Programming / 110201 Duration: Part one of a two-semester series Grade Levels: 9-12 : Algebra I Alternatives: Programming
More information5 The Control Structure Diagram (CSD)
5 The Control Structure Diagram (CSD) The Control Structure Diagram (CSD) is an algorithmic level diagram intended to improve the comprehensibility of source code by clearly depicting control constructs,
More informationDESIGN AND TECHNOLOGY
Qualification Accredited A LEVEL NEA Marking Criteria April 2017 DESIGN AND TECHNOLOGY H404, H405 and H406 For first teaching in 2017 www.ocr.org.uk/gcsedesignandtechnology A Level Design and Technology
More informationLESSON 3 CONTROL STRUCTURES
LESSON CONTROL STRUCTURES PROF. JOHN P. BAUGH PROFJPBAUGH@GMAIL.COM PROFJPBAUGH.COM CONTENTS INTRODUCTION... Assumptions.... Logic, Logical Operators, AND Relational Operators..... - Logical AND (&&) Truth
More informationISSN: [Keswani* et al., 7(1): January, 2018] Impact Factor: 4.116
IJESRT INTERNATIONAL JOURNAL OF ENGINEERING SCIENCES & RESEARCH TECHNOLOGY AUTOMATIC TEST CASE GENERATION FOR PERFORMANCE ENHANCEMENT OF SOFTWARE THROUGH GENETIC ALGORITHM AND RANDOM TESTING Bright Keswani,
More information