Blackboard Computing Adventures πŸ’‘
9 subscribers
786 photos
73 videos
61 files
262 links
Welcome to BCA ⚑⚑ our Virtual Learning Space. Mostly Blackboard snapshots, sometimes with explanatory/exploratory and analytical notes. Open teaching efforts by Fut. Prof. JWL at his BC gate on 1st Cwa Road and HQ research dissemination.
Download Telegram
Internet π’€­ President
ApplyingTRANSFORMATICSinGENETICS_29AUG2025_fut_prof_JWL_FINAL_FIRST.pdf
Final-Signature_for_Contract_9781041317654_-_Transf (1).pdf
426.6 KB
TRANSFORMATICS in GENETICS finally has a formal contract from a reputable International Publisher! πŸΎπŸ‘βœ¨πŸ€­πŸ“¦πŸ“—πŸ“—πŸ“—βœ¨βœ¨βœ¨ Physical Publication of the book slated for 2026. The publisher is Taylor & Francis #upcomingbooks #publishers #contract
Blackboard Computing Adventures πŸ’‘
Final-Signature_for_Contract_9781041317654_-_Transf (1).pdf
Greetings to readers of the first edition... Please keep checking in 2026 for the final physical copy. We'll let you know once it's ready and available internationally βœ“
Introducing TDT TEA DATA TEMPLATES

-------------{~}Β°

With TEA v1.2.4, we have introduced an example standard program that shows how to generate random dynamic datasets based on data schema templates in a format we are calling TDT (TEA DATA TEMPLATES). You can generate datasets in formats such as JSON, CSV, YAML, Excel, TODO-Lists, etc.

https://youtu.be/D3dy_wvZPRM

Go to the TEA WEB IDE and checkout how this works plus examples already made available as part of the TEA Standard Programs. πŸ΅πŸƒβœ¨πŸ‘†πŸΌ

{Name: "<p!:5|z*:|t!.:>", Age: <n!:101>, Gender: "<p!:1:1:FM>"},[5]

And that would generate random data such as...

[
{Name: "Tnayd", Age: 54, Gender: "F"},
{Name: "Brux", Age: 66, Gender: "M"},
{Name: "Essyj", Age: 77, Gender: "M"},
{Name: "Skhfu", Age: 71, Gender: "M"},
{Name: "Tai L", Age: 92, Gender: "F"},]

#datascience #stochasticdatasets #datatemplates #miniprograms #dataengineering
Blackboard Computing Adventures πŸ’‘
Video
What the associated TEA CODE looks like?

#########################################
# STRUCTURED DYNAMIC DATA GENERATOR v.1
#----------------------------------------
# Can parse TEA Data Templates(TDT)
# and generate random data based on
# specification and embedded TEA code.
# Details on TDT syntax in the TEA TAZ Book
#########################################

#----| Sample Data Specification |------
#in case no explicit data was provided, use TDT template...
i:{ [{ "Name": "<p!:8|t!.:|z*:>", "Age": "<n:26:8>" "Description": "<p!:|s:|s:|z:>" },][5] }

#----| CONSTANTS |------
v:vOP_LT:{<}
v:vOP_INCR:{+1}

#----| PRE-PROCESS |----
v:vSCHEMA #store the data schema

#extract the core schema object only...
d:\[\d+\] | d:[\[\]] | v:vSCHEMA_TEMPLATE

#extract the number of objects to generate..
y:vSCHEMA | d!:\[\d+\] | d:[\[\]] | v:vN_RECORDS

#initialize empty output dataset..
v:vDATA_OUTPUT:{}

#init counter of records created thus far
v:vN_ITER:0

#----| DATA-GENERATION-PROCESS |----
l:lSTART_GEN

#test if we already reached limit, so we finish...
g*:{}:vN_ITER:vOP_LT:vN_RECORDS | r.: | f:^false$:lFINISHED_GEN

#process record to be added to list..
y:vSCHEMA_TEMPLATE | v:vGEN_RECORD

#######| PROCESS a RECORD |#####
l:lPROCESS_RECORD
y:vGEN_RECORD

