Friday, May 5, 2017

8 or Bust - Gamification of Learning

8 Or Bust
https://play.google.com/store/apps/details?id=com.siddbetter.numbercrunchpaid

Gamification of Learning is a new approach towards making learning fun. 

Mobile games have advantages:
  1) Easily accessible as everyone has a smartphone of their own.
  2) Even parents and grandparents who were never into playing are finding it as a good source of passing time with challenges.
  3) We have so many options to download from Play Store.
  4) Play it at your leisure, while waiting for the bus, in the metro, waiting for the doctor, in long journeys.
  
Games are fun, lovable and addicting. So if games are so much fun, why do we not use gaming at our advantage of introducing learning into it. And Mobile games are here to stay for good or bad ...

Humans think they know the best way to learning but little they know of how the brain functions.When we are kids we play games and learn the most till we go to school, stop gaming and start the formal education.

Research are now recognizing this and advocating to introduce the concept of fun, games in learning.


   


In Siddbetter,  we do not make games with motive of teaching something. Instead we make games which takes some basic fundamental concepts of learning and allows you to play and have fun with intuitive learning. Just like chess, which does not teach you anything but makes you think about your steps ahead, build concentration, make strategies to overcome your opponent.

Siddbetter's "8 or Bust" teaches you -

  • Simple rules of using adding/subtracting numbers to reach numbers in line. 
  • Pattern recognition of match-3 with same numbers/color. 
  • It teaches you concept of even/odd numbers because when the odd number starts appearing the game gets more challenging.  
  • It makes the player think of complements of number to identify quickly the add/subtract compatible numbers.
  • The patterns can be horizontal/vertical.
  • It makes you think ahead of your steps so that you can achieve the better pattern. 
  • It requires concentration to be able to find patterns.
  • Foremost, it provides you a goal of catching as many cute animals like cats, dogs, butterflies...
  • You compete with your friends for a spot in Leaderboard. 


This does not mean, everyone who plays will become the master of multiple skills but the game offers a puzzle and challenge which aids in learning.

Wednesday, February 18, 2015

e-Learning - New Innovative ways of Learning

A vision for e-Learning describes a future where the effective use of advanced learning technology will reduce the time to learn without compromising the effectiveness and quality of education. It is where the dream of a personal intelligent tutor for every learner is realized.

E-Learning will enable personal customized learning -
- Anywhere
- Anytime
- Any pace

To meet the vision of the future Architecture the trends can be classified in three main areas:
- Innovative Ways of Learning
- Enabling Pervasive Technologies
- Enabling Infrastructures

This blog I try to list Innovative Ways of learning….
Innovative Ways of Learning
This focuses on methodologies in producing e-Learning where the technological solution is transparent to the user. It emphasizes new ways of making the learning more effective and objective.

-Outcome based learning, learning methodology which focusses on aligning a course based on the final outcome based on standard.
Ex- First Grade State standard “Add and subtract within 20”
So the outcome here is learner should be able to add and subtract within 20, if learner is able to do addition and subtraction to that effect then the goal is achieved. Learner can move to next outcome.

This methodology works with setting up a defined goal and then gives concept and exercise to that goal and in end giving test exercise where learner has to answer these questions requiring students to demonstrate that they have learned the required skills and content. It promotes curricula and assessment based on constructivist methods.

-Collaboration & community, As they real fun is doing things together.
This methodology promotes collaborative way of working, giving rise to the way student projects are structured.
The days of isolated learning is disappearing, giving way to models in which students and their teacher collaborate together and understand address issues objectively with real-life examples by collaboration. The geography and location are also becoming immaterial in this paradigm.

- Project based plan, where learning objective is like a project to facilitate learning in measurable milestone programs followed by assessment to measure success of achievement of the milestone objective.

-Lifelong Learning, Learning never stops. One finishing goal shows next milestone to reach.
Learning is not only limited to curriculum and schools but also for personal, civic, social and employment.
There is high requirement for ways of progressing in life to achieve higher salary, better standards of living, and progress in social ladder. This methodology aims improving for current knowledge and expertise and sets up goal for next promotion and train for the job of tomorrow. It makes the practice of professional development a continuous one.

Ex- It takes up the profile of a software developer and quickly draws up a career plan for him like 2 year senior programmer, 4 years managing capabilities…. The plan may list skills required, available options of certifications …

