Results 1 - 10
of
13
Notes on postmodern programming
- Proceedings of the Onward Track at Oopsla 02, the ACM conference on Object-Oriented Programming, Systems, Languages and Applications
, 2002
"... The ultimate goal of all computer science is the program. The performance of programs was once the noblest function of computer science, and computer science was indispensable to great programs. Today, programming and computer science exist in complacent isolation, and can only be rescued by the con ..."
Abstract
-
Cited by 8 (4 self)
- Add to MetaCart
The ultimate goal of all computer science is the program. The performance of programs was once the noblest function of computer science, and computer science was indispensable to great programs. Today, programming and computer science exist in complacent isolation, and can only be rescued by the conscious co-operation and collaboration of all programmers. The universities were unable to produce this unity; and how indeed, should they have done so, since creativity cannot be taught? Designers, programmers and engineers must once again come to know and comprehend the composite character of a program, both as an entity and in terms of its various parts. Then their work will be filled with that true software spirit which, as “theory of computing”, it has lost. Universities must return to programming. The worlds of the formal methods and algorithm analysis, consisting only of logic and mathematics, must become once again a world in which things are built. If the young person who rejoices in creative activity now begins his career as in the older days by learning to program, then the unproductive “scientist ” will no longer be condemned to inadequate science, for their skills will be preserved for the programming in which they can achieve great things. Designers, programmers, engineers, we must all return to programming! There is no essential difference between the computer scientist and the programmer. The computer scientist is an exalted programmer. By the grace of Heaven and in rare moments of inspiration which transcend the will, computer science may unconsciously blossom from the labour of the hand, but a base in programming is essential to every computer scientist. It is there that the original source of creativity lies. Let us therefore create a new guild of programmers without the class-distinctions that raise an arrogant barrier between programmers and computer scientists! Let us desire, conceive, and create the new program of the future together. It will combine design, user-interfaces, and programming in a single form, and will one day rise towards the heavens from the hands of a million workers as the crystalline symbol of a new and coming faith. 1 1
Mental Models of Recursion
, 2003
"... Recursion is a fundamental concept of Computer Science that is difficult to teach and learn. Students have many misconceptions about recursion and construct mental models of recursion which are non-viable. A mental model is a student's mental representation of recursion and it provides them with pre ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
Recursion is a fundamental concept of Computer Science that is difficult to teach and learn. Students have many misconceptions about recursion and construct mental models of recursion which are non-viable. A mental model is a student's mental representation of recursion and it provides them with predictive and explanatory powers about recursion. A mental model is non-viable if it does not allow a student to accurately and consistently represent the process of recursion.
A Methodology for Decompilation
- in Proceedings for the XIX Conferencia Latinoamericana de Informatica, Buenos Aires
, 1993
"... A proposed methodology for decompilation of binary programs is presented, along with a description of a particular implementation of this methodology, dcc. dcc is a decompiler for the Intel 80x86 architecture, which takes as input a binary program from a DOS environment and produces C programs as ou ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
A proposed methodology for decompilation of binary programs is presented, along with a description of a particular implementation of this methodology, dcc. dcc is a decompiler for the Intel 80x86 architecture, which takes as input a binary program from a DOS environment and produces C programs as output. The decompiler has been divided into three separate modules which resemble the structure of the compiler. The front-end module is machine dependent and performs the loading and parsing of the program, as well as the generation of an intermediate representation. The universal decompiling machine module is machine and language independent, and performs all the flow analysis of the program. Finally, the back-end module is language dependent and deals with the details of the target high level language. Even though the problem of decompilation is insoluble in general, a partial solution can be found, which gives information about the binary program. This paper describes some of the results ...
Knowledge, understanding, and computational complexity
- Center for
, 1992
"... Searle’s arguments that intelligence cannot arise from formal programs are refuted by arguing that his analogies and thought-experiments are fundamentally flawed: he imagines a world in which computation is free. It is argued instead that although cognition may in principle be realized by symbol pro ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
Searle’s arguments that intelligence cannot arise from formal programs are refuted by arguing that his analogies and thought-experiments are fundamentally flawed: he imagines a world in which computation is free. It is argued instead that although cognition may in principle be realized by symbol processing machines, such a computation is likely to have resource requirements that would prevent a symbol processing program for cognition from being designed, implemented, or executed. In the course of the argument the following observations are made: (1) A system can have knowledge, but no understanding. (2) Understanding is a method by which cognitive computations are carried out with limited resources. (3) Introspection is inadequate for analyzing the mind. (4) Simulation of the brain by a computer is unlikely not because of the massive computational power of the brain, but because of the overhead required when one model of computation is simulated by another. (5) Intentionality is a property that arises from systems of sufficient computational power that have the appropriate design. (6) Models of cognition can be developed in direct analogy with technical results from the field of computational complexity theory. Penrose [30] has stated...I am inclined to think (though, no doubt, on quite inadequate grounds) that unlike the basic question of computability itself, the issues of complexity theory are not quite the central ones in relation to mental phenomena. On the contrary, I intend to demonstrate that the principles of computational complexity theory can give insights into cognition. In 1980, Searle [36] published a critique of Artificial Intelligence that almost immediately caused a flurry of debate and commentary in academic circles. The paper distinguishes
Parallel Global Optimization of Proteins
, 1994
"... The convention says that a foreword can be at most one page. One page? I think one should be able to write a foreword that is longer. First of all, if one has a lot to say, there should be room to do so. Second, I don't like conventions. Third and last, what's in a page? It would be left |intentiona ..."
Abstract
-
Cited by 2 (1 self)
- Add to MetaCart
The convention says that a foreword can be at most one page. One page? I think one should be able to write a foreword that is longer. First of all, if one has a lot to say, there should be room to do so. Second, I don't like conventions. Third and last, what's in a page? It would be left |intentionally | blank anyway. However, convention is convention. So, despite all the words I have tosay, I will try not to ll more than one page. This thesis is the result of one of the most interesting experiences in my life: working full time as a Professional Research Assistant at the University of Colorado at Boulder, in the mean time being a student at the Erasmus University Rotterdam. It has been quite an adventure to nish classes in Rotterdam, while physically being located in Boulder. I thank Martin van Wijngaarden for our smooth cooperation in this (i.e., him staying up late). I will remember our pleasant talk-sessions, which were a recurring event onmyweekly schedule. Of course this experience would not have been possible without Bobby Schnabel giving me the opportunitytowork with him and Richard Byrd in the very interesting area of global optimization. Besides having learned a lot |all of which Iamentitled to forget now|, I will mostly remember the pleasant cooperation in our group. Thanks Betty Eskow and Chung-Shang Shao, you were
The Locales Framework: making social thinking accessible for software practitioners?
- In
, 2002
"... Introduction I was involved in a research group 1 that was building a collaboration environment called wOrlds (Fitzpatrick, 1995) to support people working together across space and time. The wOrlds system was supposed to overcome some of the problems with previous workflow-type approaches tha ..."
Abstract
-
Cited by 2 (0 self)
- Add to MetaCart
Introduction I was involved in a research group 1 that was building a collaboration environment called wOrlds (Fitzpatrick, 1995) to support people working together across space and time. The wOrlds system was supposed to overcome some of the problems with previous workflow-type approaches that had led one user to comment "Your system has been designed to be idiotproof, the trouble is we're not idiots ...." (Wastell, 1994, p.35). Given Suchman's description of the situated nature of work and the role of plans in work (1987), it was easy to understand this rejection. In the wOrlds system, we tried to account for this social thinking about the situated contingent nature of work practices by providing shared spaces where work could happen dynamically, rather than a priori workflow prescriptions. When it came to a prototype implementation with a group of systems engineers however, it quickly became obvious that the wOrlds system would al
Self-Reference is an Illustrative Essential
- 25th SIGCSE Technical Symposium on Computer Science Education
, 1994
"... This paper includes an abstract, a discussion of the usefulness of self-reference in early computer science courses, and some examples to illustrate this usefulness. Most readers will not be troubled by this example of self-referential writing. Why then is self-reference, usually in the form of recu ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
This paper includes an abstract, a discussion of the usefulness of self-reference in early computer science courses, and some examples to illustrate this usefulness. Most readers will not be troubled by this example of self-referential writing. Why then is self-reference, usually in the form of recursive subprograms, thought to be so onerous as to be placed in its own left-until-the-end-and-often-uncovered chapter in most introductory texts? Self-reference is one of the cornerstones of computer science from the unsolvability of the halting problem, to writing a Pascal compiler in Pascal, to reveling in the beauty of Quicksort. We argue that the notion of selfreference should permeate first courses in computer science. If this is to be the case such courses should take a view far broader than "Wow, I can average 10 numbers with the skills I learned in my first programming course!" 1 Introduction Students in a first course in computer science have difficulty with a wide variety of topi...
Quit 1.1. Module Details
"... “A firm foundation in the theory of a subject is the hallmark of a professional and an excellent defence against technological obsolesence.” ..."
Abstract
- Add to MetaCart
“A firm foundation in the theory of a subject is the hallmark of a professional and an excellent defence against technological obsolesence.”
Full Screen
"... • To understand, at a high level, what we mean by problem, algorithm, model of computation and program; • To look at problems in more detail and understand what we mean by problem specification and problem instance. ..."
Abstract
- Add to MetaCart
• To understand, at a high level, what we mean by problem, algorithm, model of computation and program; • To look at problems in more detail and understand what we mean by problem specification and problem instance.
Full Screen
"... Aims: • To look at the different types of errors that programs can contain; • To look at how we might detect each of these errors; ..."
Abstract
- Add to MetaCart
Aims: • To look at the different types of errors that programs can contain; • To look at how we might detect each of these errors;

