Welcome to a tutorial site guaranteed to teach you something about programming, algorithms, math, puzzles,  and problem-solving. The basic premise here is that “by example” is an effective way to learn to programme. There’s a growing amount of sample code here to download and run. 

The examples range from simple (less than 50 lines of user code) to a few that have several thousand lines.  Some were written because I wasn’t smart enough, or too lazy, to solve them by hand.  Some probably can only be solved by computer.   And there are one or two that I believe are unsolvable, even with a computer.   The programs all have several things in common…

  • Estimate the value of pi by shooting cannonballs into a  pond or dropping needles on a sheet of paper.
  • Duplicate the hidden mathematics of sunflowers. 
  • Solve those arithmetic word problems (BONG + BONG + BONG = GONGS).
  • Solve chessboard problems like The Knights Tour and Eight Queens.
  • A logic problem solver – at least help solve those logic story problems that are published monthly in logic magazines.  
  • Lots of number problems involving integers, powers, primes, factors, etc.  (Find the largest and smallest non-prime numbers whose prime factors sum to 100).
  • A maze generator.
  • Palindromic number problems – palindromes read the same from the left or right. (What’s the smallest Palindromic number that’s a perfect square and has an even number of digits?)  
  • Simple animated physics programs – bouncing ball, cannon firing.
  • And much more…They solve interesting puzzles or problems that I’ve discovered over the years.  Examples (these may not all be posted yet):
  • They are all implemented in DelphiTM, the modern object-oriented implementation of the Pascal programming language with a visual development environment.   If you already own Delphi, you know what a great language it is.  If not,  check the  About Delphi page to learn more about getting it.   Delphi is a registered trademark of Borland Inprise Corporation
  • The problems can be explored at different levels depending on your interest:  Read about the problem, browse the source, or download the source or executable code and then modify and explore.
  • Almost none are original.  Actually, most all of the code is original,  but the problems are generally not.  I’ve cited sources where I could locate them.  Many are classical problems and puzzles that can be found in books and many places on the Internet.  

I’ve assigned a degree of difficulty to each program based on lines of user-written source code.  That’s not entirely accurate but provides a rough guide. Programs with less than100 user-written source code lines are Beginner level, 100-300 are Intermediate and over 300 lines are AdvancedAbout Delphi also has some links to first programs and tutorials for true beginners.  

OK,  learning comes from doing – so let’s go!