#----| inject dynamic values... |----
#first, get all dynamic expressions
d!:<[^<>]*> | v:vDYN_EXPRESSIONS

y:vDYN_EXPRESSIONS
#if empty, move on...
f:^$:lDONE_PROCESS_RECORD

#extract only the first one...
d:><.* | d:< | d:> | v:vTEA_EXP

#evaluate it and store result
e*:vTEA_EXP | v:vTEA_EXP_VAL
#override dynamic field in template with computed value
y:vTEA_EXP | x:< | x!:> | v:vTEA_EXP | r*:vGEN_RECORD:vTEA_EXP:vTEA_EXP_VAL

#store final generated record
v:vGEN_RECORD

#process the remaining expressions too...
j:lPROCESS_RECORD

#done processing record template
l:lDONE_PROCESS_RECORD

#add it to the list...
g*:{
}:vDATA_OUTPUT:vGEN_RECORD | v:vDATA_OUTPUT

#increment record gen counter
g*:{}:vN_ITER:vOP_INCR | r.: | v:vN_ITER

#loop
j:lSTART_GEN

#----| DATA-GENERATION-COMPLETE |----
l:lFINISHED_GEN

#post-process data... enclose into JSON array...
y:vDATA_OUTPUT | x:{[} | x!:{]} | v:vDATA_OUTPUT

y:vDATA_OUTPUT #present final dataset and quit


#teacode #transformingexecutablealphabet #standardapplications #examples #dataengineering
Blackboard Computing Adventures πŸ’‘
Video
Go and START TDT Immediately:

https://tea.nuchwezi.com/?i=Your%2BTDT%2BTEMPLATE%2B%3Cn!%3A%0A%3E%2BHERE%5B5%5D&fc=https://gist.githubusercontent.com/mcnemesis/67a4ed5c72540384298c2d798de8d730/raw/generating_random_data_from_TEA_DATA_SCHEMA_specifications.tea

Sample Use-Case: Generate QR-CODE-like ASCII-ART via TEA Data Templates?

Try this TDT Model as the Input:

<p!:4:{⬜}:{β¬œβ¬›}>[5]

That, when executed against v1 of TDT shall produce outputs such as these:


[
β¬›β¬œβ¬›β¬œβ¬›β¬œβ¬œ
β¬›β¬œβ¬›β¬œβ¬›β¬œβ¬œ
β¬›β¬œβ¬›β¬œβ¬œβ¬œβ¬›
β¬›β¬œβ¬›β¬œβ¬›β¬œβ¬œ
β¬œβ¬œβ¬›β¬œβ¬›β¬œβ¬›]

[
β¬›β¬œβ¬œβ¬œβ¬›β¬œβ¬›
β¬›β¬œβ¬›β¬œβ¬›β¬œβ¬œ
β¬›β¬œβ¬œβ¬œβ¬›β¬œβ¬›
⬜⬜⬜⬜⬜⬜⬜
β¬›β¬œβ¬›β¬œβ¬›β¬œβ¬œ]



[
β¬œβ¬œβ¬œβ¬œβ¬›β¬œβ¬›
β¬›β¬œβ¬›β¬œβ¬›β¬œβ¬›
β¬›β¬œβ¬›β¬œβ¬›β¬œβ¬›
β¬›β¬œβ¬›β¬œβ¬œβ¬œβ¬œ
⬜⬜⬜⬜⬜⬜⬜]


Thus stuff is crazy! This makes TEA able to generate rich digital art using a route/technique normally used for just data engineering, data simulation and perhaps quantitative modeling --- so now stochastic datasets are not only transient data that might later be visualised, but can also be the visualizations themselves!

So many doors to incredible TEA applications now open. Please go try this stuff out and give us some feedback.


⬜⬜⬜⬜✨⬜✨
βœ¨β¬œβœ¨β¬œβœ¨β¬œβ¬›
⬜⬜✨⬜✨⬜✨
⬜⬜✨⬜⬜⬜✨
β¬›β¬œβœ¨β¬œβœ¨β¬œβ¬›

