COMP_SCI 110 - Introduction to Computer Programming
CS 110 is meant as an introduction to the key ideas of computer programming and assumes no prior programming knowledge. In this course, we’ll use the programming language Python with two goals: first, we want to give you a sense of the kinds of creative activities, both directed problem-solving and creative pursuits, that programming can support; and two, we want to introduce you to the fundamental constructs (and associated skills and techniques) of computer programming.
Programming is a powerful medium for creative expression: it can be a representational medium, a tool for thinking about problems, a way of amplifying and/or communicating ideas, a means of performing complex calculations over massive datasets, and more. Being a computer scientist is not a prerequisite for creating useful or advanced programs. In fact, most people who write computer programs are not computer scientists, but rather people who occupy a range of professions. Journalists, geographers, sociologists, scientists, artists, musicians, entrepreneurs, researchers, etc., use programming languages to accomplish diverse and specialized goals. And as data and computing increasingly influence and perfuse modern life, understanding the mechanisms (and risks!) that underlie these systems is a valuable modern literacy that is likely to serve you well.
The second goal of the course is to introduce you to the fundamental constructs of computer programming and how to apply these low-level constructs in creative and useful ways. Learning a programming language is not dissimilar to learning a new spoken/written language–first, you need to understand basic rules like grammar and syntax, then you need exemplar buildings blocks like adjectives, nouns, and prepositions, and only then can you use these ideas together to create computer programs. What this means is that you must dedicate enough time to practicing the basics in order to allow yourself to progressively move to more and more complex programming practice.
Taking this course means committing — for 10 weeks — to attending lectures, tutorials, and office hours, turning in assignments / projects, doing (lots of) practice problems, and most importantly, persevering when things get difficult. Asking questions throughout the class is not a sign of weakness–it shows that you are actively trying to understand what you know and what you do not know. We have an excellent staff of teaching assistants and peer mentors who are here to answer your questions, help you understand course material in different ways, and push you to your fullest learning potential. With your consistent and active participation in learning, you can navigate the material in the course and become a proficient programmer by the end of the quarter.