assert is similar to require. The difference between assert and require is that require will refund the user the rest of their gas when a function fails, whereas assert will not.
Most of the time you want to use require in your code; assert is typically used when something has gone horribly wrong with the code (like the overflows).