[Bowdoin Computer Science]

CSCI 2200

Spring 2021
Bowdoin College
Laura Toma

Class home | Detailed schedule | Blackboard | Collaboration policy


Algorithms are the backbone of computer science. Everywhere computer sciences reaches, there is an algorithm. This class is an introduction to critical thinking and problem solving through the design and analysis of algorithms. By the end of the class you will see that the "subject of algorithms represents a powerfull lens through which to view the field of computer science in general" [Kleinberg & Tardos]


Basic info

Prerequisites: csci 101 (Intro to CS) and csci 2101 (Data Structures).

Meetings: This semester all Bowdoin classes are conducted online, so this will be an online class. All materials will be posted online to be studied asynchronously before the meetings. There will be weekly, small-group zoom meetings with the instructor to answer your questions, work in groups, engage with practice problems and build a class community. We'll decide the groups and the time for these synchronous meetings at the beginning of the semester based on your availability.

Class resources:

How will this class work ?

This is an online class, which means that all materials will be posted for you to engage with them at home asynchronously, that is, at your time and pace. The class will meet synchronously every week for one hour, and these synchronous meetings will be to answer your questions, work with your peers, go over some of the problems in the handouts, and build a classroom community.

Before the beginning of the semester I will split the class into two groups based on everyone's constraints, and decide on a time to meet weekly with each group. Once assigned to a group, you commit to attending the synchronous zoom meeting for that group every week. Switching between groups will be strongly discouraged in order to keep the groups small and balanced.

Weekly timeline:

  1. Watch the lecture videos and read the lecture notes: Each week, your first task is to work on the materials for that week (lectures notes and lecture videos) and make a list of specific questions which you'll bring to the meeting. It is expected that you will understand the basic ideas and results, but perhaps need clarifications with some details.

    Time to budget: approx. 3 hours

  2. Pre-meeting check: This will cover VERY basic questions from the lecture. You need to do this pre-check before attending the weekly small-group meeting.

    Time to budget: <15 minutes

  3. Attend the weekly small-group zoom meeting: These weekly zoom meetings will replace the regular class time, and will be dedicated to going over your questions, working in groups, engaging with practice problems and building a class community. Before coming to the small-group zoom meeting you need to study the materials for that week and do the pre-check.

    Time to budget: 1 hour

  4. Continue to work on the materials for the week. Go one more time over the lecture notes and the details, and use the self-study quizzes and the study questions to help evaluate your understanding. Finding a partner (or a group) to work with is strongly encouraged.

    Time to budget: 3 hours

  5. Drop in to virtual office hours: Drop in to virtual office hours, help sessions/ study groups to get your questions answered and prepare for the weekly quiz.

    Time to budget: 1-2 hour

  6. Take the quiz.

    Time to budget: up to 1 hour

  7. Reflection and weekly journal.

    Time to budget: 15 minutes

Time commitment: How much time should you budget for this course every week? You probably heard this before, taking a 4-class load is like having a full-time job in which you are expected to work at least 40 hours a week. You should expect to commit 10 hours a week to meet the expectations of the course, and perhaps 12 to excel. Above I provided a tentative breakdown of the weekly time ---- please budget 10-12 hours a week for this class.

WHat you can expect from me

My goal is to maintain the class to the same standard as if it were "in-person". That is, the class will cover the same topics, and will not drop in any materials because it's online. To support the learning I have created detailed lecture notes and an ample set of study questions, practice problems and quizzes. Stay assured that at the end of the semester you will have learnt precisely the same topics and worked through the same problems --- as if you took this class on campus.

At the same time, I am also committed to being flexible. Please don't hesitate to let me know if you have any circumstances that hinder your learning, and we will work together to make an alternate plan.

Assignments, Assessments and Grading policy

Below is the list of assignments and assessments that you can expect during the semester, and how they are taken into account in the overall grade.

Assignments, partners and policy: The assignments will be hard. They will consist of new problems, sometimes seemingly unrelated to the class topics, which you will have to solve. Remember, one of the goals of the class is to provide the conceptual tools so that you can come up with solutions to new problems, on your own --- and that's the role of the assignments. Do not expect to sit down for an hour and solve everything at once (if you do, please let us know!). Instead, expect a process: read the problems, understand what they are asking, come up with initial ideas, figure out why they work or not, try to formulate questions, come up with improvements. The whole process is supposed to be interactive between you and your homework partner, your TAs, and myself. The problems in the assignments have been carefully chosen in order to provide an opportunity to learn deeper.

You will work on the assignments with a partner. You can have the same partner for all assignments, or you can change partners. You and your partner will work together on the assignment throughout the whole process, you will write it and review it together, and will submit one assignment. The assignment must be a true joint effort, equally owned, created and understood by both partners. Specifically splitting the assignment into parts and working on them separately is not allowed and violates the honor code for the class.

Grading policy: The final grade is determined as follows:

The final grade will count 10 pre-checks, 13 quizes and 3 assignments. The goal is to provide more than this number of assessments so that an the end everyone can drop their lowest (quiz, pre-check, assignment) score. For example, if we'll end up with 12 pre-checks, 14 quizes and 5 assigments, this means that you'll be able to drop your lowest 2 pre-checks, drop your lowest quiz, and drop your lowest 2 assignments.

Office hours and study groups

In addition to the small-group meetings, I will be available (on Zoom) for virtual office hours. Stop by to chat about anything and everything, including algorithms. At the beginning of the semester we'll have "mandatory" drop-in so that we get to meet and I learn more about you.

We have a fantastic set of TAs who are all eager to work with you! There will be weekly zoom drop-in office hours/study groups, which you can join hopefully at least once a week, and many times a week as you want.

How to succeed in this class

You will probably find this class to be difficult. What makes it hard is that the material is theoretical and spans many levels of abstraction. Adding to that, coming up with algorithms is both an art and a science: there is no systematic way to have an idea, and problems that seem very similar, may have very different solutions. It is important that you know this ahead of time and you start preparing mentally for a challenging course.

Here are some suggestions for doing well in class:

Homework collaboration policy and academic integrity

Collaboration and discussion are crucial for this class. You are encouraged to engage with the problems and discuss with peers. You will most likely find that you will gain a better understanding of the material by discussing the problems with peers.

Our goal is to ensure that the collaboration is appropriate and effective, and that you become an independent problem solver capable to do work on your own. All students are expected to be familiar with and to comply with the department's collaboration policy and the four levels of collaboration it outlines. Specifically for this class,

While peer instruction can be immensely useful, it an also harm. Once you found a solution, resist giving hints to your peers or leading them towards the answer. You are not helping them by doing so. Direct them towards the TAs who are trained to give help.

Remember that you are responsible for reading, understanding, and adhering to the department policy. If you have any questions about any aspects of the policy, please do not hesitate to ask for clarification.