Quotes from a review of sc in the British Journal of Mathematical & Statistical Psychology:
"sc is a statistical calculator in much the same way as a Ferrari is a family runabout. The vast range of internal and library routines can be mixed and matched into more analyses than most of us would want in a lifetime. The range of statistical and mathematical black boxes isso extensive and the methods so up to date, that sc has the potential to match, and in many cases far outstrip, virtually any other statistical package...sc is particularly strong on non-parametric and distribution- free methods and on regression...an exceptionally comprehensive on-line HELP system...the manual is helpful and readable...sc has all the power and flexibility of GAUSS with the extra bonus of a far more extensive library of ready-made statistical routines."

sc is currently running in 10 countries, has been chosen by the U.K. Open University as the software for its M246 Statistics course, is used for research on the national economy by the Central Statistical Office in London, and has been exposed to thousands of student-hours of testing.

sc is a statistical calculator that runs under MS-DOS and Unix. It can be used very simply, like a hand-held calculator: for example, you can evaluate scalar or vector/matrix expressions, or type Tprob(2.145,23) to find an area in the right tail of Student t with 23 degrees of freedom. At this level, sc differs from hand-held calculators in what is built in: you can look up non-central distributions, perform Fourier analysis, carry out robust smoothing, do bootstrap and jack-knife calculations, fit many types of regression model, minimize or integrate a function, and so on, in each case with a single instruction.

But sc is also a structured programming language, and it comes with over 400 built-in routines (compiled C) and a library of over 400 external routines (written in the sc language and loaded from disk as required). This gives instant access to a large range of statistical methods. And you can easily extend sc by defining your own functions and procedures. Because there are over 800 routines to draw on, your own routines will usually be easy to write, extremely compact, and very fast in execution. Unlike most similar software, sc supports recent distribution-free methods, robust methods, and methods based on permutation and rerandomization, as well as classical methods. It thus provides a fast, effective, and very flexible way of going beyond the few traditional 'set pieces' offered by most statistical packages.

Language Features

Long variable names. Vectors and (regular or ragged) matrices, that can be re-sized without loss of contents. Subvector and submatrix notations. While-loops, repeat-loops, if-then-else conditions. Function and procedure definition, allowing the number and type of arguments to vary across calls. Global and local variables. Recursion. Multiple assignment. Escape to the Operating System, leaving sc suspended. Renaming or hiding any sc symbols. Built-in and user-definable constants. Level of type-fixing is controllable by the user. You can allow functions of scalars to operate directly on vectors or matrices, or functions of vectors to operate directly on matrix rows: e.g. plot(log(Y),sqrt(X)) will plot a log-transformed version of vector Y against a square-root- transformed version of vector X, or gt(M,100) will make a matrix of the same shape as M containing 0 or 1 as the corresponding entry in M is <= or > 100. There is also an 'apply' mechanism, which often avoids the need for explicit loops, reducing the risk of error and leading to much faster execution. There are special facilities for storing and manipulating sparse vectors and matrices efficiently. Functions and procedures, whether built-in or external, can be passed as arguments to external routines. There is a pseudo- structure mechanism, which allows a routine to receive a single argument, P (say), and to refer to its 'components' (say P.x, P.y, and P.label).

Help

Almost all the printed manual is available online while running sc or from the Operating System, including the tutorials and an alphabetically organized language reference. There is an 'a propos' mechanism, that will list all routines relevant to a particular topic, and another to find all routines that match a fragment of a routine name. You can enquire about the role and use of any built-in or external routine, and run a supplied example automatically. There is an online glossary of technical statistical and computing terms. You can inspect the history of the current session at any point. There is a built-in command-history mechanism, allowing previous commands to be recalled, edited, and re-entered; this greatly reduces the amount of typing necessary. sc is very well protected against user errors, there are extremely specific error messages, and you can set various levels of 'tracing': for example, when an error condition arises you can arrange for the recent history of routine-calls to be given, plus information about the status of current variables. You can easily modify or extend the help system if you wish: for example, if you write your own routines, you can integrate any documentation you wish to provide into the help system.

