CS 151 Fall 2023     [Syllabus]     Labs/Projects

Description Contact Schedule Grading Materials Course Policies General Policies

Course Description

CS 151 Computational Thinking: Visual Media

An introduction to computational thinking: how we can describe and solve problems using a computer. Using the Python language, students will learn how to write algorithms, manipulate information, and design programs. They will learn about abstraction, how to divide and organize a process into appropriate components, how to describe processes in a computer language, and how to analyze and understand the behavior of their programs.

The projects will focus on manipulating images or generating complex and interesting scenes and animations each week through writing well-constructed programs.

Learning Objectives

  1. Students can read a simple program and correctly identify its behavior
  2. Students can convert a problem statement into a working program that solves the problem.
  3. Students understand abstraction and can break down a program into appropriate procedural and object-oriented components
  4. Students can generate an approximate model of computer memory and describe how an algorithm affects its contents.
  5. Students can communicate the result of their work and describe an algorithm.

Contact Information

Hannen Wolfe
Email: hewolfe@colby.edu
Office: Davis 114
Office hours: M 1-4pm, Th 3-4:30pm, F 3-4:30pm
Please email with any questions, will respond within 24hrs, M-F 9am-6pm

Lab Teaching Assistant: Daniel Lyu (W. 1:00-2:20)
Evening Teaching Assistant Office Hours:
Su 4-10pm, M 4-10pm, Tu 4-10pm, W 4-10pm

General Schedule


Time: MWF 9:00-9:50am
Place: Davis 102


Lab: W 1:00-2:20pm
Place: Davis 102

Weekly Course Schedule

Sunday: Homework due at 11:59pm
Tuesday: Project due at 11:59pm
Wednesday: In class quiz every other week
Wednesday: Assignments Given (homework & project)
Thursday: Homework due at 11:59pm

Important Dates

Final Exam: [[TBA]]



Labs with Programming Projects 45% Weekly, hands-on, supervised and un-supervised learning.
Quizzes 20% Biweekly in-class quizzes.
Homework assignments / Participation / Checkins 15% Watch videos & answer questions outside of class. Make progress on your project code. Participate in group activities, ask questions, attend lectures and labs.
Final Exam 20% A 1.5-hour opportunity at the end of the semester to demonstrate your ability to answer questions about course material.


Wednesday: Project assigned in Lab

Tuesday: Project due at 11:59pm

  • 21 points base project
  • 05 points writing/documentation component
  • 04 points extension points (cannot receive if late)
Late Policy:
  • On Time: Assignment out of 30 points
  • 1 week late: Assignments will receive a max grade of 26/30 [no extension points] if turned in within 1 week of the due date. If it is incomplete 1 week after due date please turn it in as is to receive partial credit.
  • > 1 week late: Assignments will not be accepted.
  • 1 Freebie: As you all have busy schedules, each student is allowed to have one free three-day freebie that can be used at your discretion over the course of the semester, excepting only the final project. That means you may choose to hand in one project on Saturday instead of Wednesday. Please fill out the form on google classroom to let me know you are taking your freebie before the deadline.


Wednesday: Homework assigned on Classroom
Thursday: Homework due at 11:59pm on Classroom
Sunday: Homework due at 11:59pm on Classroom

  • No extensions
  • Graded from 0 or 1 based on completion
  • I will go over the homework in Friday and Monday lectures


  • Progress made on the project or lab completed during class time is checked on filer 10 minutes after class
  • Graded from 0 or 1 based on progress


Friday: Every other Wednesday.

  • One quiz can be missed with an unexcused absense
  • Please contact your professor in the event of quarantine or hospitalization, we will work out accommodations.

Final Exam

Based on Friday quizzes

Class Participation

You are expected to attend every class. The course will involve both lectures and hands-on activities in lab. For this course to be truly successful, your presence and participation in lecture and lab is important. When you have a question, ask it. It is highly probable that one of your classmates has the same question. When we give you an opportunity to share your opinion or your answer, please speak up. We want to hear what you have to say. Discussion is a vital part of the learning experience. Good class discussion needs your contribution. If you must miss a class, you are responsible for making up the material covered in that lecture.



We will using readings from a variety of textbooks available free online through the library.


We will use the Python computer language (v3.8) as the basis for the course, with weekly lab sessions to provide hands-on, supervised learning. You will be using a text editor (e.g. VS Code, TextWrangler) to write your code. Some projects may also use other free software that you can install on your computer. The computers in Davis 101 and 102 are equipped with all necessary software and you can access the building and the labs 24/7 during the semester.

