Machine Learning course

~Ganesh

C3STREAMLand conducted a course on Machine Learning for learners. The course was divided into six 2-hours sessions. The motive behind the course was to make learners familiar with the most widely used machine learning concepts and algorithms, being adopted rapidly by many tech companies.

The course was offered by Alex, Sanjeev, and Ganesh, as a part of sharing our learning with the machine learning enthusiasts. Sanjeev and I (Ganesh) did the course on Coursera offered by Stanford University and taught by Andrew Ng, the co-founder of Coursera and Google Brain. Alexander Sokolov (Alex) converted the assignments from Octave to Python to make them accessible to everyone.

The course provided a broad introduction to machine learning, data mining, and statistical pattern recognition. Main topics include:

  1. i) Supervised learning (parametric/non-parametric algorithms, support vector machines, kernels, neural networks).

(ii) Unsupervised learning (clustering, dimensionality reduction, recommender systems, deep learning).

(iii) Best practices in machine learning (bias/variance theory; innovation process in machine learning and AI).

Session-wise topics covered are as follows:

Session 1: Introduction and Linear Regression

  • Introduction – Machine Learning
  • Basic concepts of statistics and linear algebra
  • Examples and classifications of Machine Learning
  • Univariate and multivariate Linear Regression
  • Cost function
  • Gradient descent
  • Polynomial regression
  • Feature scaling and mean normalization
  • Bias-Variance Trade-off

 

Session 2: Logistic Regression (Classification)

  • Decision Boundary
  • One-vs-all classification
  • Overfitting and Regularization

Session 3: Neural Networks

  • History and use cases
  • Architecture
  • Forward propagation
  • Backpropagation
  • Handwritten digit recognition system demo

Session 4: Anomaly Detection and Recommender Systems

  • Density estimation
  • Gaussian distribution
  • Anomaly detection algorithm
  • Recommender Systems
  • Predicting movie ratings
  • Collaborative filtering

Session 5: k-means clustering and Dimensionality Reduction

  • Clustering applications
  • K-means clustering algorithm
  • Data Visualization/compression using dimensionality reduction
  • Principal component analysis (PCA)

Session 6: Large Scale Machine Learning

  • Batch gradient descent
  • Stochastic gradient descent
  • Mini-batch gradient descent
  • Online learning

The course helped learners to get the idea about widely used machine learning algorithms and maths behind those algorithms.

The session-wise presentation PDFs can be accessed here:

https://drive.google.com/drive/folders/1O-kTcAGFvEdX7_jJ0fn-6rKaLtEGxFmh?usp=sharing

INTERACTIVE PROGRAMMING IN PYTHON

 

~Sandhiya and Kayalvizhi

We learned “An Introduction to Interactive Programming in Python (Part-1 and Part-2) Online course in Coursera.

CodeSkulptor is an interactive, web-based Python programming environment that allows Python code to be run in a web browser.

These are the game we learnt in the coursera course,

  • Rock Paper Scissors
  • Guess the number
  • Ping pong
  • Stop watch
  • Blackjack
  • Memory game
  • Spaceship/Asteriod

We are trying to run the Codeskulptor python in our local system (Create executable file). In codeskulptor we have a save options to download our code.

We used following steps to converting the python files into exe.file in local system.

These are the API tried for Simplegui to run the code for local system.

  • SimpleGUITk

SimpleGUITk is a wrapper for the CodeSkulptor SimpleGUI API using TkInter. CodeSkulptor is a browser-based Python interpreter used in the online course “An Introduction to Interactive Programming in Python”.

  • Create Pyinstaller using to EXE: https://datatofish.com/executable-pyinstaller/
  • Install pip install SimpleGUITk
  • Change the import simplegui to import simpleguitk
  • Able to run the codeskulptor file in our local and create the .exe file also, but not able to run and create exe file for the images having file like blackjack and spaceship game.
  • Simplequi

Same thing we did for simplequi also, not able to create the blackjack and spaceship game.

  • Download the images and set a path to the image in the spaceship python code. Not able to get the image file.

Solution-1(Windows)

  • Install SimpleGUICS2Pygame

https://pypi.org/project/SimpleGUICS2Pygame/

  • Replace the import simplegui to

try:

import simplegui

except ImportError:

import SimpleGUICS2Pygame.simpleguics2pygame as simplegui

  • Convert .py files to .exe file

Install pysimplegui-exemaker

https://pypi.org/project/pysimplegui-exemaker/

  • Run the Pysimplegui-exemaker– open the command prompt and paste