Files

sc supports text data-files (which can easily be exchanged with other software) and binary files (for rapid access to large amounts of data). Data-files can consist of raw data, or can be 'self-describing', that is, can contain vector and matrix definitions as well as the numbers themselves. By default, data items need to be separated by 'white space', and there are no other constraints on their layout; but you can also read data- files containing separator characters (e.g. ',' or ';'). There is a routine to make it easy to convert from column-oriented layouts (e.g. in SPSS). There are many routines to help with re-arranging data, by re-ordering vectors or matrix rows, selecting matrix rows or columns, purging values outside a certain range, and so on.

Versions

For any standard PC with 640K RAM and a hard disk, there is a version of sc to run in Real Mode: because of the limited amount of memory available, this limits vector sizes to 8190 elements, and matrices to 8190 rows. For 386/486/Pentium machines with at least 8 Mbytes RAM (4 if you are willing to accept some reduction in functionality), VGA/SVGA, and at least 20 Mbyte free space on the hard disk, there is a version of sc to run in Protected Mode: this is a full 32-bit program, which can use Extended Memory and can support up to 32 MByte Virtual Memory by swapping from RAM to your hard disk. The Protected Mode MS-DOS sc does not have any built-in limits as to vector or matrix size, and runs considerably faster than the Real Mode version: it is strongly recommended if you wish to work with large data-sets. The Unix sc is similar to the MS-DOS Extended Memory version: it will use whatever Virtual Memory support the particular Unix machine provides. Unix and MS-DOS Protected Mode versions have a few additional built-in routines: an additional minimization routine (conjugant gradients), a density trace routine using a Gaussian kernel, a very fast network algorithm for exact tests on r-by-k contingency tables, and Stromberg's (1991) exact Least Median Square multiple regression algorithm (yes, sc is up to date). All MS-DOS versions share a command-history mechanism and use pop-up windows for help and menus; these features are not used in all Unix versions. Apart from the differences listed, all versions of sc behave identically, and share the same library of external routines. There is even a version to run on T800 or T9000 transputers.

Manual

The printed manual contains 8 introductory tutorials, an A-Z reference section, alphabetical and categorized lists of all built-in and external routines, a section on error messages, details of the main algorithms used by the built-in routines, information about how to reconfigure sc, and descriptions of the various editors, file-viewers, searching, and character-translation utilities supplied with sc. It is in loose-leaf ring book format, about 550 pages in 3 volumes, with sectionalized page numbering, so that the printed documentation can be updated in step with the software, as frequently as necessary. Almost all the manual is also available online.

Plots and displays

sc supports text-screen (80-by-25) plots and displays and high resolution screen and paper output by collaboration with gnuplot and ggrap in Unix and Protected Mode MS- DOS versions. Ready to run versions of gnuplot and the ggrap/pic/troff/tbl/eqn tools are supplied free with Unix and Protected Mode MS-DOS sc. See the separate list of What you can do in sc without any programming for a list of the plots and displays provided.

Differences from other products

sc differs from other extensible and programmable statistical systems in the number of ready-to-run routines provided. The large number of built-in (compiled C) routines, and the advanced language features such as function extension, make programs written in the sc language very fast in execution, so that there are often minimal overheads relative to compiled C programs. And sc does not suffer, like some software, from inefficient memory management, so it can cope with huge problems (in MS-DOS Protected Mode or Unix versions) without being slowed to a halt by unnecessary swapping. Recently a user sent in a report of how a sequence of operations on some very large matrices, which had to be run overnight on a Sun running S Plus, could be done by sc in about 2 minutes: we are not talking about minor speed-gains here. sc is also unusually up-to-date in its statistical contents.

Speed

Some tests of accuracy and speed are given in the item Linux Pentium II Demo on the home page.

Reviews

Full-length reviews of sc are:-
bulletLovie, P. (1990), British Journal of Mathematical & Statistical Psychology, 43(2), 339.
bulletDaly, F. (1991) Statistics & Computing, 1, 63-70.
though sc has grown considerably since even the more recent of these.