-Adaptive Learning, All learners are unique in their requirement and their skill to learn.
Adaptive-learning is moving away from traditional mass-teaching based one-for-all learning methodologies. There is increasing trend to model the learning programs based on individual learners’ needs, preferences, and learning goals, that is  learning has become  more and more personalized and adaptive.

Adaptive Learning is based on some intelligent engine which compiles the course based on the learners IQ, his performance in earlier assessments.  The engine adapts the content based on the learner’s behavior – like his assessment score, his last questions’ answer, and his behavior in time…

Ex- During assessment, if learner gives wrong answer to an addition question, the next question could be more simple addition question or showing him answer and then putting similar question again.


-Learning Analytics, Analytics is heart of adaptive and optimized learning. Collection of learner behavior, Measurement, Analysis and subsequent reporting or profiling and using that report of profile to adapt the course, next goal or Next assessment question ….

Leaning Analytics models the learner activity, interaction, assessment results and learner profile to predict and in short-term the adaptive learning by course and content customization, learning personalization and in long-term help in finding the learning opportunities based on the objective map and skills.


-E-Portfolio, is kind of management of record for lifelong learning methodology. It is a collection of electronic evidence assembled and managed by a user. E-portfolios are both demonstrations of the user's abilities and platforms for self-expression. It also record of things that the learner has done over a period of time, and may be directly tied to learner outcomes or rubrics.

E-portfolio is like progressive curriculum vitae of a person.


Thursday, November 6, 2014

Mastering a new coding language is very easy

I know many languages starting with C, C++, Java, C#, Visual Basic, VB.Net, Basic, Pascal, FORTRAN…

Last year, when I started on the venture of developing iPhone games I had to start on a new language (Objective C). 

Here, I will try to list few things to keep in mind while learning a new language to make life easier and learning faster.

#1–Language is just tool of the trade. Making programs which solves my problem in efficiently is what matters 

I have come across many people who are hung on a language. Freshmen out of collage are advised  about the importance of a language. They many a times leave good jobs in search of find a job in search for a specific language. Programming for them is learning syntax of a particular language. They would be list on their experience of how to write for loop, defining arrays …

I have found many people who have spent more than 4 years in one language without knowing more than writing for loops and few simple statements.

Unless, you understand the data structure of a language, different constructs, like hash maps, arrays, and sets … you would stick to solving your problem by just using the arrays where set would have been a better choice.

#2 – 80-20 rule Pareto principle. 20% of syntax makes 80% of language

Each language has 20% most common key constituents. If you learn them you would be able to code 80% of your programming needs.  
1.       A Hello World Program
2.       Compute Program
3.       Loops
4.       Symbolic Constants
5.       Conditionals
6.       Arrays
7.       I/O Capabilities
8.       Functions

If you are able to just learn 8 above topics, you would have mastered 80% of the language for your programming needs.

#3 – Common Constructs

All languages common constructs are designed same. Example- for loop is for in all languages, all languages would have while, do-while constructs for loops.

Their defining would mostly in scoping the loop

In C,    for (;;) {    } à  {   }   curly brackets are scoping any construct.

Same is the case with PHP, java …

In C,   printf("\n");   for printing words…

Java, System.out.format("\n");

PHP,  printf("%d", "17,999") 

Don''t they look just the same :) 

#5 – Save your money. The best resources are free

In my life I have never used any book to learn a language. 

All my language learning is hands-on with Google, StackOverflow when I am stuck …

All you can ever learn in language exists somewhere in some site. All you need is to find it. However, you will need to be smart enough to change the things as per your needs to make it run ….  

#6 – Create SMART goals.

S.M.A.R.T. goals on the other hand are Specific, Measurable, Attainable, Relevant, and Time-bound.

Start with a hello world program to set up environment. 

And then begin your journey to learn the language with a small but very creative program which would include using functions, for loops , reading and writing files. 

If the language includes database then after files you could relace file by a database query and updating.

If you start with same program in language you would be able to relate new language construct with newer one giving you fast-track learning. 

It is exactly like how we do in our speaking language where we relate a new language like French with our mother tongue.

Ex- What is eating called in French?  What is sleeping called in French …  

Ex- How will do this thing like calling function in “C#”. How will I pass parameters to new function?

#7 – Time to Master- Explore uniqueness of the language.

Once you have mastered the average constructs and making easy programs. You will be able to understand other peoples coding. 

