Course Syllabus

No profession unleashes the spirit of innovation like computer science and engineering. Computer software runs the modern world. In the last week, what was the longest stretch of time you went without interacting with a computer in some way? Think of cell phones, cars, Google, Facebook, Twitter, eBay, Wikipedia, Roomba, World of Warcraft, Amazon, and NOAA’s hurricane prediction, most of which are less than a decade old. Moreover, computation is now radically transforming the social sciences and humanities. Students will benefit by being able to apply computational thinking to their own study and research areas.

Course Goals

The objective of this course is not to turn you into an expert programmer. Rather, this course is designed to give you an overview of computer science and teach you about problem solving in a way that utilizes computation. Upon completion of this course, you will have a feel for how to think about and structure problems in such a way that you can use a computer to help you solve them. Programming is necessarily a part of this process, but it is neither the only part nor the most important part.


The course will be organized around the following main applications. You will then explore algorithms and implementations of computational solutions for those problems. These will introduce Python programming and computational problem solving throughout the course.

  1. Customizing House Plans: Modeling the business of a home builder.

  2. Rock-Paper-Scissors-Lizard-Spock: Playing a game from popular culture.

  3. Statistics: Solving statistical problems.

  4. Mathematical Modeling: Modeling and exploring the behavior of populations in a predator-prey relationship as represented by Lotka-Volterra equations.

  5. Text Analysis: Analyzing statistical properties of natural language texts. Generating similar natural language text automatically via Markov models.

  6. Social Networks: Building and measuring properties of social networks.

  7. Machine Learning: Using neural nets to recognize LED patterns.


Your course grade will be broken down as follows:

  1. Attendance/participation (10% total)

    You will be graded on class attendance and your participation in group activities.

  2. Quizzes (10% total)

    There will be a short quiz before each class. You will have three attempts at each quiz (with no penalty). You will be able to see the explanations/hints immediately after you submit.

  3. Exams (30% total — 15% each)

    There will be two exams.

  4. Assignments (50% total — 5% each)

    There will be 10 assignments, roughly weekly.

Late Submissions

The Canvas system has the notion of a "due date" and a "available until date". The "due date" is the real deadline by which you should turn in your work. The "available until date" is the time after which the system will stop accepting submissions.  We will apply a late penalty for anything submitted after the due date.

For assignments, after the due date passes, 10% of the available total will be deducted from your score for each day late you submit the assignment. A "day" is 24 hours.  Everyone will receive 3 late days that they can use over the course of the semester.  Late days are "free" 24 hour extensions on an assignment allowing you to submit without the 10% penalty. However, you cannot use late days to submit after the "available until date" for an assignment.

There are no late days for quizzes. You can, however, submit them late with a 10 point penalty per day up to the hard deadline.


Extensions will only be granted under exceptional circumstances (such as medical emergencies). Having lots of work and deadlines is not an exceptional circumstance, it is part of being a college student.


If you believe your grade on an assignment is incorrect, you have 7 days from when the assignment was returned to bring this to the attention of the staff. You should contact Ryan Spring ( with all such disputes. We recommend that you go to office hours and discuss your assignment with the original grader before doing so (and CC that grader on your official message to the TA). Once it has been brought to our attention, we will take whatever steps and time are necessary to resolve the issue. If you do not bring up your dispute to the TA within this 7 day period, your grade will stand. While sending email to the TA for re-grading, start the subject of the email with "COMP 130 regrade..."

Students with Disabilities

If you have a documented disability that will impact your work in this class, please contact me in the first two weeks of class to discuss your needs. Additionally, you will need to register with the Disability Support Services Office in the Allen Center.

Course Summary:

Date Details