Project name

COMP 115: How to Design Programs

An introduction to computer programming

Spring 2019


Latest news

02/01/2019 The TA session on Sundays has been rescheduled to 5 PM - 7PM.
01/24/2019 According to Wesleyan EPC policy, the instructor will drop all students that do not attend the first class on Friday 25 Jan 2019.


The purpose of this course is to introduce you to computer science and programming.

You will learn a systematic method for going from an informal description of a problem to a computational solution to it, and develop some understanding of what kinds of problems are easier or harder to solve computationally.

More specifically, you will learn to

  1. represent information from a problem domain as data in a programming language
  2. write functions that compute with such data
  3. develop programs using good software engineering practices, such as writing types, documentation, and examples/unit tests
  4. write interactive programs, which respond to user input
  5. use abstractions to eliminate repeated code

Examples will be drawn from various areas of computer science, such as data analysis and artificial intelligence.

This class is designed for students with no prior Computer Science experience, and can be taken as a single Computer Science class, or as preparation for COMP 211 (which covers more difficult programming, as well as other fundamental CS skills). It cannot be taken in conjunction with COMP 112. If you have taken AP Computer Science, you may be better off taking COMP 211, though you are certainly welcome to take COMP 112/COMP 115 for a gentler introduction. Many future computer science majors start with COMP 112/COMP 115, but many also start with COMP 211 directly.


There will be short handouts based on each lecture; these can be found on the course materials page.

Each handout will direct you to selected passages from various sources.

The main textbook that covers the language that we will use, Pyret, is "Programming and Programming Languages" by Shriram Krishnamurthi, Benjamin S. Lerner, and Joe Gibbs Politz. We will refer to this as "PAPL" for short. The full text it is freely available online.


Day & Time



Wednesdays 10:50 AM-12:10 PM Exley, ESC 074 lecture
Fridays 10:50 AM-12:10 PM Exley, ESC 074 lab
Wednesdays 2-4 PM Exley, ESC 345 office hours
Wednesdays 7-9 PM Exley, ESC 141 TA session
Thursdays 7-9 PM Exley, ESC 141 TA session
Sundays 5-7 PM Exley, ESC 141 TA session

Lab: supervised coding based on guided, in-class assignments.


Assignments will be published after class on Friday.

Your answers are expected through Moodle by the start of class on the following Friday.


Your host

Alex Kavvos homepage

Your course assistants

Preksha Sreewastav

Nora Faye

Joshua Reed



Component Percentage
homework assignments 75%
final project 20%
participation 5%
Grade Approximate Boundary
A 90-100%
B 80-90%
C 50-70%
F < 50%

WARNING: the instructor reserves the right to adjust the final letter grade boundaries to account for differences in intended and actual difficulty of assignments.

Late Work Policy

Neither the instructor nor the TAs will grade work that is handed in late, unless special permission has been previously granted by the instructor.

Academic Integrity

All students are bound by the Wesleyan honor code, as set out in the student handbook.

There is one exception: during in-class labs, students may collaborate with each other freely.

On Homeworks/Final Project, you may discuss the assignments with other students, but you may not share code or writing.

Examples of allowed collaboration: you may discuss the problems ("what does this mean?") and discuss solution approaches in general terms ("try doing induction on xs"). You may hand-write solutions to problems with other students on paper or on a whiteboard, but you must not take any notes away from this, and you must each independently write up the solution after waiting at least 2 hours.

Examples of disallowed collaboration: you may not pair program (unless it is explicitly allowed by the assignment), give or receive solution files, or read someone else's code on their screen. You should understand everything you hand in well enough that you can quickly recreate it from scratch if asked.


All students are welcome in Computer Science, and to this course in particular. They are encouraged to actively participate, regardless of gender, race, class, able-bodiedness, nationality, native language, sexual orientation, political ideology, or religious beliefs. If the course environment does not meet these standards, please let the instructor know.

Wesleyan University is committed to ensuring that all qualified students with disabilities are afforded an equal opportunity to participate in and benefit from its programs and services. To receive accommodations, a student must have a documented disability as defined by Section 504 of the Rehabilitation Act of 1973 and the ADA Amendments Act of 2008, and provide documentation of the disability. Since accommodations may require early planning and generally are not provided retroactively, please contact Disability Resources as soon as possible. If you believe that you need accommodations for a disability, please contact Dean Patey in Disability Resources, located in North College, Room 021, or call 860-685-2332 for an appointment to discuss your needs and the process for requesting accommodations.