Now is the time to explore new features of the language and also the complex features. 

For this you may google for specific "technical terms" as you now know specifically what to search for.

You may get these things from Git-hubs, Open-Source repositories as they have code of people who have written best of utilities. 

You can learn from their codes, their best practices and lot more things specific to language.     

That is all there is it to learn a new language …

Happy Learning!!!

Monday, October 27, 2014

Adventure of Tony Dum Dum - My New Game in App Store

Finally released my new game Adventure of Tony Dum Dum.

Not many people know about the early life of our Tony…

Story goes when Tony was not as famous as he is now. He went totally dum dum over this girl named Ello Icky.  Now, Ello Ikcy was not so great looker but a very plain looking intelligent girl. May be that simplicity catch our Tony’s eye?




But Ello Icky’s father, François, is a rugged sailor having travelled round the World. He was mathematical genius and love solving puzzle. He challenged Tony to prove his smartness by solving these mathematical puzzles as he must travel around the world following Ello Icky with his father and win his heart.







Puzzles François lays down are number chips matrix which is between 1 and 9. Now Tony must align them in basic 3 match pattern to break and earn score. If make complicated alignment pattern in “4”, “L”, “T” or 5 he get a booster power which helps him to solve the puzzle.
In the puzzle that number adds or subtract when he move them up or down. He can also align them by adding or subtracting the numbers. But maths was tony weakest link in those days he could not add beyond 9, so Francois gave him allowance and restricted the number addition only to 9. So now chip adding and subtracting will be valid only if it is between 1 and 9.





So begins the Adventure of Tony Dum Dum….

1)    Power Animations
   a.  Fire Ball – Goblet of fire which travel in a line burn everything in its path
    b.   Sword Keeper – Swords which travels X direction and cuts everything in its path
  c.    Diamond Crush – Diamond crush which throws diamond and converts others to itself.

2)  Swaps – Horizontal swap. Very limited and needs to be used very rarely.

3) Moves – Vertical down– which adds to chips and vertical down – subtracts lower from upper number. Main moves ….

4) Use moves to make “Match-3” larger number combo – 8-8-8 gives higher score than 1-1-1.
5   
    5)  Complicated patterns gives the powers – 8-8-8-8 gives fire …. L –T (in any perspective) pattern gives powers. L can be standing or sleeping or inverted does not matter – gives power.
6   
      6)  Higher levels have fun like 
           a. Freeing Ello Ikcy from prison
           b. Moving Tony to a Broadway Castle
           c. Get Francois beer down to his cellar
           d. Get flower down to Ello icky
7   
      7)  Kids will love it because of mathematical puzzles like many ways to reach to same number. 
            2+3 =5, 1+4 =5, 9-4 =5 ….
  

      https://itunes.apple.com/gb/app/adventures-of-tony-dum-dum/id897421362?mt=8


                                                                                                                                

What is Project Management?

Project Management
Project Manager is CEO of the project. He is responsible for everything in a project similar to manner a CEO is for everything in his company. He is all in all responsible for the success and failure of a project. He has to manage the project in whatever manners possible.




Project Manager’s responsibility start as soon as he is assigned the project after the contract is signed.

Scenario
Let me take a scenario. A project estimated to be of 100 man days needs to be developed is assigned to Aditya, the PM. The project is a development project which would have to be follow entire SDLC phase. This project has been estimated to be of 80 FP with productivity taken for java for 10 hrs per FP.

First, Aditya does his own estimation to be convinced that he has taken the project with correct estimated effort.

Re Estimation
In case of major discrepancies in the effort, he needs to bring that out to his reporting manager, Shreya, which may mean some additional functionality or constraint not known at the time of estimation phase. In case, of some issue Shreya and Aditya may take up the issue with regards to change the contract or come to some agreement with the client. In case, of client not agreeing to the situation, Shreya and Aditya needs to take the call off choosing any of the many available options. One solution could be to project agree with his reporting manager to work with his own estimates.

If Aditya found the estimate to be correct and he is convinced of the estimate. Aditya now gets down to project management.

Planning