python -m pysimplegui-exemaker.pysimplegui-exemaker

The pop up showed liked that, browse your code in source python file and click Make EXE.

 

 

 

 

 

 

Edible Weed Walk at Evergreen with Nina Sengupta

As part of the ‘Becoming and Being a Shifu (Master)’ program a program to develop skills (programming and VLSI), competencies (using skills to create healthy workplaces and environment) and inner capacity (universal values) the participants are exploring some activities of Auroville. This short report is about the visit to Evergeen where we went for a ‘weed walk’ with Dr. Nina Sengupta who is an ecologist and an Aurovilian.

At C3STREAM Land Designs we learn, grow, work and teach and 5 of us went along with 7 Shifians to learn and grow.

Our visit started with the introduction of the book written by Dr. Nina – ‘Edible Weeds and Naturally Growing Plants in Auroville’. It was interesting to see that the book cover was hand-made, made from eco-friendly material. The treasure started unfolding with every plant she included in the book. Every book has two copies – one with precisely scaled plants in color and the other one with outlines which can be used as hands-on, color it to get closer to these plants.

We walked through the book one plant at a time and learned about the properties of edible weeds like Antigonan Leptopus. The first myth that was demystified while having this walk is not all weeds are non-edible, and many of them can be used not only for medicinal purposes but are a good source of nutrients for humans too. Generally, we ignore these weeds considering everything as another type of grass but they are all around us and we only have to recognize them and learn which parts of that particular weed are edible.

Once we recognize which parts are edible, then comes the next important thing – the appropriate quantity and frequency of weed to eat, the process of cooking if required. For example, some weeds can be used well after blanching them, while other weeds can be eaten raw.

The weed-walk was getting more and more interesting as we got to see and taste the different weeds. While we were able to observe weeds, on the other hand, we got closer to nature, and that also allowed us to express our learning. There are two major varieties of weeds – wild and cultivated weeds. Some species originated late, which are not mentioned in the Ayurveda. We need to constantly keep learning to know more about these weeds and start looking at these weeds from different perspectives whenever we see them around us.

The walk ended with the tasty herbal tea made by Archana and with the interactive conversation about edible-weeds, experiences of Nina as an ecologist, and Auroville in general. Thanks to Nina, Archana, and the Evergreen team for this wonderful opportunity.

~Team Shifu with C3STREAMLand members

 

 

About Shell basics, Grep and Find commands

~Ganesh, Ranjith

Shell – also called as command interpreter

Interactive use: reads command lines from a terminal

Shell script: When we put command lines into a file, that file is called a shell script or shell program.

 

Broad types of shell – bash and csh

C shell (csh):

Especially good for working on a terminal

 

Bourne Shell (sh):

Probably used more often for shell programming.

Newer version “Bourne-again” shell (bash) combines handy interactive C shell−like features with Bourne shell syntax, and is preferred choice.

 

which :

It takes one or more arguments. For each of its arguments it prints to stdout the full path of the executables that would have been executed when this argument had been entered at the shell prompt. It does this by searching for an executable or script in the directories listed in the environment variable PATH

e.g.

which ls

/usr/bin/ls

 

To see which shell I am running…

echo $SHELL

/bin/bash  – tells which shell we are using (bash here).

 

env :

env is used to print environment variables.

Most environment variables are in capital

 

 

 

env

SHELL=/bin/bash

WSL_DISTRO_NAME=Ubuntu-20.04

NAME=DESKTOP-HABEOE2

PWD=/mnt/e/unix

LOGNAME=ganesh

MOTD_SHOWN=update-motd

HOME=/home/ganesh

LANG=C.UTF-8

 

HOME:

Gives our home directory

echo $HOME

/home/ganesh

 

PATH:

Tells all the directories in which binary files can be extracted

e.g.

echo $PATH

 

Find Command :

Used to find files and directories and perform subsequent operations on them. It supports searching by file, folder, name, creation date, modification date, owner and permissions

find -maxdepth 2 -iname “pledge.*” -type f

./pledge.txt

./pledge.txt.bak

-maxdepth <num> ; at most <num> searches files/directories in hierarchy.

-iname searches irrespective of the case.

-type f specifies the input type is a file.

-mindepth <num> ; at least <num> searches files/directories in hierarchy

-group <gname> ; find files/directories in which group have access permission

-user <uname> ; find files/directories in which user have access permission

-size ; find files/directoriesbased on size

-delete ; to delete the found files/directories

-atime -<min> | +<min> | <min> ; find the file which accessed in at given minutes <min> | less than given minutes (-<min>) | greater than given minutes (+<min>)