#thephds #universityofoxford #nuchweziresearch #profjwl
Forwarded from 266 TV
Blackboard Computing Adventures πŸ’‘
Arch L ft. MENSA ICE – The TEA TAZ
A special jam from NML stars for all those reading TEA code these days, as well as those investing effort into understanding what TEA CODE is all about, as well as how to grok both the TEA living tome; The TAZ (https://bit.ly/tazfile) and its TEA utilities (https://tea.nuchwezi.com) | β˜•βš‘
Forwarded from 266 TV
Blackboard Computing Adventures πŸ’‘
Arch L ft. MENSA ICE – The TEA TAZ
Arch L --- The TEA TAZ ft. MENSA ICE (2025) [Official Audio]

[VA] https://youtu.be/yYRc9n6rx-k
[A] https://t.me/tv266/1312

πŸ‘†πŸΌπŸŽ§ Is a special jam from NML stars for all those reading TEA code these days, as well as those investing effort into understanding what TEA CODE is all about, as well as how to grok both the TEA living tome; The TAZ (https://bit.ly/tazfile) and its TEA utilities (https://tea.nuchwezi.com) | β˜•βš‘

#ughiphop #archl #mensaice #tealanguage #alphabet

πŸŒΏπŸƒπŸŽ™οΈπŸŽ€πŸ₯πŸ§ŠπŸ§ŠπŸ§ŠπŸ«–πŸš¨πŸš¨β˜•

Arch L --- The TEA TAZ ft. MENSA ICE (2025) [Official Lyric]


---[INTRO]

It's 1, 2, 3..
Let's Go!

(TEA TAZ is for CODE | WE Move With God)

---[CHORUS: Mensa ICE]:

It's 26 Ways To Take Over Now..
Just 26 Ways To Get To The State

---[Bridge]

It's 1, 2, 3..
Let's Go!

---[The TAZ: Arch L]

A is for Anagrams: We Reshuffle the State

B is for Basify: Your Directions to the Base

C will get us all Cleared: Hoping that is Clear

D is about Deletion, You Can Filter The Mess: Use Symbols and Guns, Whatever can Work

E shall get Evaluation of The Code We Wrote

F and Forks Can Branch, See Diversions on Roads

G is about Glue: that's A Clue You Need

H can Hew A Problem: Divide and Conquer Them

I Interact: You Interact, You Exist,: Everything You Input Transform The Output

J is for Jumping Queues: So We Work On Other Things

K and Keep is about "KAMPALA for Keeps"

L is for CODE Labels, We'll Come Back to That

M is for Mirror OPs, not Military Mask: You Can Read Arabic from Left to Right If You Like

N is for Numbers: N' Reading The Mind of God

Order Yes That's In Order, U Apply The O

P is for Permutate a Relative of A: A 100 names of The Spirit that gave me Peace

Q is for JUST Quitting: You Smoke No More

R if you Read it, then Replace The Patterns

S and Salt are One: We Shall Need It In War

T is for Transform: Never Stay The Same: Some People get TripHop but not TikTok

U Can Unify Things by Uniqueing Them: Stats and Various Measures We Need to Count

V is for Vaulting: For Everything You Vote

We on the INTERNET, That Means We WEB: IP Addresses, So We Network Things

X is for Xenograft: You Prefix Affix

Y is for Yank: When You Need To Read Vaults

Zee Will Get US All Zapped: That's Magic In TEA: 26 Ways To Bring a Transformer to Life.

Now Who's Left?

That's Your Right Admin.



---[CHORUS: Mensa ICE]:

It's 26 Ways To Take Over Now..
Just 26 Ways To Get To The State

---[Bridge]

It's 1, 2, 3..
Let's Go!

---[Outro]:

It's 26 Ways To Take Over Now..
Just 26 Ways To Get To The State
Forwarded from UGANDA
https://www.academia.edu/download/119519404/NIM_UGANDAs_own_APP_STORE_proposal_draft.pdf

πŸ‘†πŸΌπŸ€“ Earlier this year.. and in 2024.. we (at Nuchwezi Research) made a proposal to the government of Uganda (via Makerere, RIF), to design a digital marketplace for Uganda's software & digital products as shown in some of these attachments and the linked academic paper/proposal. No, it never got their attention.. yet UGANDANS continue building useful software every other day, but it has no national home on the Internet, nor any meaningful means to monetize our work! Hmmm.. kale UGANDA, mbu we have leaders that care about the people's needs and problems... Mbu we have a legit president and ministers of ICT and National Guidance? πŸ€”πŸ˜πŸ˜Ά

#noprogress #nodevelopments #nationalproblems #ictinnovations & efforts [still] being wasted!
TODAY we have invested more into STATISTICAL ANALYSIS using TEA. In particular, consider the case of wanting to visualize a dataset using a basic frequency bar-chart. We might for example have a dataset such as:


12,24,95,18,85,27,97,39,80,20,65,24,93,82,85,81,52,62,20,89


Which, when processed by the following TEA program:

A Bar-GRAPH Generator
i:{12, 24, 95, 18, 85, 27, 97, 39, 80, 20, 65, 24, 93, 82, 85, 81, 52, 62, 20, 89} #some sample data
v:vSEQUENCE #stash comma-del sequence
#count the values...
d:[ ] | d!:{,}| v: | v!: | x!:{+1} | r.: | v:vNSEQ

#get the word MSS
y:vSEQUENCE | h:, | d:, | u: | v:vSEQ_MSS
#but we would rather present a graph with items sorted based on order
#thus, override MSS with sorted one
#y:vSEQ_MSS | o: | v:vSEQ_MSS

#initialize graph structure as empty graph
v:vGRAPH:{}

#-----| For each item in the MSS, obtain its frequency |---
l:lBUILD_GRAPH
y:vSEQ_MSS
d:[ ].*$ | v:vITEM #first, get the item
#build a lookup pattern [,]?N[,]?
y:vITEM | x:{[,]?} | x!:{[,]?} | v:vITEM_REGEX
#use it to reduce original sequence to only instances of item..
y:vSEQUENCE | d*!:vITEM_REGEX
#remove extraneous commas
r!:[,]+:, | d:^, | d:,$
#count instances of item then..
d!:{,}| v: | v!: | x!:{+1} | r.: | v:vNITEM
#build the visual for item for the graph structure
#N:--...N-times
v:vGRAPH_ELEMENT:{-}
v:vGRAPH_ITEM:{} | x*!:vGRAPH_ITEM:vITEM | x!:{:} | v:vGRAPH_ITEM
v:vN_ITEM_GRAPH_LEN:{0}
l:lSTART_ITEM_GRAPH
x*!:vGRAPH_ELEMENT:vGRAPH_ITEM | v:vGRAPH_ITEM
y:vN_ITEM_GRAPH_LEN | x!:{+1} | r.: | v:vN_ITEM_GRAPH_LEN
#build and run test...
y:vN_ITEM_GRAPH_LEN | x!:{==} | x*!:vNITEM | r.: | f:true:lDONE_ITEM_GRAPH:lSTART_ITEM_GRAPH
l:lDONE_ITEM_GRAPH
#add item graph to main graph...
y:vGRAPH | x!:{
}|x*!:vGRAPH_ITEM | v:vGRAPH #update graph
#remove this item from the MSS, and then loop...
y:vSEQ_MSS
d!:[ ].*$ | t!.: | v:vSEQ_MSS #first, get the item
#if mss empty, finish, otherwise loop..
f:^$:lGRAPH_READY:lBUILD_GRAPH
l:lGRAPH_READY
y:vGRAPH #present final graph :)


Would give us a graph such as:


:-
24:--
85:--
20:--
12:-
95:-
18:-
27:-
97:-
39:-
80:-
65:-
93:-
82:-
81:-
52:-
62:-
89:-


So, with that foundation, we might build more sophisticated statistical analysis tools as we shall soon come to see! That's it for now. #statistics #analysis #descriptivestatistics #teaapplications
Blackboard Computing Adventures πŸ’‘
TODAY we have invested more into STATISTICAL ANALYSIS using TEA. In particular, consider the case of wanting to visualize a dataset using a basic frequency bar-chart. We might for example have a dataset such as: 12,24,95,18,85,27,97,39,80,20,65,24,93,82…
The v1 of our STATISTICAL Analysis Tool (SAT) is now accessible online.

Some sample outputs are of the kind shown here...

The DATA ANALYSIS:
====================
RANGE:12-97 | MODE:24 | MEDIAN: | MEAN:57.5 | VARIANCE:922.85 | STANDARD DEVIATION:30.378446306550966 | MODAL SEQUENCE:24 85 20 12 95 18 27 97 39 80 65 93 82 81 52 62 89
====================
The DATA:
====================
12,24,95,18,85,27,97,39,80,20,65,24,93,82,85,81,52,62,20,89
====================
Finished summarizing the data using measures and statistics.

And for drawing graphs...

The DATA ANALYSIS:
====================
0:-----
1:----
2:----
3:-----
4:-
5:--
6:---
7:----------
8:-------
9:-
10:-------
====================
The DATA:
====================
7,5,6,7,8,10,3,8,1,7,3,10,7,0,3,2,7,8,2,10,8,8,10,8,10,1,3,7,2,7,1,4,0,5,8,1,3,10,0,9,7,6,7,8,0,10,6,2,7,0
====================
Finished summarizing the data visually.

Go online and try it out with your own dataset: https://tea.nuchwezi.com

#statistics #analysis
Blackboard Computing Adventures πŸ’‘
The v1 of our STATISTICAL Analysis Tool (SAT) is now accessible online. Some sample outputs are of the kind shown here... The DATA ANALYSIS: ==================== RANGE:12-97 | MODE:24 | MEDIAN: | MEAN:57.5 | VARIANCE:922.85 | STANDARD DEVIATION:30.378446306550966…
Final (well.. v.2) of our very generally useful Statistical Analysis Tool (SAT) implemented using TEA (Transforming Executable Alphabet) language, and which program one can run on any operating system with TEA installed, is as such:

SAT v2
#########################################
# STATISTICAL ANALYSIS TOOL (SAT) v.2
#---------------------------------------
# An interactive program for analyzing
# numeric data using 3 analysis modes:
# descriptive/visual, exploratory and predictive.
#########################################

#first, pick any user/externally provided data...
v:vDATA

#====| CONSTANTS |====
v:vHLINE:{
--------------------
}
v:vHHLINE:{
====================
}
v:vPROMPT_METHOD:{Select Analysis Method: [1] Descriptive | [2] Exploratory | [3] Predictive
}
v:vANALYSIS_MSG:{No Analysis Done Yet!} | y:vANALYSIS_MSG | v:vRESULT
z.:PLATFORM | v:vPLATFORM #store underlying platform/environment...

#in case no data was presented, use hardcoded dataset...
y:vDATA
i:{12,24,95,18,85,27,97,39,80,20,65,24,93,82,85,81,52,62,20,89} | v:vDATA
j:lPREPROCESS_DATA

#prompt for data...
l:lPROMPT_FOR_DATA
i!:{Please Enter [qQ] to Quit, otherwise a [space or] comma-delimited sequence of numbers:} | i*: | v:vDATA

#----| should we quit? |---
f:^[qQ]$:lQUIT

#----| pre-process and clean data |---
l:lPREPROCESS_DATA
g: #eliminate white-space
r:,]$:] #fix final comma from some TDT generators
d!:[\d ,] #apply filter
g:,:[ ] | r!:,,*:, #enforce strict , delimiter
v:vDATA_CLEAN #for presentation
x:,|x!:, #to ease lookups
v:vDATA #override

