Massey Documents by Type
Permanent URI for this communityhttps://mro.massey.ac.nz/handle/10179/294
Browse
6 results
Search Results
Item An investigation into the unsoundness of static program analysis : a thesis presented in partial fulfilment of the requirements for the degree of Doctor of Philosophy in Computer Science at Massey University, Palmerston North, New Zealand(Massey University, 2021) Sui, LiStatic program analysis is widely used in many software applications such as in security analysis, compiler optimisation, program verification and code refactoring. In contrast to dynamic analysis, static analysis can perform a full program analysis without the need of running the program under analysis. While it provides full program coverage, one of the main issues with static analysis is imprecision -- i.e., the potential of reporting false positives due to overestimating actual program behaviours. For many years, research in static program analysis has focused on reducing such imprecision while improving scalability. However, static program analysis may also miss some critical parts of the program, resulting in program behaviours not being reported. A typical example of this is the case of dynamic language features, where certain behaviours are hard to model due to their dynamic nature. The term ``unsoundness'' has been used to describe those missed program behaviours. Compared to static analysis, dynamic analysis has the advantage of obtaining precise results, as it only captures what has been executed during run-time. However, dynamic analysis is also limited to the defined program executions. This thesis investigates the unsoundness issue in static program analysis. We first investigate causes of unsoundness in terms of Java dynamic language features and identify potential usage patterns of such features. We then report the results of a number of empirical experiments we conducted in order to identify and categorise the sources of unsoundness in state-of-the-art static analysis frameworks. Finally, we quantify and measure the level of unsoundness in static analysis in the presence of dynamic language features. The models developed in this thesis can be used by static analysis frameworks and tools to boost the soundness in those frameworks and tools.Item Program visualization in programming environment : a thesis submitted in partial fulfilment of the requirements for the degree of Master of Science in Computer Science at Massey University(Massey University, 1991) Dong, ShurongThis thesis describes the investigation of techniques for the interactive display of program source code, with particular emphasis on large and complex programs. Folding and fisheye display techniques have been investigated, coupled with "hot-spot" or embedded menu interaction techniques typical of hypertext systems. Automatically created links through identifiers, procedures, etc, are employed to enhance the user's ability to comprehend the program structure and to methodically move about within it. Some suggestions are made concerning high level data processing and more advanced programming environments. A prototype system has been developed on a UNIX workstation to provide an environment for the C language.Item The use of alphanumeric display terminals : a thesis ... for the degree of Master of Arts in Computer Science at Massey University(Massey University, 1975) Barrer, Patrick JohnA functional description of alphanumeric display terminals is given and then the four main classes of interactive systems that use alphanumeric display terminals; enquiry/response systems, interactive programming systems, data entry and computer-aided instruction are briefly described. Some programming considerations where using alpha-numeric display terminals with interactive systems are mentioned and then a "virtual" alphanumeric display terminal is introduced. Finally as an example, the program entry phase of the Genisys system is described.Item The cognitive construction of programs by novice programmers : a thesis presented in partial fulfilment of the requirements for the degree of Master of Science in Computer Science at Massey University(Massey University, 1998) Rose, Zoë JoanneHuman memory and cognition are studied to aid novice programmers with the cognitive construction and the acquisition of program plans. Particular emphasis is placed on the storage and retrieval of program knowledge, the cognitive structure of stored program knowledge, the effects of transferring cognitive structures from one programming language to another, and the learning activities involved with learning a new programming language. Cognitive principles are applied to the design of a programming language and environment. The design of both the programming language and environment are discussed together with an introduction of how they are used. The hypothetical results of two experiments are argued to demonstrate that the programming language and environment are well suited in supporting the development of program plans.Item Adding traceability to an educational IDE : a thesis presented in partial fulfilment of the requirements for the Master degree in Computer Science at Massey University, Manawatu, New Zealand(Massey University, 2016) Sui, LiHigh dropout and failure rate in introductory programming courses indicate the need to improve programming comprehension of novice learners. Some of educational tools have successfully used game environments to motivate students. Our approach is based on a novel type of notional machine which can facilitate programming comprehension in the context of turn-based games. The first aim of this project is to design a layered notional machine that is reversible. This type of notional machine provides bi-directional traceability and supports multiple layers of abstraction. The second aim of this project is to explore the feasibility and in particular to evaluate the performance of using the traceability in a web-based environment. To achieve these aims, we implement this type of notional machine through instrumentation and investigate the capture of the entire execution state of a program. However, capturing the entire execution state produces a large amount of tracing data that raises scalability issues. Therefore, several encoding and compression methods are proposed to minimise the server work-load. A proof-of-concept implementation which based on the SoGaCo educational web IDE is presented. The evaluation of the educational benefits and end user studies are outside the scope of this thesis.Item Teaching computer programming in intermediate schools : a thesis presented in partial fulfilment of the requirements for the degree of Doctor of Philosophy in Education at Massey University(Massey University, 1975) Spence, Richard JohnThis investigation concerned classroom learning of a computer programming course by Form 2 pupils in New Zealand Intermediate schools. Samples were employed representing the full range of ability levels found in such schools. The programming task was divided into a pre-coding phase and a coding phase and the capacity to perform the tasks relating to each of the two phases were postulated as separate abilities. This division was shown to be justified. Nevertheless, measures of the two abilities were found to be moderately correlated, end each also correlated moderately with a measure of mathematical attainment. Analysis of the results showed that these correlations were not due to general intelligence alone. The fine structure underlying the relationships was also examined. In the study, it was further shown that three measures of academic achievement predicted attainment in the programming course more effectively than fourteen personality measures. Some similarities and some differences were discovered between the results of this prediction study end similar studies with adults. Finally, two different teaching sequences were compared against each other and with a control group. It was established that mastery of the pre-coding phase of programming was improved by teaching, but that the place in the course where this teaching was given made no significant difference to end-of-course achievement. On the other hand, altering the timing of the instruction in the elements of the programming language was found to produce a significant difference in mastery of coding skills.
