PP4S Home Page

Welcome to the PP4S Website!

The aim of the website is to provide valuable, but free, resources to help promote Pascal programming in schools by sharing ideas, knowledge and experience. We welcome contributions and feedback on the site. Please let us know what you think.

There is plenty more still to come but there is enough on the site for a beginner to learn how to program.

Feedback from James Dent, ICT Curriculum Adviser, Hertfordshire LA:

"Your site is great. It builds up talented young people's understanding of Computing and Pascal capability, understanding and skills in quite a simple way through use of various examples. It's very good for students that want to develop their computing talents independently. Pascal does seem to be preferred by quite a lot of schools nationally at the moment."

We have added this quote and others to support our reasons for encouraging you to learn Pascal at school.

We advise beginners to:
  1. follow the instructions on Getting Started with Lazarus (updated to refer to the latest version of the IDE) or our section on Getting Started with Delphi;
  2. start to work through the first few tutorials in order;
  3. look at the student programs, starting with the more straightforward ones at the beginning the table.

New! Steven is continuing to impress with his enjoyable game Invader. You control an invading bug with the mouse and try to survive for as long as possible by avoiding the moving white blood cells. Steven produces smooth motion graphics and uses alpha blending to good effect. He also provides music and levels that change automatically as you progress. You would not guess that he is our youngest contributor!

New! We have added a tutorial on databases. We provide some theory then give practical steps for downloading the (free) Firebird database management system and demonstrate its use in Lazarus applications. The tutorial includes relational databases, primary and foreign keys, constraints, DML, DDL, SQL, stored procedures, the isql command line tool, master-detail relationships and reports. We show how you can use ClientDataSets in Delphi to produce a convenient local database. Experiment with databases to experience a surprisingly different type of programming!

The remainder of this page is our description of the previous update to the website.

We are proud to present a highly educational contribution from Christopher Winward. Program A_star not only calculates the shortest path through a network of nodes using the A* algorithm but also allows you to:
  • position the nodes by dragging them with the mouse;
  • add and delete nodes;
  • introduce links between nodes.
The nodes are colour coded according to whether they are the start node (red), the destination node (green), an intermediate node on the shortest path (yellow), or otherwise a node that is explored (grey) or unexplored (white). The following screenshots show how the shortest path changed when we dragged the destination node. You can see the values for the lengths of the links and check that the algorithm is working.

Shortest path (green) changes as F is repositioned

Shortest path (green) changes as F is repositioned

Christopher has divided his code into logical units and has commented it clearly. His experience of writing substantial games has enabled him to write fluent code that will help you to learn.

New! Steven's program my_first_sdl is a most promising start to his use of the SDL and SDL_gfx libraries. He creates an appealing motion graphic by superimposing ellipses drawn with gradually changing radii. Steven is our youngest contributor so far and we hope that his code will encourage others to tackle SDL.

We have extended our tutorial on forms applications to cover providing HTML help in Lazarus and Delphi. We provide demonstrations of using the TWebBrowser control in Delphi and the TIPHTMLPanel in Lazarus. Other types of control introduced include TCheckbox, TBitBtn and the powerful TSynEdit.

Now that student contributors are becoming more advanced programmers we need to revisit earlier tutorial topics and describe difficult techniques that we do not consider to be suitable for beginners. Arrays for Enthusiasts covers array parameters, dynamic arrays and vector processing.

We have added a page to our guide to Lazarus forms applications in the Resources section. This describes the use of the Lazarus Project Information file (extension .lpi) and the Lazarus Project Session file (extension .lps).

Programming - a skill for life!

Introducing Pascal Programming for Schools