SPMP
Aditya starts with building the Software Project Management Plan (SPMP). In SPMP, Aditya documents the entire plan how he will be managing the project.

  1. He starts with listing the scope of the project, things out of scope of the project, the contact people of the project, risks of the project (there could be a separate Risk Management Plan for thing) with risk mitigation strategies for each risk. 
  2. Aditya also documents what he will meet the various other processes of the project, configuration management; reporting and weekly report and expectation form the client with dates. Aditya documents the SLA for answering of the queries, and escalation mechanism on both sides.
  3. Aditya communicate SPMP to his reporting manager, his counterpart, and other stakeholder like Quality Manager etc. All the people can agree or recommend the change in any of the procedure. Client PM can agree or disagree on the expectation from his side, SLAs and escalation procedure. This communication is healthy and sets the expectation from all sides.

TOC of SPMP
        Project Summary
Scope, Purpose and Objectives
Assumptions and Constraints
Project Deliverables
Schedule and Budget Summary
Project Organization
Roles and Responsibilities
Managerial Process Plans
Work Plan
Control Plan
Requirements Control Plan
Schedule Control Plan
Budget Control Plan
Quality Control Plan
Reporting Plan
Metrics Collection Plan
Risk Management Plan
Technical Process
Process Model
Methods, Tools, and Techniques
Infrastructure Plan
Product Acceptance Plan
Support Process Plans
Configuration Management Plan
Validation & Verification Plan
Documentation Plan
Quality Assurance Plan
Review and Audits
Problem Resolution Plan
Process Improvement Plan

Project Plan
Aditya now also starts on the project plan. He could be using any tools for this. Much used tool is Microsoft Project Plan (MPP). For 100 days project, he divides the project first into the phases.

This is tentative plan at high level for phases, it may change based on the company internal metrics phase breakup, project constraints like requirement phase, no architecture phase etc.

Based on this high level plan now Aditya is working out his low level plan in MPP,

Divide the phases into components to be built. Also display column “Work” which will have estimated hours from above table. Now when Aditya, enter estimate for that component in the work column and resource name in resource column, MPP calculates the duration based on the number of effort allowed and number resources working for that component.



Aditya also needs to enter precedence column for sequence. Review of component UC1 will start when UC1 completes. So once precedence is entered for all the start and end date is calculated automatically by MPP.

Thursday, October 9, 2014

Function Point Analysis - Estimation

A very old blog written by  me.... when I was doing lot of project estimations. Had been in draft... 

FP is most widely used estimation technique when you have information about the functionality to be provided. It is technique which removes some amount of subjectivity from the estimation. It also is language independent.

If the concepts of FP is applied as per the definition then FPA technique used by different people should arrive at similar estimates in terms of FP (unit of function point analysis).

Then,

    FP x Productivity (in terms of #Hrs per FP) = Total Effort in Hrs.


Productivity is where effort should different for different company. If delivery person thinks his team is capable of giving the very productivity then he can take higher figure for Productivity.
If somebody has tools which will be able to give higher productivity then account for that in Productivity again.

Productivity has different figure for different language and different company, which should give competitive estimates not FP estimates itself.

Some of common mistakes we do while estimating using FPA. 


1) I have existing code so I will be able to copy the code from there hence let me give lower complexity. Or  I have tool which will allow me to do these 3 screens in 1 hour.

Do not get biased by implementation technique while estimation. Ex- Do not think that you have done similar thing be able to copy the code from there hence give a lower complexity while estimating. You are the person estimating it and you may not be developing it.

You can account for it by taking high productivity…



2) FP usually gives estimation 20% higher. So let me adjust it by reducing it.

May be it is other way round. You are taking productivity 20% lower, may be you should increase your productivity and you will start getting 20% lower estimates.

3) I can make add, modify and delete and display functionality in one single screen.

Do not think of implementation while estimation. FP is based on functionality rather on number of screens.

4) Customer Details is 3 ILF, Customer Name, Address is different table, Customer relatives is different table

Again, do not think of implementation while estimation. FP does not think of ILF as table. Tables are not normalized here.

The major components of FPA estimation are:
1) EI
2) EO
3) EQ
4) ILF
5) EIF

EI, EO and EQ are through which system interacts with Users.

EI – External Input is a screen field which is used to get information from user. This field when obtained by system from user is stored in a file which ILF. The information which is displayed to user can come from other type of file called EIF.
ILF from EIF in the sense that ILF is the file or information which is maintained (added, modified and deleted in the system). EIF is the file or information which is not maintained or which is static information.

EO and EQ is again screen or report field which are displayed to the user. They are almost same EQ is simply displayed where as EO is derived field which is result of some calculation.

