Kristjan Kannike

Programming

The book How to Think Like a Computer Scientist explains programming basics via Python.

In the article “Why Functional Programming Matters”, John Hughes argues that functional languages allow for better modularisation of programs.

Structure and Interpretation of Computer Programs video lectures with the book of the same name is an excellent introduction to computer science.

Magic Ink: Information Software and the Graphical Interface is an essay considering software design as a case of classic graphical design.

Unicode

Joel Spolsky reviews Unicode and the encodings preceding it.

All about Python and Unicode is an in-depth overview.

Alan Wood’s Web Site: Unicode support in browsers, Unicode symbol tables, and advice for writing multilanguage web pages. In addition: the character entity table of HTML 4.0.

Python

Python is a language with simple, laconic syntax, easy to learn, yet powerful. Owing to high level data types and support for object oriented programming, complex applications can be written in Python. The Python tutorial comes with the language interpreter.

The Python Grimoire is a quick recipe book for most needed things.

Python Quick Reference is a handy review of most used options, methods, and modules.

Dive into Python by Mark Pilgrim is an in-depth introduction to Python with applications on HTML and XML processing and web services in the later chapters.

Text Processing in Python by David Mertz gives an in-depth introduction to that ubiquitous task, including regular expressions, parsers and Unicode.

Python tutorials refers to about 200 tutorials, both general and specific (e.g. GUI programming, XML processing, scientific computing).

Haskell

Haskell is a pure functional language where even the problem of side effects is solved elegantly.

Haskell for C Programmers is a primer for people used to imperative programming.

Quick overviews Tour of the Haskell Syntax and Tour of the Haskell Prelude (the basic library).

Haskell's Standard List Functions: What do you want to do?

A Tutorial on the Universality and Expressiveness of Fold” is an overview of this ubiquitous function by Graham Hutton.

In how many ways can one define the factorial? The Evolution of a Haskell Programmer ranges from the obvious to the baroque.

Monads

A (hopefully) painless introduction to monads is a fast no-nonsense introduction.

All About Monads is a thorough introduction to monads.

Tackling the awkward squad” by S. P. Jones is an overview of monads, concurrency, exception handling and calling other languages in Haskell.

Education

Vital is a spreadsheet-like implementation of Haskell with a focus on easy creation of graphics and visualisation of data.

Mathematica

The whole documentation of Mathematica, including The Mathematica Book by Stephen Wolfram, is avalable online.

Essential Mathematica for Students of Science is a thorough introduction to calculus, differential equations, plotting and other topics via Mathematica, that will be used to discuss mathematical models from physics and biology.

Scientific Visualization and Graphics with Mathematica gives advice on creating 2D and 3D graphics, and animations.

Pythonika is a MathLink module that allows to write and evaluate Python code from within Mathematica Notebooks.

C++

The C++ Resources Network has a primer on C++, a review of compilers, language reference etc.

Award winning Thinking in C++ by Bruce Eckel gives a thorough and lucid overview of C++ and object oriented programming.

Scripting

Rob van der Woude's Scripting Pages offers hundreds of scripts in Batch, KiXtart, Perl, and Rexx.

Created: 14.08.2004

Changed: 11.03.2008