Course Policies

Use of electronics in class

Please make sure your cell phones are off. I discourage the use of smartphones unless used as a mandated accommodation. It is distracting for those around you (Sana et al., 2013), for lecturers, and can be distracting for you. There is also empirical evidence that students learn better and remember more by taking notes by hand (Mueller & Oppenheimer, 2014). Please see me if you have concerns about this and I will work with you to support your learning needs.

Collaboration, Academic Honesty

Computer science, both academically and professionally, is a collaborative discipline. In any collaboration, however, all parties are expected to make their own contributions and to generously credit the contributions of others. In our class, therefore, collaboration on homework and programming assignments is encouraged, but you as an individual are responsible for understanding all the material in the assignment and doing your own work. Always strive to do your best, give generous credit to others, start early, and seek help early from both your professors and classmates.

The following rules are intended to help you get the most out of your education and to clarify the line between honest and dishonest work. We reserve the right to ask you to verbally explain the reasoning behind any answer or code that you turn in and to modify your project grade based on your answers. It is vitally important that you turn in work that is your own. We do use automated plagiarism detection software, so please be sure to abide by these, rather minimal, rules. Reports of academic dishonesty are handled by an academic review board and a finding of academic dishonesty may result in significant sanctions. For more details on Colby's Academic Integrity policies and procedures, see colby.edu/academicintegrity.

  • If you have had a substantive discussion of any homework or programming solution with a classmate, then be sure to cite them in your write-up. If you are unsure of what constitutes "substantive", then ask me or err on the side of caution. As one rule of thumb, if you see more than 10 lines of someone else's code, then you should cite them. You will not be penalized for working together.
  • You must not copy answers or code from another student either by hand or electronically. Another way to think about it is that you should be talking English with one another, not program languages.

How to succeed

Labs and Projects: Come to lab ready to focus on the new project. Ask the lab instructor and TA for help if you need it. Talk to your peers about the course concepts.

Quizzes: Study for the quizzes by doing the homeworks.

Short homeworks: Try them. You will receive full credit as long as you make an honest attempt to complete every question. Please ask or email questions to the professor if something isn't clear (see 30-Minute Rule below). As long as you submit your response by Thursday at noon on classroom, you will get credit. Review the homework solutions on Thursday afternoon to check your understanding of the material before the quiz. There is no partial credit for late homeworks because we may go over the answers in class on Friday before you take the quiz.

Participation: Speak up in class. Come to office hours. Ask your your instructor or TA for help.

Final Exam: The final exam will be similar to a large set of quizzes (but written from a more wholistic perspective). The best way to study for the final exam is to retake all of the old quizzes (and quizzes from old semesters). Also, read through your notes and make sure you understand everything in them.

For more information about expectations and the assignment of grades, see this document.

Help and Discussion Outside of Lecture

  • Office Hours: I will all be available to help outside of class time with questions about concepts or projects. Please do not hesitate to stop by my offices, or send me an email. Not only do I enjoy talking about computer science, I want to get to know you!

  • Email: In addition to coming by our offices for help, you are welcome to send me email with a question. I read my email frequently and respond to questions within 24 hours M-F.

  • Evening TA Help: In order to provide as much help as possible to you as you work on assignments in this course, the CS Department has hired upper-level CS students to work as TAs in the Davis 102 lab in the evenings . You are strongly encouraged to take advantage of this resource. The TAs are getting paid to help you, so don't feel guilty about asking them for help. See the section above called Evening TAs for specific times.

  • Guidelines:
    • 30-Minute Rule: If you have been stuck on a problem, such as a bug, for more than 30 minutes and have made no progress, despite your best efforts, please stop and get help. Email me, ask a TA, or consult a peer. If you don't get an answer immediately, do something else for a while. Please do not waste your time on one problem.
    • I am always happy to help you with any of your code for your projects. However, the earlier you come to us with questions, the happier we'll be to help you (we usually respond to a last-minute call for major help with the question "Why didn't you start earlier?").
    • Please feel free to raise any concerns or complaints about the course directly with me.


It should go without saying that you should back up any files related to this course. If the code you submit to us is somehow lost (through your fault or our fault), I must be able to get another copy from you. I suggest you use the college's personal server (filer.colby.edu) to store your work in this class, as it is regularly backed up.

If you come across a Python word or function that you are unfamiliar with, you should know how to look it up in online documentation or in a Python reference book. There is a section of helpful links on the course information page. If you have trouble finding the documentation you need, feel free to come see us, but we expect you to try to look up the documentation yourself first.