#----| ensure data conforms to structure required otherwise flag error |---
f!:^,\d+(,\d+)*,$:lERROR_INVALID_DATA:lVALID_DATA

l:lERROR_INVALID_DATA
i!:{SORRY, but DATA entered was INVALID.} | i*:
j:lPROMPT_FOR_DATA # [re-]prompt for correct data

#we have proper data, might proceed...
l:lVALID_DATA

#----| present clean dataset and prompt for analysis method |---
l:lANALYSIS_PROMPT
y:vDATA_CLEAN | x*:vHHLINE | x:{The DATA:} |x*!:vHHLINE | x*!:vPROMPT_METHOD | v:vPROMPT | i*: | v:vANS


#check if we got meaningful answer, otherwise re-prompt
t!.: | f:^$:lANALYSIS_PROMPT | f!:^[123]$:lANALYSIS_PROMPT

#process response then...
f:1:lPROCESS_ANALYSIS_DESC | f:2:lPROCESS_ANALYSIS_EXPL | f:3:lPROCESS_ANALYSIS_PRED

####| START PROCESSING ANALYTICS |####
v:vANALYSIS_RESULT:{}


#----| perform visual/descriptive analysis |---
l:lPROCESS_ANALYSIS_DESC

y:vDATA
v:vSEQUENCE #stash comma-del sequence
#count the values...
d:[ ] | d!:{,}| v: | v!: | x!:{+1} | r.: | v:vNSEQ

