Seven Fields of Computer Programming: A Brief Survey

Written July 7th, 2012, Revised Jan 12th, 2013, Updated & extended Jan 25th, 2020

There are at least seven distinct fields of computer programming that have less to do with languages and more to do with the target platform, desired functionality, and intended user. This article provides a short introduction to each, intended as a brief orienting survey. These are:
(1) Bare metal programming, not requiring an operating system,
(2) Application programming, in which an operating system is presumed,
(3) Mathematical computing and algorithms, from matrix computations and statistical learning to wavelet compression and cryptography,
(4) Web or Client-Server programming, in which the application lives in a client browser in communication with content generated on-the-fly from programs running on central servers,
(5) Mobile or App programming,
(6) Cloud programming, and
(7) Exotic programming (traditional super-computing, quantum computing, biological computing/soft robotics, deep machine learning).

Continue reading this article…

Sums of Integer Powers (Part 2)

(Discrete Mathematics Techniques II)

1st ed. Feb 8th, 2010

Abstract
We continue the 3-part paper exploring how one might solve for themselves the general case of the sum-of-integer-powers problem S_p(N) = \sum_{k=1}^{N} k^p for arbitrary p, the coefficients of whose solution are the famous Bernoulli numbers (1716). In this paper we show to how obtain a p-th order recurrence relation that can be used to iteratively obtain the closed form polynomial for S_p(N) for any given p. Source code is given for computing these polynomials using Maxima, an open-source (free) symbolic computation platform. Continue reading this article…

A Radar Tracking Approach to Data Mining

(Statistics and Data Mining II)

Automated decision problems are frequently encountered in statistical data processing and data mining. An heuristic filter or heuristic classifier typically has a limited set of input data from which to arrive at a set of conclusions and make a decision: REJECT, ACCEPT, or UNDETERMINED. In such cases, pre-processing the input data before applying the heuristic classifier can substantially enhance the performance of the decision system.

In this article, I’ll motivate the use of a radar-tracking algorithm to improve the performance of automated decision making and statistical estimation in data processing. I will illustrate using the website visitation statistics problem.

Continue reading this article…

Analysis of Visitor Statistics: Data Mining in-the-Small

(Statistics and Data Mining I)

For a variety of reasons, meaningful website visitation and visitor behavior statistics are an elusive data set to generate. This article introduces the visitor statistics problem, and describes seven challenges that must be overcome by statistical and data analysis techniques aiming for accurate estimates. Along the way, we’ll encounter the “Good News Cheap, Bad News Expensive” Paradox of Data Mining — or, why information is often used “as-is”.

This article is the first in a series on algorithms, statistics and data analysis techniques (using free and open source tools) using the visitor statistics problem as a vehicle for illustration.

Continue reading this article…

Why Zero Raised to the Zero Power is defined to be One

Updated! February 5, 2017

The value of zero raised to the zero power, (0^0), has been discussed since the time of Euler in the 18th century (1700s). There are three reasonable choices: 1,0, or “indeterminate”. Despite consensus amongst mathematicians that the correct answer is one, computing platforms seem to have reached a variety of conclusions: Google, R, Octave, Ruby, and Microsoft Calculator choose 1; Hexelon Max and TI-36 calculator choose 0; and Maxima and Excel throw an error (indeterminate). In this article, I’ll explain why, for discrete mathematics, the correct answer cannot be anything other than 0^0=1, for reasons that go beyond consistency with the Binomial Theorem (Knuth’s argument).
Continue reading this article…

The Place of Insight, Technique, and Computing in Mathematics

The mathematician Alfred North Whitehead1 observed that “[Advancement occurs] by extending the number of important operations which we can perform without thinking of them.” (Introduction to Mathematics, 1911 2) This is certainly true in mathematics where the development of judicious notation, accompanied by good mathematical technique, extends the capability to perform chains of complex reasoning accurately and efficiently. Through proper problem formulation (tractable yet generalizable), one can sometimes pass from a single insight to the solution of a family of problems, and in some cases, to the solution to the general question itself.3

Here, mathematical computing can provide a useful benefit: helping to efficiently explore conjectures, dispatch with false directions, and save time during the development, error-checking and validation stages of obtaining general results. In industry, where specific or semi-general results are needed fast, such tools allow rapidly working up the required material and providing the necessary certainty before the fully general results or complete proof are ready.

