In the last cell of exercise session 2 there is a bug - we provide the following code:
def decomposeSeperableFilter(F):
# DO NOT CHANGE THIS FUNCTION
h = [1]
for i in range(1,s):
h.append(np.sum(F[:,i])/(np.sum(F[:,0])))
h = np.asmatrix(np.array(h))
v = np.asmatrix(F[:,0]).transpose()
return v, h
which refers to an undefined variable "s". It should be that "s = F.shape[1]". Sorry for the confusion.