Traditional cryptography is ill-suited to modern security needs, arising from the outsourced storage and computation possibilities that the "cloud" offers. The minicourse of lattice algorithm is centered around encryption and its advanced variants that are more suited to the cloud. We will introduce hard problems related to lattice and how to design protocols whose security provably relies on the difficulty of hard problems. We will start from basic lattice algorithm, reduction techniques and move up to more and more advanced techniques to construct encryption suited to the cloud.