Principles of Computer Science
This will be a year long elective in which we start from the basics of writing code and programming principles, and build to much more complex projects. We will learn the control structures and patterns that are core to any computer language, and then implement them in a variety of ways. We will also learn about graphics control in Python with some simple graphic modules. While the language of choice will (most likely) be Python, these principles will apply to a wide array of languages that you may encounter in the future. As well, we will dedicate some time to the history of computer science and the fundamentals underlying hardware, software, and interfaces as well as some popular topics like encryption and cryptocurrencies. This course is appropriate for any student who likes getting immediate feedback from their work, is willing to do some math and calculation to make things come out neatly, and is not scared of learning by doing. There will be no tests or textbooks, though there will be numerous projects and short assignments. Once the first term is over, we’ll decide as a class where to focus – making games, data analysis, algorithms, or something else.