So process of counting FP is,
Take functionality like, “Add a Customer detail”.
EI –
- Count number of fields which are in screen which are asked from user.
- Count number of FTR or file transactions (number of file referenced ILF + EIF), which could be for saving in file or getting from file for display.
EQ – functionality like “Display Customer details.” This will be simple query from file.
- Count number of fields which are in screen which displayed.
- Count number of FTR or file transactions (number of file referenced ILF + EIF),
EQ – functionality like “Display Customer Addition Report” . This would be a derived query or complex query.
- Count number of fields which are in screen which displayed.
- Count number of FTR or file transactions (number of file referenced ILF + EIF),
- Some of the fields like sum, average and other calculations …



Functionality Type# of DET# of FTR


Add a customer
EI(no of fields of input)(nos. of file referenced)

Display a customer

EQ

(no of fields of displayed)

(nos. of file referenced)

Customer Report

EO
......




This reference table is used for knowing the complexity of EI.


FTR
Data Elements (DET)

< 2
Data Elements (DET)




1-4
5-15
>15
<>2
Average
High
High

Low – 3
Average - 4
High – 6

You will FTR has more effect on complexity. DETs may not be very accurate. DETs can be in counted in blocks. They can be in range of 1-4, 5-15 or > 15 ( no need for to be very accurate).

Similar, is case with EO and EQ.

For ILF, You count Data Elements and RET (Record Element Type).
Data Elements - Again fields like Customer Name, Customer Age
RET - Field group (repeatable, counted once) like Customer Address(office add, resd add etc.)
Record Element Types (RET)
Data Elements (DET)

1-19
20-50
> 51
1 RET
Low
Low
Average
2 – 5
Low
Average
High
6 – more
Average
High
High

Low – 7
Average - 10
High – 15

Again, you can see – no need to very accurate in counting fields. It can be block of 1-19, 20-50 or > 51. Give you judgment. RETs are more important.

You will also notice ILF and EIF are more important. As they give higher FP counts.


With counting EI,EQ,EO and ILF and EIF. The reference tables give the FP count.

Total of all FP count is the UnAdjusted Function Point.
Which is then adjusted by a factor which is derived from getting the complexity of the system, like whether it is highly interactive, distributed system….
These factors when applied using adjustment formula.

Value Adjustment Factor

  • General System Charactertics
  • Degree
  • Data Communication
  • Distributed Processing
  • Performance
  • Heavily Configurable
  • Transaction rates
  • Online Data Entry
  • Design End User Efficiency



















Monday, June 23, 2014

Game Development Cycle

This development cycle is how we developed our iOS based game Space Trap I which is now in App Store.



Conceptual Stage 

Idea is conceptualized on many dimensions.
  • Very important is its fun and entertainment
  • Easiness (Easy or Hard- requiring extreme intelligence)  
  • Target audience (Action warfare, Racing or Puzzle games)
  • Any constraint you may have based on your skillset (Making high scene oriented movie like games)

It is like thinking on storyline of a movie or theme love-story, action, sci-fi.
You may think  out-of-box or make formula movie


Prototyping Stage


Prototyping helps in
  • Testing out the idea by actual playing or
  • It also refines the concepts of playing
  • It is iterative extension of conceptualizing stage

It is adds another dimension to the game of the revenue model.

Prototype can actual be released to smaller sample audience for getting feedback

The idea can still be thrown of window, if it does not appeal. The investment is still to minimum till prototyping.





Development Stage

All the teams start working on the game.
  • Ideas are still conceptualizing but at more details level,
  • Development is now more full scale with all miscellaneous screens, in-App purchases etc., animations
  • Design team churning out design assets  
  • Testing team - testing game on all dimensions of bugs, robustness, user friendliness, game play etc.

It is interactive process with new ideas, implantation, testing and refinement.

After all testing, game is submitted to Appstore which approves after approx. 1 week. Now you are ready for release.
  

Marketing


Marketing is test of all hard work.
You advertise on available channels, forums medium …

Test out different geographies, channels, demographics, sources…   

Analytics/Tracking
-         Cohort Analysis (along multiple dimension) for target spending and target audience
-         Cross platform tracking

Metrics
-         Engagement Metrics
-         Retention
-         User acquisition
-         Monetization
-         User acquisition cost (CPC, CPI)
-         Conversion rates
-