#get the word MSS
y:vSEQUENCE | h:, | d:, | u: | t.: | v:vSEQ_MSS
#but we would rather present a graph with items sorted based on order
#thus, override MSS with sorted one
y:vSEQ_MSS | o: | v:vSEQ_MSS

#initialize graph structure as empty graph
v:vGRAPH:{}

#-----| For each item in the MSS, obtain its frequency |---
y:vSEQUENCE | r!:{,}:{,,} | v:vLOOKUP_SEQUENCE #for use in graph computations
l:lBUILD_GRAPH
y:vSEQ_MSS
Blackboard Computing Adventures πŸ’‘
The v1 of our STATISTICAL Analysis Tool (SAT) is now accessible online. Some sample outputs are of the kind shown here... The DATA ANALYSIS: ==================== RANGE:12-97 | MODE:24 | MEDIAN: | MEAN:57.5 | VARIANCE:922.85 | STANDARD DEVIATION:30.378446306550966…


d:[ ].*$ | v:vITEM #first, get the item
#build a lookup pattern (,|[^0-9])N(,|[^0-9])
y:vITEM | x:{(,|[^0-9])} | x!:{(,|[^0-9])} | v:vITEM_REGEX
#use it to reduce original sequence to only instances of item..
y:vLOOKUP_SEQUENCE | d*!:vITEM_REGEX
#remove extraneous commas
r!:[,]+:, | d:^, | d:,$
#count instances of item then..
d!:{,}| v: | v!: | x!:{+1} | r.: | v:vNITEM
#build the visual for item for the graph structure
#N:--...N-times
v:vGRAPH_ELEMENT:{-}
v:vGRAPH_ITEM:{} | x*!:vGRAPH_ITEM:vITEM | x!:{:} | v:vGRAPH_ITEM
v:vN_ITEM_GRAPH_LEN:{0}
l:lSTART_ITEM_GRAPH
x*!:vGRAPH_ELEMENT:vGRAPH_ITEM | v:vGRAPH_ITEM
y:vN_ITEM_GRAPH_LEN | x!:{+1} | r.: | v:vN_ITEM_GRAPH_LEN
#build and run test...
y:vN_ITEM_GRAPH_LEN | x!:{==} | x*!:vNITEM | r.: | f:true:lDONE_ITEM_GRAPH:lSTART_ITEM_GRAPH
l:lDONE_ITEM_GRAPH
#add item graph to main graph...
y:vGRAPH | x!:{
}|x*!:vGRAPH_ITEM | v:vGRAPH #update graph
#remove this item from the MSS, and then loop...
y:vSEQ_MSS
d!:[ ].*$ | t!.: | v:vSEQ_MSS #first, get the item
#if mss empty, finish, otherwise loop..
f:^$:lGRAPH_READY:lBUILD_GRAPH
l:lGRAPH_READY
y:vGRAPH #present final graph :)
#affix graph to result
k!:^[ ]*$ #kick-out blank lines
v:vANALYSIS_RESULT

