blob detection using Laplacian of Gaussian filter
Most likely your images look different from the ones in the lectures because of scaling. Note that the result of the convolution with a Laplacian filter will have positive and negative values. What the resulting image looks like depends on the data type of the array, and on the range to which the values are scaled.  For example, if you store your filtered image in uint8, without doing any scaling yourself, the negative values will be truncated to 0.

Typically, when an image has negative values, it is scaled so that 0 corresponds to a neutral gray, the minimum value to black, and the maximum to white. It looks like this is what is happening in your code.

On the other hand, in this particular case you are probably interested in both maxima and minima of the Laplacian (dark on bright and bright on dark blobs), so you may as well just take the absolute value of the filtered image.  Then you will not have any negative values, which makes the scaling easier.

As far as your question about the edges, this is exactly what should be happening. The value of the Laplacian at an edge should be close to zero. This property is used for very precise edge localization by finding the zero-crossings of the Laplacian of Gaussian.