COMP_SCI 110: Intro to Computer Programming



Introduction to programming practice using Python. Analysis and formulation of problems for computer solution. Systematic design, construction, and testing of programs. Substantial programming assignments in Python. See professor's website for an updated syllabus.

This introductory programming course is not part of the major. It provides an introduction to programming for those that can benefit from becoming better programmers, but without committing to the major student's version of the course.

  • This course is approved for Weinberg Area II (Formal Studies) distribution credit (NOT for CS Major Requirements)

COURSE COORDINATORS: Aleksandar Kuzmanovic & Jack Tumblin

COURSE INSTRUCTOR : Prof. Michael Horn (Fall), Prof. Connor Bain (Winter), Prof. Kuzmanovic (Spring), Michalis Mamakos (Summer)


This course is an introduction to computer programming using Python, and assumes no prior programming knowledge. 

Most people who need to 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.), and who use various programming languages to accomplish diverse and specialized goals. Moreover, as data and computing increasingly mediate modern life, knowing a bit about the mechanisms (and risks) that underlie these systems is a valuable modern literacy that is likely to serve you well.

The intent of the course is twofold.
First, we want you to gain a sense of the many different kinds of problem-solving and creative pursuits that programming can support.  Programming can act as 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 much more. 

Second, we want you learn fundamental constructs of computer programming along with skills and strategies to apply them in creative and useful ways. Towards this end, there will be quite a few practice problems to get you familiar with ‘the basics,’ as well as longer, open-ended programming projects that encourage you to marshal these ideas towards your own creative applications. These applications may include authoring electronic dance music, animations, games, and/or simple apps that interact with data and media from various sources (e.g. Yelp, Spotify, Twitter, various databases, etc.).

By the end of this course, you will have some experience writing programs, working with the command line, working with different kinds of data, and participating in several important programming practices (e.g. debugging, testing, and designing programs; reading technical documentation and sample code; installing and exploring third-party modules and APIs). Our hope is that this course will help you to see how your goals and knowledge might be supported via computing, while helping you to develop the proficiency and confidence needed to actualize these goals.

PREREQUISITES: None. We assume no knowledge of programming or computing.