Anatta.AnattaModule
Anatta

Anatta: Understanding Nature in terms of processes instead of things.

This is the central switchboard for the Anatta project, which will gradually build up into a full course in using Julia to understand the world in terms of non-self (anatta).

To get started, simply install and load the Anatta library, then enter: Anatta.go()

Author: Niall Palfreyman, 01/01/2023

Anatta.ActivityType
Activity

A single activity to be performed and responded to by the learner. An Activity is the basic unit of learning in Anatta. It contains ...

Fields

  • prompt : Text prompting an activity by the learner.
  • hint : Text suggesting to the learner how to respond to the prompt.
  • success : Boolean function that defines the criteria for a successful learner response.

Examples

julia> act = Anatta.Activity( "What is 2+3?", "Add the numbers together", x -> x==5)
Anatta.Activity("What is 2+3?", "Add the numbers together", var"#5#6"())

julia> act.success(5)
true
Anatta.SessionType
Session

Current state of a laboratory of learning activities.

A Session maintains the current state of a learning laboratory experience. It contains ...

Fields

  • anatta_home :: String : Path of the Anatta package
  • anatta_config :: String : Contains registration file of the session learner
  • home_dir :: String : Home folder of the session learner
  • learner :: String : Name of session learner
  • lab_num :: Int : Number of the session laboratory
  • is_pluto :: Bool : Is the session laboratory a Pluto workshop?
  • current_act :: Int : Number of the session activity in the laboratory
  • activities :: Vector{Activity} : Complete list of activities in this laboratory

Notes

  • None

Examples

julia> sesh = Session()
Anatta.actMethod
act()

Display the current activity number to the learner.

Anatta.aniMethod
ani()

Ask Ani to display a friendly menu of Anatta commands.

Anatta.askmeMethod
askme()

Display the current activity to the learner. If this activity exists, display it; otherwise move to next laboratory.

Anatta.commiserateMethod

commiserate( act::Activity)

Provide supportive feedback to an unsuccessful learner response.

Anatta.congratulateMethod

congratulate()

Provide uplifting feedback to a successful learner response.

Anatta.evaluateMethod

evaluate( act::Activity, response)

Apply the success criterion of the activity to the given response from a learner.

Anatta.goMethod
Anatta.go()

Initiate a new Anatta session. First, establish the name of the learner, then look up whether Ani already possesses persistent registry information on that learner. If not, create a new registry entry for the learner. In either case, decide which laboratory, current Activity and Anatta home directory this learner requires, and initialise the session accordingly.

Examples

julia> Anatta.go()
Welcome to Anatta: A julian guide to ...
Anatta.hintFunction
hint( act::Activity=session.activity[session.current_act])

Display a hint for the current activity

Anatta.home!Function
home!( dir::String=pwd())

Set the learner's home directory.

Anatta.homeMethod
home()

Move to the learner's home directory.

Anatta.install!Method
install!(session)

First-time installation and check of the Anatta environment, installing any missing files.

Anatta.labMethod
lab()

Display the current laboratory number to the learner.

Anatta.labfileMethod

labfile( session_path::String, labnum::Int)

Construct a valid labfile name from the given path and laboratory number.

Anatta.nextactFunction
nextact( act::Int = 0)

Move to the next activity. If act is provided, move to that number activity, otherwise move to the next activity in this lab. If that takes you beyond the end of this lab, move to the beginning of the next lab.

Anatta.nextlabFunction
nextlab( lab_num::Int = -1, current_act::Int = 1)

Move to the beginning of the next lab. If lab_num is specified, move to that number lab, otherwise move to the next lab. If that takes you beyond the end of the available labs, stay where you are and inform the learner.

Anatta.poseMethod

pose( act::Activity)

Present the prompting text of the given Activity to the learner.

Anatta.replyFunction
reply( response=nothing)

Learner replies to the current activity with the given response. If this response fulfills the current activity's success criterion, move on to the next activity; otherwise check with learner whether s/he wants to move on or to stay with the current activity.

Anatta.saveMethod
save()

Save the status of the current session to the learner's registry file. Write labfile and currentact to the usr file.

Anatta.setupMethod
setup( library::String; force=false)

Set up the named library within the learner's home directory, forcing overwrite if requested.