Continue reading this article…

  1. Whitehead was the major collaborator with Bertrand Russell in the strenuous 10 year attempt, ultimately unsuccessful, at driving through the logicist program in Mathematics, i.e. reducing the entire body of mathematics to a fixed system of logic. The program of logicial reductivism, of which this was perhaps the last major attempt, and certainly one of the best known and most influential, was put to rest by Godel’s discovery of the essential incompleteness of every sufficiently strong logical system (proved in his Incompleteness Theorem). In this, he establishes that any logical system sufficiently strong to obtain arithmetic will be able to generate statements that the system cannot prove.
  2. Whitehead claimed in the original that it is Civilization that advances in this way. I have reduced the claim for the purpose of this article.
  3. Fields Medalist Terence Tao has written a short piece that describes the role of rigor and the value of mathematical technique in the training of a mathematician. In the online discussion of this article, he adds two particularly interesting remarks: the first concerns the difference between the training pathways of physicists and engineers versus mathematicians that acknowledges that the final destination is the same, but the training route is different (pre-rigorous, post-rigrous). He then speculates on the observation that the two pathways are not the same, and that the order in which one traverses them influences the final outcome, and he makes the analogy with the order of learning languages.

Stats: 1,066,417 article views since 2010 (March update)

Dear Readers:

Welcome to the conversation!  We publish long-form pieces as well as a curated collection of spotlighted articles covering a broader range of topics.   Notifications for new long-form articles are through the feeds (you can join below).  We love hearing from you.  Feel free to leave your thoughts in comments, or use the contact information to reach us!

Reading List…

Looking for the best long-form articles on this site? Below is a curated list by the main topics covered.

Mathematics-History & Philosophy

  1. What is Mathematics?
  2. Prehistoric Origins of Mathematics
  3. The Mathematics of Uruk & Susa (3500-3000 BCE)
  4. How Algebra Became Abstract: George Peacock & the Birth of Modern Algebra (England, 1830)
  5. The Rise of Mathematical Logic: from Laws of Thoughts to Foundations for Mathematics
  6. Mathematical Finance and The Rise of the Modern Financial Marketplace
  7. A Course in the Philosophy and Foundations of Mathematics
  8. The Development of Mathematics
  9. Catalysts in the Development of Mathematics
  10. Characteristics of Modern Mathematics

Electronic & Software Engineering

  1. Electronics in the Junior School - Gateway to Technology
  2. Coding for Pre-Schoolers - A Turtle Logo in Forth
  3. Experimenting with Microcontrollers - an Arduino development kit for under £12
  4. Making Sensors Talk for under £5, and Voice Controlled Hardware
  5. Computer Programming: A brief survey from the 1940s to the present
  6. Forth, Lisp, & Ruby: languages that make it easy to write your own domain specific language (DSL)
  7. Programming Microcontrollers: Low Power, Small Footprints & Fast Prototypes
  8. Building a 13-key pure analog electronic piano.
  9. TinyPhoto: Embedded Graphics and Low-Fat Computing
  10. Computing / Software Toolkits
  11. Assembly Language programming (Part 1 | Part 2 | Part 3)
  12. Bare Bones Programming: The C Language

Pure & Applied Mathematics

  1. Fuzzy Classifiers & Quantile Statistics Techniques in Continuous Data Monitoring
  2. LOGIC in a Nutshell: Theory & Applications (including a FORTH simulator and digital circuit design)
  3. Finite Summation of Integer Powers: (Part 1 | Part 2 | Part 3)
  4. The Mathematics of Duelling
  5. A Radar Tracking Approach to Data Mining
  6. Analysis of Visitor Statistics: Data Mining in-the-Small
  7. Why Zero Raised to the Zero Power IS One

Technology: Sensors & Intelligent Systems

  1. Knowledge Engineering & the Emerging Technologies of the Next Decade
  2. Sensors and Systems
  3. Unmanned Autonomous Systems & Networks of Sensors
  4. The Advance of Marine Micro-ROVs

Math Education

  1. Teaching Enriched Mathematics, Part 1
  2. Teaching Enriched Mathematics, Part 2: Levelling Student Success Factors
  3. A Course in the Philosophy and Foundations of Mathematics
  4. Logic, Proof, and Professional Communication: five reflections
  5. Good mathematical technique and the case for mathematical insight

Explore…

Timeline