Students will learn the essentials of programming. Fundamental constructs such as decisions, repetitions, datatypes, and basic collections of data (scalar values, arrays, lists and sets) will be covered. Students will understand problem deconstruction and basic modularization (functions). The language will be instructed against a background of 'traditional' problems as well as introducing how it is applied in web scraping, data visualization, machine learning, and other examples appropriate in data management domains. No prior programming experience is necessary.