-atime ; similarly for days

-ctime, -cmin ; similarly for changed files

-mtime ; similarly for modified files


-exec ; to execute shell command on founded files/directories

find -maxdepth 2 -iname “pledge.*” -type f -exec cat {} \;

find -maxdepth 2 -iname “pledge.*” -type f | xargs cat


find -empty:

./cat

./empty_file.txt

finds all empty folders and files in the entered directory or sub-directories.

 

Grep:

grep searches for PATTERNS in each FILE.  PATTERNS is one or more patterns separated by newline characters, and grep prints each line that matches a pattern.  Typically, PATTERNS should be quoted when grep is used in a shell command.

A FILE of “-” stands for standard input.   If no FILE is given, recursive searches examine the working directory, and nonrecursive searches read standard input.

grep <Option> <SearchText/Reg Expression> <Target file/ Path > ; general form

options:

-E ; extended regular expression.

-i ; ignore case

-v ; invert

-l ; list files which has the text/pattern

-r ; recursive search on all files in given <path>

-R ; recursive dereference (open symbolic link).

-c ; count matched text/pattern

-n ; print output with line number

-e ; search for multiple pattern

Example: grep -e “-e” -e “[a-zA-Z]*nary” <target> ; search for “-e” and string end with “nary”

-B <number> ; print <number> lines before matched line

-A <number> ; print <number> lines after matched line

-C <number> ; print <number> lines before and after matched line

-f ; take each line in a file as pattern è Example : grep -f <pattern file> <Target file/ Path>

 

US Election Model

~Sharat Kumar & Vasanth

The power of predictive modelling and Machine Learning in particular. We had an opportunity to put it to test, by working on the prediction of the US election, a couple of weeks prior to the US Presidential Election. WE approached this using supervised learning. First, we considered two states of America, Texas (Republican/healthy Red state) and California (Democratic/ strong Blue state). We scraped around 10000 tweets for 5 Days from twitter for both the states. We tagged red as Pro-Trump/Anti-Biden and treated Blue as  Pro-Biden/Anti-Trump. 

We selected 100 top Fans of Biden and Trump across the US, and we scraped tweets relevant to US elections from those handles for one day. We trained a model using those tagged data into an AI machine. After training, the tool considers 70% of the data to train and the rest 30% for validation and testing. During the process, a confusion matrix is formed. A confusion matrix is a table describing the performance of a classification model (or “classifier”) on a set of test data for which the correct values are known. 

This table shows how often the model classified each label correctly (in blue), and which labels were most often confused for that label (in grey). 

We created two models out of them, in one model, when we feed an individual’s tweet history into the machine, it will identify whether the person is a Trump/Biden fan. Another model is when we provide the Twitter data of a particular state; the model predicts who has more support in that state. We used the second model, and we fed the twitter data of 11 swing states in the US. 

States Red Blue Predicted Result Actual Result
Concord (New Hampshire) 36.48% 63.52% Blue Blue
Florida 47.29% 52.71% Blue Red
Iowa 51.01% 48.99% Red Red
Michigan 31.34% 68.66% Blue Blue
Minnesota 43.79% 56.21% Blue Blue
Nevada 37.22% 62.78% Blue Blue
Ohio 42.32% 57.68% Blue Red
Pennsylvania 43.18% 56.82% Blue Blue
Raleigh (North Carolina) 46.27% 53.73% Blue Red
Virginia 44.80% 55.20% Blue Blue
Wisconsin 43.01% 56.99% Blue Blue

In 8 states among the 11, we predicted the right result. We got an accuracy of 72.72% as our result. 

This gave a first hand experience of the power of AI and Machine learning. While these tools can be used to predict and prescribe inputs for various business decisions it can also be an effective platform for addressing several complex societal problems. We are excited to engage and learn more on the underlying capabilities these new age platforms offer.

 

International webinar on Digital divide

 

~ Poovizhi.P

I’ve got an opportunity to speak in an international webinar organized by Dr. Monica Sharma on the topic digital divide. Below is the link to a 6 min video of the speech. It was a great experience to be part an international webinar. I learnt that where ever I may be and whatever work I do, I am connected with each one of us in the world in breaking the unhealthy isms from being in my inner capacity.

Here is what I shared.

In my experience one digital divide is employment. People who have completed Engineering in and around my village have hard time finding engineering jobs. Some of my engineering classmates, specifically girls have got married, others work in non-engineering jobs like receptionist, data entry and teaching.