#what did we do?
v:vANALYSIS_MSG:{Finished summarizing the data visually.}

j:lDONE_PROCESSING #goto present results...


#----| perform numerical/exploratory analysis |---
l:lPROCESS_ANALYSIS_EXPL
v:vRANGE:{}
v:vMODE:{}
v:vMEDIAN:{}
v:vMEAN:{}
v:vVARIANCE:{}
v:vSDEVIATION:{}
v:vMSS:{}

y:vDATA
v:vSEQUENCE #stash comma-del sequence
#count the values...
d:[ ] | d!:{,}| v: | v!: | x!:{+1} | r.: | v:vNSEQ

#get the word MSS
y:vSEQUENCE | h:, | d:, | u: | t.: | v:vSEQ_MSS | v:vMSS

#store data sequence we'll use in external functions
y:vSEQUENCE | d:^,:,$ | x:[ | x!:] | v:vARRAY_SEQUENCE

#compute the statistics...

#===| compute RANGE |
#get the word MSS sorted numerically
y:vMSS | o: | v:vMSS_SORTED
y:vMSS_SORTED | d:[ ].*$
v:vITEM_MIN #store smallest value
y:vMSS_SORTED | m: | d:[ ].*$
v:vITEM_MAX #store largest value
y:vITEM_MIN | x!:{-} | x*!:vITEM_MAX | v:vRANGE

