Software apps and online services
Hand tools and fabrication machines
It has been a long coming as we started to do a write-up about our project experience for this competition. There are challenges, there are do-able tasks but also there are those that are not possible or will not be possible to achieve within a limited time frame. The joy of the project are many from skills update to explorations and research, hopping up and down the internet, skimming through countless pages of texts, code exploration and testing and many more....
Unboxing: We started with what we think we need to have in place before other things that could follow or the core part of the project that other parts and sections will rely on and follow-up.
STM32F407 Board: On arrival from the postal delivery, we took it out of its packaging, connect it up through a micro-usb cable to our computer. This is to make sure that the device is in good order ready for hacking. Yes! it works! we then follow up on our next endeavour which was:
1.) To set-up the programming environment got the Fire-up
2.) carry out some initial programming of the STM32F407 board and to make sure we the platform ready for our project.
3.) We install the GNAT Studio from AdaCore: https://www.adacore.com/download website on two of our machines. One was an Ubuntu 18.04 and the other was Windows 7 operating systems. We always do these steps and sometime setup 3 different environment just to make sure things are working on those major platforms as they should. We work at community level and our students range from age 6 to 16+ and above hence we want to make sure that we always have inclusive environment that caters for all ages irrespective of their abilities.
Coding Environment for Kids (A Review):
Bring the Ada to kids and school based classrooms not only challenging but could be an insurmountable tasks. Creating a block based or flow based coding environments for younger age 6+ to learn Ada is an harder they come tasks. Ada being strictly type, very verbosity and I will say that the Ada is a bit conservative and less known among schools and colleges to be used as first programming language in teaching but we hope can bring those changes into the education environment.
1.) LibAdaLang(Code-Generator Tool): I saw that it generates AST but I want source-to-source as I am targeting an environment for the 6-14 yrs old kids along with visual programming, block and flow based environment for Ada.
Libadalang may not do me a quick job due to time limited for this competition. I looked at another Ada language tool --> CCG (Common Code Generator) as well but I will be doing a review of these tools to see which path to take and which to use if any?.
Currently I am researching on Ada Grammar for ANTLR environment. I saw Ada 95/2005 Grammar. But most of Ada parser are Yacc and Lex format. Google Blockly, Droplet, MakeCode and many more use CoffeeScript, TypeScript, etc... for code-generation.
We want to bring Ada into the education community and to be used by youth so we don't want an isolated environment. We are looking at social coding platform for Ada and Web Based Coding Platform that we can take beyond this competition.
So it need to be dead simple e.g. procedure driveMotor is function move(forward : str, speed : int) begin motor(forward, speed) end move
The coding environment is block based just like shown below here for now
Students should be able to switch between visual block to text coding and vice-versa by clicking on the Toggle Block button (red circled above) in order to provide accelerated and aided coding environment
Note: The CCG should make it possible to port routines faster to Ada and vice versa (C2Ada <--> Ada2C)
Implementing a block based environment for Ada Language seems a bit more challenging since I have to start from scratch or based on adapted existing programming language (see issues raised by me here:- https://github.com/droplet-editor/droplet/issues/207
Well I started off by adapting Droplet for Ada language. See:- https://github.com/sanyaade-teachings/Ada-droplet
This is also the same paradigm with implementing a flow based programming environment for Ada. See https://github.com/jpaulm/drawfbp/issues/25 for issued raised by me.
On Data-Science and Machine learning:
I am still working on SOD and need to port it to Ada platform which I don't think will pose and problems to get it done. Why? SOD is pure single C (1 file) but to test on STM32F4 Discovery board on Ada platform, I will some add-on expansion kit like Camera add-on kit. I have compiled and tested SOD on Raspberry Pi 3 without any problems (though that was in C). A modifying and workable copy is here: https://github.com/sanyaade-teachings/sod on my repository. I also have planned and my eyes pinned on uTensor but it will depends on how much efforts will it required to port to Ada platform. I am still learning the Ada language along so this is a double edge sword for me but it should okay as this now looks going beyond this contest time limit.
There is much work to be done on porting all of the above item to Ada platform and most of the will published. I wont be able to test the visual block environment with our 6-14yr Robotic Workshop which start next Monday 18th of February 2019 but I will be more positive that I will be able to Ada Robotics Workshop (Test-Drive) during a following workshops hopefully