This is partly because of lack of practical skills. Even in college where I was doing a degree in computer science we had limited access to few shared computers. It was enough to read text books and pass exams. Most of us didn’t have access to laptops and internet at home to explore further. After 4 years I had a degree but not much programming skills.

At STEM land I learned programming first with a visual programming language from children and then professional programming languages. When I was learning programming from children, no one made fun of me. In time I realized that a supportive environment for learning had been built at STEM land not only by the facilitators, but also the children who also practice the RTL tools. I see such a culture of supporting risk takers shifting mediocracy to excellence.

STEM lands are located in rural schools. Even with poor internet children are able to share the projects and programs they make with other children through a local area network. Through this I see the shift from being stuck without resources to having the courage to create alternatives.

There is digital divide in rural area due to the socio- economic background and very few people have access to computers, laptops and tabs. Many people have access to smart phones but internet is an issue. They have limited internet because the tower is not close or may not be able to afford internet. In the pandemic this got worse because people are earning less. To reach children in this time we send practice assignments and give feedback through Whatsapp. For those who don’t have access to internet I create physical worksheets that parents pick up or met children individually at home.

I can see that genderism is strengthened by society in technology. After certain age girls have a lot of constraints in my society. For example, boys have the freedom to come to STEM land in the evenings after school whereas girls do not. One issue is safety due to alcoholism, gangs and harassments in the evening, but much of it is social pressure. In response sleepovers where both boys and girls stay over at the school once a week has become a norm at least in one of our schools.

I wanted children from other villages and schools to also benefit from STEM land in the evenings. I faced the same constraints and fear of traveling, but I don’t want to leave it just because I am born as girl. I go to such a center and support children and take precautions that I can.

In my village alcoholism is a major issue and many children and women suffer as the men beat their wife and children and they don’t have a quiet space at home to study. The youth planned a play to bring awareness about alcoholism but none of girls participated because it is not considered socially ok. I had a fear of judgment but I noticed it and being in my values I took part. This action inspired four other girls and a married women. This has started many new conversations about alcoholism.

As a team in STEM land we look to break these isms in technology. When I joined STEM land three years ago there was only one female engineer. The women to men ratio was 1:6 and now in the technical team its getting closer to an equal ratio.

To break the digital divide

1. I need to develop an environment for youth and children to develop skills

2. I need to be more than an engineer to break genderism, groupism, alcoholism, ageism

3. I need to work from responsibility, equality and courage to create.

Math Learning from Sundaram Sir

~Saranya

We have learnt the following topics and few techniques, puzzle(ken-ken) also learnt new information like Kaprekar constant, Collatz conjecture in excel. September 11(world trade centre hijacked)  etc…

S.No Topic Link
1 Place value (i) part 1: https://youtu.be/wXG1F5nyLyY

(ii) part 2:  https://youtu.be/ySa-8k5UnZc

(ii) part 3: https://youtu.be/t_tN0s4gnhI

2 Place Value real life examples https://youtu.be/HEgijGQABEw

 

3 Addition stories https://youtu.be/B0i-AFqh3l4

 

4 Word problem(Add-2 types, Sub-4 types) https://youtu.be/jV5-Pa2C73E
5 Word problem(Add-2 types, Sub-4 types, and division -2types) https://youtu.be/gOszHLHMgKI
6  Equal sharing along with multiplication https://youtu.be/kERMsSkW6pE
7 Ratio https://youtu.be/h5SV_uPpCrA
8 Difference between history and concepts

 

Geometry

 

Ken-ken(sudoku)

(i) part 1: https://youtu.be/qJS0R_xBDvU

(ii) part 2: https://youtu.be/f4HbQM3qma8

(ii) part 3:  https://youtu.be/tCuZMkZ9yds

9 Geometry(triangles(scalene), parallelogram, rhombus) https://youtu.be/k7dOko_vZEk
10 Word problem https://youtu.be/QMBqxF1BHaE
11 The surface area along with examples

Fraction

https://youtu.be/-F-8pN4MAyM
12 Fraction Addition and subtraction

Comparison of fraction

Stories for fraction

https://youtu.be/nTrfFKgWkYU
13 Fraction rule

Fraction stories

 

https://youtu.be/7_BKXGwHijg
14 Angles, angular distance, linear distance

Types of angles

 

https://youtu.be/mWylO7CvI-E
15 Sets square – draw angles using sets square https://youtu.be/aCVnOvK6YJI
16 Types of Angles chart/family tree https://youtu.be/0SxEwisQnL4

 

 

