An introduction to computational thinking, problem solving, and the fundamental ideas of computing. Topics include algorithms, abstraction, and modelling; the syntax and semantics of a high-level language (e.g. Python); fundamental programming concepts and data structures, including simple containers (variables, arrays, lists, strings, dictionaries); sequencing, conditionals and repetition; documentation and style; object-oriented programming; exceptions and error handling; recursion; simple algorithm analysis and run- time efficiency. Prerequisite: Mathematics 30-1. Note: Credit may be obtained for only one of AUCSC 111 (2021), AUCSC 113 and AUCSC 120 (2019).