You are a good programmer. You are fluent in multiple programming languages. But can you program in style? This course is a journey through the landscape of programming languages and idioms. You will discover a multitude of dramatically different programming styles. A style arises from a set of constraints you impose on your code. Styles are independent of a given programming language. You can use many different programming languages to write code in a given style. In this course you won't just hear about and discuss various styles. You will practice those styles. You will look at programming as an art, and like a budding artist—be it a painter, a writer, or a musician—you will practice producing works in multiple artistic styles.