C3STREAM Land Designs delivers First IC chip

C3STREAM Land Designs delivers First IC chip:

~Ranjith, Saranya

Very-large-scale integration (VLSI) is the process of creating an integrated circuit (IC) by combining thousands of transistors into a single chip.

One year back, we started learning the VLSI layout and design process with the support of “Aura Semiconductor Pvt Ltd” (Aura is a fabless semiconductor company innovating high-performance IC products for IoT Radios, Timing, and Portable Audio markets).

Over the year we have been involved with automation using SKILL (Lisp-based Cadence programming language) and layout workflow (python, shell scripting, etc), learning layout methodology, and aspects to keep in mind in layout. An example of SKILL code was the automation of a differential pair which is a very common circuit block in analog circuit design.  This process in the last year has got us now only comfortable with the layout, but also the entire cadence flow and supported the group at Aura automate small aspects of their work.

 

We were trained in the layout by our mentor by assigning us small blocks that were used in real designs starting from digital and then analog. After completion of a layout, we got feedback from our mentor on matching, MOS transistors effects like LOD, constraints in floor planning and routing, accounting, or parasitic such as IR drops and capacitance. The time we took for each block also reduced as we worked on more blocks and we could see our progress in not only laying a block but also reduced time in making sure that it satisfied DRC (Design Rule Checker) and LVS (Layout vs schematic). This process of working on real blocks helped us improve our skill, speed, and confidence and gave us exposure to different kinds of blocks.

A couple of months back we were included in a team on an active project with Aura. We were able to complete around 40% of the layout from Auroville. It has opened opportunities for this high-tech work to be done out of Auroville. Currently, and Siva and Vasanthraj Gandhi (who are now part of the team) are being trained by us along with Aura in a similar fashion. Looking forward to layout and in time design many more IC designs.

Example of a top-level chip:

INCORPORATING ARTS WITH STEM; THE AI(ART INTEGRATED) STREAM LEARNING

~Sunil & Abilash

Integrating Science, Technology, Research, Engineering, Art, and Math to create holistic learning is called STREAM education. The Art Integrated (AI) education includes both visual arts (paintings, clay modelling, gaming) and performing arts (music, dance, drama).  It’s very important to incorporate kids in all of these five disciplines. If we seed these skills in our kids, it improves their practical thinking. Integrating art and science in education could increase their creative thinking and cognitive ability. It also encourages students to express science in unimaginable ways. AI-based education paves the path for experiential learning. Some of the activities to incorporate art with science are 

1. PENDULUM PAINTING

Pendulum painting is a fun activity to do with students using simple materials like water bottles, paper, paint, rope and chairs. This activity enhances creative and critical thinking among students. It will make them understand parameters like gravity, motion, momentum, and velocity. Students would be able to create a beautiful art along with conducting a pendulum experiment to know the physics behind the pendulum by practical approach.

2. PERIODIC TABLE SONG 

Teaching Periodic Table songs to kids is one of the best ways to make chemistry enjoyable. Songs have always been the best ways to remember even the most convoluted set of words at ease. The periodic table song with a supporting video that has a picture of the applications of some aspects along with music, would enable students to remember the elements of the periodic table along with applications. These kinds of activity aid both the right and left brain to store accurate information and retain it.

3. ART FROM WASTE IN SCIENCE

Plastic Pollution has become a significant concern in today’s world. This activity of making simple electronic devices like a LED torch using plastic wastes would make students learn simple electronics along with hands-on training. Making art out of garbage would enhance creativity and positive thinking in students and also would create awareness about plastic pollution.

There are no limits in education and imagination; we can use our creativity to incorporate any form of art with any science concept to bring out the best in education. Other activities like dancing or acting in a theatrical play relating science or math concepts, could cultivate expression, self-confidence, presentation skill along with understanding STEM.

Experiential Learning (Joyful Learning of Mathematics)

Experiential Learning (Joyful Learning of Mathematics):

  • Experiential learning activities will be students-centered/ focused, the learning outcomes of experiential learning are flexible and open.
  • In experiential learning, the aim is to develop knowledge and skills.
  • Before asking children to solve a particular question ask them the right questions which make them think. The questions should be relevant and it should make sense to them.
  • Visualizing problems will help children in understanding faster way. For example.

“Good teaching is more a giving of the right questions than a giving of right answers”

How to make math class more interesting:

  • Make it meaningful(asking right questions)
  • Start with interesting real-life problems.
  • Use concrete relatable examples(relevant examples that help them to image the real-life incident).
  • Encourage creativity and ownership.