“What I cannot create, I do not understand.” This course introduces ideas of computation as applied to a variety of theoretical research with a twist. We will not use prebuilt software, of which, depending on the field, there are several. We will explore how to create basic scientific codes from scratch with modern programming practices (hopefully), and understand and implement some core ideas that pervade a lot of computational methods.