Coding Tutor 17+

Interactively learn to code

John Kountz

Designed for iPad

    • USD 0.99

Screenshots

Description

Learn to code with Pascal

I created Coding Tutor to help anyone learn to about coding.

The best description of this App might be that it works like an interactive book where you can both read and try.

You will learn by doing.

One of the great joys of writing code is watching it execute and being able to interactively engage with the program as it executes. No currently available coding app on iOS offers the ability to execute (interpret) code and run interactively on the device. Instead they submit the code to a remote server. To use these you MUST be connected to the internet.

Not so here. All code is executed on your device.

For example, when read(expression, expression, …) is running, you are prompted to enter responses for the variables interactively.

Learning by doing is fun.

I chose Pascal as the language because it is easy to read and understand. Pascal is a well structured procedural language with simple structure.

Today there are many beautiful object oriented (OO) programming languages. In my experience, object oriented languages (Java, Swift, C#, Python, Kotlin, TypeScript, etc.) are significantly harder to grasp.

Pascal is simple and provides a solid foundation for the novice learning to code.

I have implemented a tiny Pascal compiler, interpreter and runtime environment where you can safely learn and play in a sandbox which will not crash or otherwise wreak havoc on your device.

Keep in mind my goal here was not to create a complete Pascal compiler supporting every aspect of the language and runtime. This is a tiny app designed for teaching. Once you have the basic concepts, I would encourage you to investigate Free Pascal or any number of complete Pascal compilers that are freely available.

Here’s a brief summary of what is supported.

Variable data types:
- Integer
- Real
- String
- FileHandle
- Arrays of Integer, Real, or String.
- Records

This represents enough to begin learning. I have not implemented user defined types aside from Records. File writes are restricted to a limit of 8,192 writes per FileHandle. Array length is similarly limited to 8,192 elements. Enough to learn but not blow-up your devices.

Runtime library:
- Console write, writeln, read
- File (sandboxed) read, write, assign, append, reset, rewrite, close, seek (begin, or end), and delete.
- Array length (ArrayLen)
- String manipulation including StrLen, SubString (a.k.a. Copy), StrSplit, Upper/LowerCase
- Type conversions ToReal, ToInteger
- IsFinite to test for finite Real values
- Exit to end currently executing program

Control flow:
- if expression then else
- while expression do
- repeat statements until expression
- for var := expression {to,downto} do

Operator support is similarly a subset of the full Pascal language.

The App explains these concepts in detail and provides complete working code that can be modified, and executed interactively to help teach the concepts.

Finally, programming is a trade that can be learned by anyone with the aptitude. I created this app to help others discover the joys of writing code.

I am happy to answer questions, review programs you have written for which you have questions. In the Forward section of the doc’s you will find an email where you can send questions.

I am personally grateful to all of the giants that have gone before me and provided beautiful programming languages. Specifically I want to thank Anders Hejlsberg, a giant that helped me along the way.

Hopefully this tiny app will similarly inspire future programmers.

Cheers-
jkountz

What’s New

Version 1.08

New support for Pascal Record types

App Privacy

The developer, John Kountz, indicated that the app’s privacy practices may include handling of data as described below. For more information, see the developer’s privacy policy.

Data Not Collected

The developer does not collect any data from this app.

Privacy practices may vary based on, for example, the features you use or your age. Learn More

Supports

  • Family Sharing

    Up to six family members can use this app with Family Sharing enabled.

More By This Developer