Expectation Maximization Algorithm for simple naive Bayesian network
I finally found the solution
Expectation step is as follows
Calculate new probabilities of data points as follows 
P(A|B,C)
which we break down to 


  (P(A,B,C)/P(B,C) =
  
  (P(B|C,A) * P(C|A)*P(A)) / (sum of all P(B,C) for all A) =


since A is known then B &amp; C is independent
therefore


  (P(B|C,A) * P(C|A)*P(A)) / (sum of all P(B,C) for all A) =


which we need to consider 3 binary variables, gives us 8 cases (2^3)
lets say for A = 1, B = 0, C= 1


  (P(B=0|A=1) * P(C=1|A=1)*P(A=1)) / 
  ( (P(B=0|A=1) * P(C=1|A=1)*P(A=1)) + ( (P(B=0|A=0) * P(C=1|A=0)*P(A=0)) )
  
  =  P(A=1| B=0, C=1) = lets call it value val101


we use this value (val101) to update probability of each unknown data point that has B= 0 and C = 1 and A = 1.
Then update probability of each unknown data point where A=0, B=0 and C=1 with the (1-val101)

we do that for possible combinations of A, B and C
000
001
010
011
100
101
110
111

(I think this is already an M step - Maximization, but here it goes)

To calculate parameter theta for P(A=0) we do the following
count (sum of all probabilities) of each data point where A = 0 and we divide it by the original amount of data points
we do the same for the A =1

then we update conditional parameters
to update parameter theta of P(B=1|A=0)
we take a sum all the probabilities of all data points where A = 0 and B=1
and we divide it by the count (sum all the probabilities) of probabilities of data points where A =0
so its as follows

#(A=0,B=1) / #(A=0)  = theta P(B=1|A=0)

and we do that for all the conditional probabilities which are as follows

P(B=1|A=0)
P(B=0|A=0)
P(C=1|A=0)
P(C=0|A=0)
P(B=1|A=1)
P(B=0|A=1)
P(C=1|A=1)
P(C=0|A=1)

then you are done