Programming Taskbook



User registration   Restore password



1100 training tasks on programming

©  M. E. Abramyan (Southern Federal University), 1998–2017


Main | Overview


Certificate of official registration of computer program system Programming Taskbook 4

Download the Programming Taskbook Complete Edition (ver. 4.17 in English and Russian)

Download the Programming Taskbook Mini Edition (ver. 4.17 in English and Russian)


Programming Taskbook is intended to be used while learning programming languages such as Pascal, Visual Basic, C++, C#, Visual Basic .NET, Python, Java, Ruby. It contains 1100 learning tasks that cover almost all sections of a basic programming curriculum—beginning with scalar types and control statements to complicated data structures and recursive algorithms.

Programming Taskbook version 4.16 has been implemented for use in the following programming environments (environments for development of Win32-applications are supported only; in particular, the 32 bit JDK should be used for NetBeans and Eclipse IDEs):

  • Borland Delphi 7.0 and 2006, in particular, Turbo Delphi 2006 for Windows;
  • Free Pascal Lazarus (;
  • Microsoft Visual Basic 5.0 and 6.0;
  • Microsoft Visual Studio 2008, 2010, 2012, 2013, 2015, 2017 (C++, Visual Basic .NET and C# languages);
  • Code::Blocks 13 and 16 (C++);
  • IDLE (Python 2.5, 2.6, 2.7, 3.2, 3.3, 3.4, 3.6);
  • PyCharm Community Edition 3.4 and 4.0 (Python of versions mentioned above);
  • Wing Personal IDE 6.0 and Wing 101 IDE 6.0 (Python of versions mentioned above starting from 3.2);
  • NetBeans IDE 6.9, 7.2, 7.3, 7.4 (Java and Ruby);
  • Eclipse 4.2 Juno, 4.3 Kepler, 4.4 Luna (Java).

Programming Taskbook is also a part of the Pascal ABC and PascalABC.NET programming systems developed by Prof. S.S.Mikhalkovich ( Also Programming Taskbook may be used jointly with the ProgrammingABC.NET web development environment ( for PascalABC.NET, Visual Basic .NET, C# and Python languages.

Starting from the version 4.12 the Programming Taskbook for MPI—problem book on parallel MPI programming—is available in Russian and English.

The learning options listed below are supported by Programming Taskbook:

  • display the task text and corresponding data on screen;
  • display correct results for each task;
  • subroutines for initial data input and results output;
  • additional control of input-output operations;
  • automatic correctness checking of results computed by student's program;
  • storing running program data into a special log file (file of results);
  • complete register of solved task as result of a series of successful test program runnings.

Programming Taskbook sufficiently facilitates educational task execution. It is due to it performs automatically standard input-output operations unlike manual coding. Its advantage is especially obvious when performing processing of arrays, strings, files, and dynamic data structures. Submitting ready input data to students, Programming Taskbook directs their efforts to the development and program implementation of the algorithm of the task solving; and the variety of input data submitted by Programming Taskbook provides the effective testing of the offered algorithm.

Programming Taskbook 4 is officially registered in the Software Register of Russian Federation on April, 28th, 2007 (the certificate No. 2007611815).

Development of English version of Programming Taskbook 4 has been supported by European Consortium of Innovative Universities as a part of the joint Russian-German project "Supporting Assessment of Program Assignments" (SAPA) in 2006-2007.

Additional tools

The Programming Taskbook package contains the following additional tools:

  • PT4Demo shows all tasks of Programming Taskbook in demo mode;
  • PT4Load launches a chosen environment and loads a template for solving a selected task in this environment;
  • PT4Results shows information about the process of solving tasks; this information contains in the results.dat file.

These tools are available from the Programming Taskbook menu "Start | Programs | Programming Taskbook 4". The shortcuts of these tools are created automatically in any working directory. Since the 4.11 version, the PT4Results tool is available directly from the Programming Taskbook window.

Solving educational tasks in the ProgrammingABC.NET WDE

In the ProgrammingABC.NET web development environment all task groups of the Programming Taskbook are available to solve on the PascalABC.NET language (with one exception: the Dynamic and Tree groups based on pointers are unavailable; instead you can use the groups with the same name which are based on objects).

Program templates for all tasks can be loaded into the ProgrammingABC.NET environment directly from the "Tasks" section of the Programming Taskbook site. Just click on the [Pascal] link placed after the name of required task.

For some tasks the complete solutions may be loaded into the ProgrammingABC.NET environment instead of program templates. Names of such tasks are in italics. The complete list of the tasks with the solution is given below:

Programming Taskbook Mini Edition

Programming Taskbook Complete Edition (PT4Complete) requires registration; after the registration all of 1100 tasks are available for solving. Programming Taskbook Mini Edition (PT4Mini) is a freeware; it contains 270 tasks that are available for solving. The tasks included in the Mini Edition are marked by the symbol "°". All these tasks are also available for solving in unregistered version of PT4Complete. All tasks that are available for solving in PT4Mini are listed below:

Begin1–Begin40, Integer1–Integer30, Boolean1–Boolean40, If4, If6, If8, If12, If22, If26, Case2, Case4, Case9–Case10, Case18, For5, For12–For13, For15–For16, For19–For20, For33, For36, While1–While2, While4, While7, While11–While12, While22–While23, Series1, Series15–Series17, Series19, Series21, Series30, Proc4 (Func25), Proc8 (Func29), Proc10 (Func31), Proc20–Proc21 (Func5–Func6), Proc25 (Func10), Proc40 (Func40), Minmax1, Minmax6, Minmax12, Minmax19, Minmax22, Array4, Array7, Array16, Array32, Array47, Array54, Array63, Array71, Array79, Array89, Array92, Array108, Array112, Array116, Array134, Matrix7, Matrix24, Matrix36, Matrix53, Matrix74, Matrix82, Matrix88, Matrix100, String9–String10, String19, String29, String41, String44, String63, String70, File2, File10, File25, File27, File41, File43, File48, File50, File58, File61, File63, File67, File74, Text1, Text4, Text16, Text21, Text24, Text34, Text38, Text42, Text44, Text57, Param1, Param17, Param30, Param40, Param49, Param53, Param59–Param61, Recur1, Recur4–Recur5, Recur10, Recur14–Recur18, Recur21, Recur25, Recur27, Dynamic2–Dynamic3, Dynamic5, Dynamic8–Dynamic12, Dynamic25, Dynamic30, Dynamic49, Dynamic55, Dynamic59, Dynamic63, Dynamic70, Dynamic74, Dynamic78, Tree2, Tree6, Tree9, Tree12–Tree13, Tree32, Tree34, Tree40, Tree47, Tree49, Tree53, Tree59, Tree65, Tree70, Tree74–Tree76, Tree79, Tree86, Tree92.




Designed by
M. E. Abramyan and V. N. Braguilevsky

Last revised: