This course is an introduction to computer science for students without prior programming experience. We explore problem-solving methods and algorithm development using the high-level programming language Python after a brief introduction to computational concepts using Scratch. Python is a language with a simple syntax and a powerful set of libraries. While Python is easy for beginners to learn it is widely used in many scientific areas for data exploration. We cover basic data types and collections (lists dictionaries tuples and sets) control flow recursion information hiding and encapsulation using classes and objects and introduce the analysis of program performance. The examples and problems used in this course are drawn from diverse areas such as text processing and simple graphics creation. We also examine theoretical and practical limitations related to unsolvable and intractable computational problems.
Harvard Division of Continuing Education