It should also go without saying that you should never leave your work in a public folder on a computer in a public lab. Instead your work should always be kept in your private account or copied to your own media such as flash drives and deleted from the computer's hard disk when you are finished using the computer.

Don't gloss over errors in your code. That is, if you pretend there are no errors in your code when you know there are some there, I will take off more points than if you point out the errors that you were unable to fix.

General Policies

The Colby Affirmation

Colby College is a community dedicated to learning and committed to the growth and well-being of all its members.

As a community devoted to intellectual growth, we value academic integrity. We agree to take ownership of our academic work, to submit only work that is our own, to fully acknowledge the research and ideas of others in our work, and to abide by the instructions and regulations governing academic work established by the faculty.

As a community built on respect for ourselves, each other, and our physical environment, we recognize the diversity of people that have gathered here and that genuine inclusivity requires active, honest, and compassionate engagement with one another. We agree to respect each other, to honor community expectations, and to comply with college policies.

As a member of this community, I pledge to hold myself and others accountable to these values.

What does this mean to students?
  • We respect each other and ourselves.
  • We respect our physical spaces on campus.
  • We respect our academics and complete work honestly.

Title IX Statement

Colby College prohibits and will not tolerate sexual misconduct or gender-based discrimination of any kind. Colby is legally obligated to investigate sexual misconduct (including, but not limited to, sexual assault and sexual harassment) and other specific forms of behavior that violate federal and state laws (Title IX and Title VII, and the Maine Human Rights Act). Such behavior also requires the College to fulfill certain obligations under two other federal laws, the Violence Against Women Act (VAWA) and the Jeanne Clery Disclosure of Campus Security Policy and Campus Statistics Act (Clery Act). You can learn more about what constitutes sexual misconduct or to report an incident here.

If you wish to speak confidentially about an incident of sexual misconduct, you may contact:
  • Counseling Center: 207-859-4490
  • Emily Schusterbauer, Director Gender and Sexual Diversity Program (eeschust@colby.edu; 207- 859-4093)
  • Office of Religious & Spiritual Life: 207-859-4272
  • Maine's 24/7 Sexual Assault Helpline: 1-800-871-7741
Students should be aware that faculty members are considered "responsible employees"; as such, if you disclose an incident of sexual misconduct to a faculty member, they have an obligation to report it to Melvin Adams, Colby's Title IX Coordinator. "Disclosure" may include communication in-person, via email/phone/text, or through class assignments.

Academic Accommodations

I am available to discuss academic accommodations that any student with a documented disability may require. Please note that you’ll need to provide a letter from the Dean of Studies Office documenting your approved accommodations. Please meet with me within two weeks of the start of the semester to make a request for accommodations so that we can work together with the College to make the appropriate arrangements for you. Office of Student Access & Disability Services (accommodations@colby.edu) is the primary contact for accommodations and any questions related to educational testing and documentation.

Mental health: I care about my students’ well-being and understand they may face mental health challenges. Students are encouraged to seek support from the College’s available resources, including your advising dean and Counseling Services. (For immediate care, please call 207-859-4490 and press “0” to reach the on-call counselor.) I am willing to discuss reasonable accommodations during a crisis, but to fulfill our educational mission, students are expected to adhere to the attendance policy. Failure to do so because of mental health challenges may require consultation with the Dean of Studies Office.

Respect for Diversity

It is my intent that students from diverse backgrounds and perspectives be well-served by this course, that students' learning needs be addressed both in and out of class, and that the diversity that students bring to this class be viewed as a resource, strength and benefit. I expect you to feel challenged and sometimes outside of your comfort zone in this course, but it is my intent to present materials and activities that are inclusive and respectful of all persons, no matter their gender, sexual orientation, disability, age, socioeconomic status, ethnicity, race, culture, perspective, and other background characteristics.

I have attempted to avoid scheduling exams during major religious holidays. If, however, I have inadvertently scheduled an exam or major deadline that creates a conflict with your religious observances, please let me know within two weeks of the start of classes so that we can make other arrangements. Colby College is supportive of the religious practices of its students, faculty, and staff. The College is committed to ensuring that all students are able to observe their religious beliefs without academic penalty.

Class rosters are provided to each instructor with the student's legal name. I will gladly honor your request to address you by an alternate name and/or gender pronoun. Please advise me of this early in the semester so that I may make appropriate changes to my records.