Dave Mason

Dave Mason
Ryerson University · Department of Computer Science

Ph.D. Computer Science, Waterloo

About

34
Publications
3,951
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
431
Citations
Citations since 2016
3 Research Items
46 Citations
201620172018201920202021202202468101214
201620172018201920202021202202468101214
201620172018201920202021202202468101214
201620172018201920202021202202468101214
Introduction
Dave Mason currently chairs the Department of Computer Science, Ryerson University. Dave does research in Programming Languages and Software Engineering. Their current project is 'High-leverage software development with Smalltalk'.
Additional affiliations
September 1981 - present
Ryerson University
Position
  • Professor (Full)

Publications

Publications (34)
Article
Full-text available
With the advent of HTML 5, we can now develop rich web apps in Javascript that rival classical standalone apps. Nevertheless, developing in Javascript is still challenging and error prone because of the language’s ambiguous semantics and quirks. In this paper, we advocate that the popular solution of using another language with better semantics and...
Article
Full-text available
Modern society is increasingly mediated by computers. The quantity and diversity of data generated daily is growing at an astounding rate. While the number of people with programming ability is also growing, the percentage of the population with such capability remains in the single digits. This means that we are witnessing a growing gap between ne...
Conference Paper
With the advent of HTML 5, we can now develop rich web apps that rival classical standalone apps. This richness together with the portability of web technologies, turned HTML 5 into a viable (and in the case of mobile - essential) solution to develop cross-platform apps. This possibility is heavily dependent on Javascript having acceptable performa...
Conference Paper
Full-text available
Amber is a wonderful Smalltalk programming environment that runs on top of Javascript, including a browser-based IDE and compiler, as well as command-line support. The only challenge is that execution performance can be 1--2 orders of magnitude slower than native Javascript code. Amber-Direct is a series of modest changes to the compiler and some i...
Article
Full-text available
"Big Data" is becoming a standard catch phrase that often means more like "Ubiquitous Data" - it's not necessarily all that big, but it's everywhere, and its collection rate is accelerating. Citizens may only have a need to spend a few hours per week attempting to make sense of that data. The concomitant worry is that citizens will be left behind a...
Conference Paper
We are creating a visual programming environment for userprogrammers (who are not trained programmers) that they will use a few hours per week.. Because of this sporadic usage pattern, traditional code structuring approaches are both overkill and difficult to learn. Therefore, the environment is designed to support very fluid relationships among co...
Article
Full-text available
Program paths (equivalently program input subdomains) are interesting for a variety of purposes in software engineer-ing, including testing, reliability, and estimating of resource requirements. The full potential of paths is often not real-ized because it is difficult to generate the most important paths from the – potentially infinite – set of po...
Chapter
We present an instrumental, multiple-case study exploring issues relating to student efficacy and practical skills acquisition. Specifically, we explore the relationship between efficacy, as measured by a final online assessment, and the number and type of pre-final assessments. Online final assessment remains a constant throughout the cases of our...
Chapter
We present an instrumental, multiple-case study exploring issues relating to student efficacy and practical skills acquisition. Specifically, we explore the relationship between efficacy, as measured by a final online assessment, and the number and type of pre-final assessments. Online final assessment remains a constant throughout the cases of our...
Article
Full-text available
Software components are today the most promising approach to dealing with the complexity and uneven quality of software systems. The design-using-components paradigm has been extremely successful in almost every engineering field, with its benefits of rapid, routine, reliable system construction. The central dilemma of software design using compone...
Conference Paper
For five academic years we have engaged in an on-going study of the effectiveness of online assessment of student programming abilities for introductory programming courses in Computer Science. Our results show that online evaluation can be implemented securely, efficiently, and can result in increased student motivation and programming efficacy; h...
Article
Full-text available
The component reliability model described in [4] requires that component execution frequency, reliability, and transformations be analysed statistically based on parameters to the component. This paper describes work in progress toward that goal.
Article
Full-text available
We present a foundational theory of software system reliability based on components. The theory describes how component developers can design and test their components to produce measurements that are later used by system designers to calculate composite system reliability --- without implementation and test of the system being designed. The theory...
Conference Paper
Full-text available
We present a foundational theory of software system reliability based on components. The theory describes how component developers can design and test their components to produce measurements that are later used by system designers to calculate composite system reliability — without implementation and test of the system being designed. The theory d...
Article
Most software-component research has been directed at functional specification of software components. The other, equally important, side of the coin is component quality. We present a foundational theory of reliability based on components. The theory describes in principle how component developers can make measurements that are later used by syste...
Conference Paper
We have experimented with the use of weekly on-line quizzes to enhance student learning in our first-year computer science courses. In our experiments we compared the effectiveness of using quizzes to the alternative of using weekly marked laboratory assignments. The results of our experiments show that student learning and retention increase with...
Conference Paper
Full-text available
We have experimented with the use of weekly on-line quizzes to enhance student learning in our first-year computer science courses. In our experiments we compared the effectiveness of using quizzes to the alternative of using weekly marked laboratory assignments. The results of our experiments show that student learning and retention increase with...
Article
Full-text available
Continuation-Passing-Style has been used as a programming style as well as a compilation technique in functional programming languages for over 20 years. Recently it has been discovered that CPS resolves a longstanding structural problem in the composition of software reliability. While this provides yet another argument in favour of functional pro...
Conference Paper
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 detai...
Conference Paper
Full-text available
Independence is a fundamental requirement for calculating system reliability from component reliabilities, whether in hardware or software systems. Markov analysis is often used in such calculation; however, procedures as conventionally used do not qualify as nodes in a Markov system. We outline the requirements for several classes of component ind...
Conference Paper
Full-text available
We have been using a combination of conventional and on-line programming examinations for the past 3 years in our first year programming courses. We plan to continue using on-line components because of the positive feedback from both students and faculty. We describe the operational and pedagogical lessons we have learned, illustrating problems enc...
Conference Paper
Full-text available
On-line programming tests and examinations were administered to approximately 120 first year computer science students in order to evaluate their practical skills. We describe our motivation for on-line testing, outline the technical details of our closed testing environment, and present our observations about student performance. We also compare t...
Article
On-line programming tests and examinations were administered to approximately 120 first year computer science students in order to evaluate their practical skills. We describe our motivation for on-line testing, outline the technical details of our closed testing environment, and present our observations about student performance. We also compare t...
Article
ons will be clearly stated on the lab. Individual labs are worth very few marks, so if they are not handed in on time, no opportunity will be available to hand them in later, and they will not cause an INC grade. The departmental assignment policy applies. You are expected to have read and understood it. If you have any questions about this please...
Article
Copying garbage collectors are now standard for the memory-management subsystems of functional and object-oriented programming languages. Compacting garbage collection has correspondingly fallen out of favor. We revitalize the case for compaction by demonstrating that a simple compacting collector, extended with the generational garbage collection...
Conference Paper
Full-text available
This paper describes the use of WatIF, a simple compiler intermediate form based on the λ-calculus, for writing compiler front-ends for a wide range of programming languages. Somewhat similar intermediate forms have been previously used for single-language compilers, but applicability to such a range of languages has not been previously reported. E...
Article
Full-text available
We propose an underlying theory for the technical quality information to appear on a software-component data sheet. The other side of the components' coin -- the technical description of what a component is supposed to do -- is of equal or greater importance, but we do not address it. (However, most of the current research in reusability goes into...
Article
To find an accurate estimate of system reliability it is necessary to find the partition of the system input domain and relate the reliability of the associated code with the frequency information from the Operational Profile. We describe the approach to testing software for reliability, the analysis, and our prototype tool. 1 Introduction The ulti...
Article
We have been working on a detailed treatment of compo- nent reliability, particularly the necessary conditions to al- low using component reliabilities to calculate the system reliability resulting from their composition. This includes aspects of components that must be included in their spec- ication, and a calculus for composing those reliabiliti...
Article
For a typical software system, it is generally consid- ered infeasible to calculate system reliability from the reliabilities of its constituent components because soft- ware systems, unlike hardware systems, tend to violate the underlying independence assumptions inherent in the usual reliability calculations. We present a set of component design...
Article
Full-text available
The SML module system is widely recognized for its formal semantics and expressive power. This paper proposes an extension to the module system to support recursive modules. This removes a signiicant impediment to software reuse from the module system. An example is provided that is impractical without recursive modules.

Network

Cited By