4.3BSD/usr/contrib/apl/lib/news

n*.KB	HnewU cAAthis workspace contains information concerning
recent changes to apl and the contents of the apl
library.

for available workspaces type ws, for available
functions type fn.

for differences between unix apl and ibm apl type aplx

if you wish to add programs or workspaces to the 
library 'mail reeves' with the details.
Llxnewwss.}}the following workspaces are currently available

fftws:  the fft algorithm in apl
graphws:  a graph plotting system (results are displayed
	on the terminal). see 'reeves' for documentation.
plotws: a graph plotting system which uses a different
        format to graphws.
anovaws: anova statistical analysis, accepts missing data
gradesys: a system for  maintaining and analysing the grades
	given in a course.   type 'dgradesys' for details
ngradesys: a newer more convenient version of gradesys
aw:	an alpha-omega notation form compiler.
AW:	alternate name for the 'aw' workspace
iows:   some io functions for dealing with interprocess
        communication.
editws: a unix type editor for apl
shapews: fnctions for changing a list of names into
        a 2 dimensional array

 to load a workspace type ')load workspace-name'
 further details for each workspace are contained
 within them

fnKdi77the following general purpose functions are available
in raw function form.

time:  finds the cpu time needed to execute a function
ttime: prints the total amount of cpu time used
vread: reads a unix file into a 1 dimensional apl character
       variable (use Lfloat as well to read numeric data)
vwrite: write a variable into a unix file
vrd:	reads a unix file into a two dimensional apl 
	character matrix
vap:	writes a two dimensional apl character matrix into
	a unix file.(padding spaces are also output)
vrnum: reads a character file of numbers generated by a
       fortran/c/pascal program .  a numeric
       vector containing all the numbers in the file
       is returned.
dstat: computes some simple statistics on a vector of
       numbers.
dft:   a full dyadic format function
eft:   a format function for exponential output
det:   compute the determinant of a matrix
edtxt: edit a variable using xed.(data format is with embeded
       newline characters like this variable.)

to load any of these functions into the current workspace
type')read fn/functionname'

dgradesysRe    apl score system

		A. P. Reeves 		fall 1978

  An apl workspace is available which is designed to maintain
an perform anaysis on a set of class grades.   The system is
interactive in nature alowing each user to select the set of
functions suitable for his or her needs.

    To obtain a fresh copy of this system, type ')load gradesys'
after entering apl.

Setting up for a new set of grades:  two functions are used to
initialize the system for a new class, these are

setup 	Type 'setup' then you will be prompted for  a set of grade
	types, e.g. test ,quiz... .Enter each type on a new line and
	terminate with a null line.  Then you will be promted for each
	weight to be assigned to each grade type,(these may be changed
	at a later date).

readnames 'file'  	The names of the students must be input.  Use
	the UNIX editor to create a list of names using a new line for
	each name (the system will only use the first 8 characters of
	each name). Then use 'readnames' to read this file in. Note,
	the name of the file should be enclosed in quotes.

The system is now setup.   save a copy of this setup workspace by typing
')save xxx' The workspace will be saved in the file xxx and may be 
loaded in the future with the load command.  It is advisable to keep
several backup copies of an active grade workspace.


Entering a new set of grades:

newscore	Type 'newscore' and you will be prompted for the grade
	type and the maximum possible score.  You will then be prompted
	for a grade for each student.

Adding and dropping students:

newname		To add a new students to an existing system type 'newname'
	You will then be prompted for a list of names.   Enter each on
	a new line and then terminate the list with a null line.   Note,
	any old scores for these new students must be inserted with the
	'update'  function.

drop		To drop students from an existing system type 'drop'.
	You will the be prompted for a set of student id's .The scores
	to date for these students will be printed and confirmation
	will be requested before the deletion occurs.

Summary and analysis:

scoresummary	This function prints out all the raw scores for all
	grades.

statsummary	the function 'statsummary' computes simple statistics
	on each set of scores and prints out the results.

analysis	The function 'analysis' prints two outputs.   First
	the average percent grade for each grade type for each student
	is computed and also a total percentage grade based on  the
	weights for the course is calculated and printed.   Then
	a ranking printout is generated.   Students are listed in order
	of their rank of the total and their ranking for each grade type
	is also listed.

analstats	This function prints simple statistics on the data
	generated by the first part of 'analysis'.   The function
	'analysis' must be run before this function can be used.


printstat 'grades'	Printstat will print simple statistics for
	a selected set of grades.   The parameter 'grades' should
	be one of the grade names listed in the score summary
	headings, or if analysis has been run then one of the grade
	types may be selected.

printhist 'grades'	This function prints a histogram of the
	selected data.  Its parameter is similar in range to the 
	parameter for 'printstat'.

printstat0		This function is similar to printstat
	except that all 0 scores are first discarded.

printhist0		This function is similar to printhist
	except that all 0 scores are discarded.

changing grades:

'name' change 'scoretype'	The function change enables individual
	scores to be changed.  Type the students name (within quotes)
	then change and then the score type (within quotes).   You will
	then be prompted for a new grade.   If no new grade is required
	give a negative grade and the change command will be ignored.

limitations:

1)   names are usually limited to 8 characters or less.
2)   the histogram assumes a scale of up to 100 points.
3)   Three digit scores and fractional scores upset the
     printing format of 'scoresummary'.
edtxt edtxt;fd;name;vr;r
L'{'variable name? '
name { L'
fd { 390 Lcreat 'apltxt.tmp'
}(fd < 0)/error
r  { fd Lwrite BJ name
fd { Lclose fd
Lrun 'xed apltxt.tmp'
fd { 260 Lopen 'apltxt.tmp'
}(fd<0)/error
vr { ''
more: vr { vr,r { fd Lread 256
} (0#Rr)/more
fd { Lclose fd
r { BJ name,' { vr'
Lrun 'rm apltxt.tmp'
}0
error: 'Can''t open file: apltxt.tmp'
aplxesvv  
laminate is not supported
inner product and outer product does not work with
  character data (convert args to numeric )
a local variable may not have the same name as a function
Lio is not supported (but see dyadic i-beam 29)
dyadic format does not accept a single element right arg
dyadic format does not generate exponetial format output
  (but see fn/eft)
dyadic format left arg rank must not exceed 2
many quad functions are implemented as i-beams

***extensions***
index origin may be set to any value
catenation of mixed data types converts the type of 
  the right argument.
execute will accept a matrix right argument