#===| compute MODE|
#get the normal word MSS
y:vMSS | d:[ ].*$
v:vMODE #store most frequent value

#===| compute MEDIAN|
y:vPLATFORM
f:WEB:lWEB_MEDIAN:lCLI_MEDIAN
l:lWEB_MEDIAN #to compute median via JavaScript
y:vARRAY_SEQUENCE
v:vCMD:{const median = arr => (sorted => (sorted[sorted.length >> 1] + sorted[(sorted.length - 1) >> 1]) / 2)([...arr].sort((a, b) => a - b));median(JSON.parse(AI));}
z*!:vCMD
j:lMEDIAN_READY

l:lCLI_MEDIAN #to compute median via Python

i!:{python3 -c "import json; AI='}
x*!:vARRAY_SEQUENCE
x!:{'; a=json.loads(AI); print(sorted(a)[len(a)//2] if len(a)%2 else sum(sorted(a)[len(a)//2-1:len(a)//2+1])/2)"}
v:vCMD | z*:vCMD
j:lMEDIAN_READY

l:lMEDIAN_READY
v:vMEDIAN


#===| compute MEAN|
y:vPLATFORM
f:WEB:lWEB_MEAN:lCLI_MEAN
l:lWEB_MEAN #to compute mean via JavaScript
y:vARRAY_SEQUENCE
z:{const mean = arr => arr.reduce((sum, val) => sum + val, 0) / arr.length;
mean(JSON.parse(AI));}
j:lMEAN_READY

l:lCLI_MEAN #to compute mean via Python

i!:{python3 -c "import json; AI='}
x*!:vARRAY_SEQUENCE
x!:{'; a=json.loads(AI); print(sum(a)/len(a))"}
v:vCMD | z*:vCMD
j:lMEAN_READY

l:lMEAN_READY
v:vMEAN


#===| compute population VARIANCE|
y:vPLATFORM
f:WEB:lWEB_VARIANCE:lCLI_VARIANCE
l:lWEB_VARIANCE #to compute variance via JavaScript
y:vARRAY_SEQUENCE
z:{const variance = arr => (m => arr.reduce((s, x) => s + (x - m) ** 2, 0) / arr.length)(arr.reduce((a, b) => a + b, 0) / arr.length);
variance(JSON.parse(AI));}
j:lVARIANCE_READY

l:lCLI_VARIANCE #to compute variance via Python

i!:{python3 -c "import json; AI='}
x*!:vARRAY_SEQUENCE
x!:{'; a=json.loads(AI); m=sum(a)/len(a); print(sum((x - m)**2 for x in a)/len(a))"}
v:vCMD | z*:vCMD
j:lVARIANCE_READY

l:lVARIANCE_READY
v:vVARIANCE


#===| compute STANDARD DEVIATION|
y:vPLATFORM
f:WEB:lWEB_SDEVIATION:lCLI_SDEVIATION
l:lWEB_SDEVIATION #to compute standard deviation via JavaScript
y:vVARIANCE
z:{Math.sqrt(Number(AI));}
j:lSDEVIATION_READY

l:lCLI_SDEVIATION #to compute standard deviation via Python
Blackboard Computing Adventures πŸ’‘
The v1 of our STATISTICAL Analysis Tool (SAT) is now accessible online. Some sample outputs are of the kind shown here... The DATA ANALYSIS: ==================== RANGE:12-97 | MODE:24 | MEDIAN: | MEAN:57.5 | VARIANCE:922.85 | STANDARD DEVIATION:30.378446306550966…


i!:{python3 -c "import math; print(math.sqrt(}
x*!:vVARIANCE | t.:
x!:{))"}
v:vCMD | z*:vCMD
j:lSDEVIATION_READY

l:lSDEVIATION_READY
v:vSDEVIATION


i!:{RANGE:} | x*!:vRANGE | x!:{ | MODE:} | x*!:vMODE | x!:{ | MEDIAN:} | x*!:vMEDIAN | x!:{ | MEAN:} | x*!:vMEAN | x!:{ | VARIANCE:} | x*!:vVARIANCE | x!:{ | STANDARD DEVIATION:} | x*!:vSDEVIATION | x!:{ | MODAL SEQUENCE:} | x*!: vMSS
v:vANALYSIS_RESULT

#what did we do?
v:vANALYSIS_MSG:{Finished summarizing the data using measures and statistics.}
j:lDONE_PROCESSING #goto present results...


#----| perform numerical/predictive analysis |---
l:lPROCESS_ANALYSIS_PRED

y:vDATA
v:vSEQUENCE #stash comma-del sequence

#===| compute probabilistic extrapolation...|
# in our list extrapolation methods here, we are going to
#assume the dataset conforms to a normal distribution
#and so we shall do basic probabilistic prediction of
#the next value past the end of the dataset given
#the nature of the sample (its mean and standard deviation)
y:vSEQUENCE | d:^,:,$ | x:[ | x!:] | v:vARRAY_SEQUENCE

y:vPLATFORM
f:WEB:lWEB_PREDICTION:lCLI_PREDICTION
l:lWEB_PREDICTION
y:vARRAY_SEQUENCE
v:vCMD:{const nextProbable = arr => {
let m = arr.reduce((a, b) => a + b, 0) / arr.length;
let s = Math.sqrt(arr.reduce((a, x) => a + (x - m) ** 2, 0) / arr.length);
return m + s * (Math.random() * 2 - 1);
};nextProbable(JSON.parse(AI));}
z*!:vCMD
j:lPREDICTION_READY

l:lCLI_PREDICTION
i!:{python3 -c "import json, random, math; AI='}
x*!:vARRAY_SEQUENCE
x!:{'; a=json.loads(AI); m=sum(a)/len(a); s=math.sqrt(sum((x-m)**2 for x in a)/len(a)); print(m + s * (random.random()*2 - 1))"}
v:vCMD | z*:vCMD
j:lPREDICTION_READY

l:lPREDICTION_READY
v:vPREDICTION

i!:{Assuming Normal Distribution, NEXT value past end of dataset: } | x*!:vPREDICTION |
v:vANALYSIS_RESULT

#what did we do?
v:vANALYSIS_MSG:{Finished extrapolating the data.}

l:lDONE_PROCESSING
#present results...
y:vANALYSIS_RESULT | x*!:vHHLINE | x!:{The DATA:} | x*!:vHHLINE |
x*!:vDATA_CLEAN | x*:vHHLINE | x:{The DATA ANALYSIS:} |x*!:vHHLINE | x*!:vANALYSIS_MSG | v:vPROMPT | v:vRESULT | i*: | j:lPROMPT_FOR_DATA #not yet finished ;)

################################
#Finally, Quit, gracefully...
################################
l:lQUIT
y:vRESULT


#statisticalanalysis #statistics #calculator #graphing #forecasting @bclectures #nuchweziresearch #thephds
Media is too big
VIEW IN TELEGRAM
Perhaps End of Year Blackboard Adventures... Came from the Community itself! 🀭

Please watch, and react. This is an interesting evidence there's been some serious attentive students all along.βœ“
Best regards from J. Willrich Lutalo Cwa Mukama Rwemera Weira and the band of U curious netizens ✨✨

Merry #Christmas and enjoy memorable, transformative holidays!

i!:{#nuchweziresearch}|d:{#}|h:re