in terms of hardware, if you want to do SLAM you need tons of memory and processing power . . . a laptop on your bot basically . . . microcontrollers can't handle it . . .
one SLAM method I've seen is mask fitting. basically you have a big map (a matrix), and a recent local map (a smaller matrix). your algorithm must figure out how your new local map fits as a puzzle piece to your larger map. it must account for rotations and differences and noise, too.
basically you are developing a jigsaw puzzle solver for robots, but where no piece fits perfectly.