Course Description

This course focuses on the common structures used to store data and the standard algorithms for manipulating them. Standard data structures include lists, stacks, queues, trees, heaps, hash tables, and graphs. Standard algorithms include searching, sorting, and traversals. Along with implementation details, students will learn to analyze the time and space efficiency of algorithms and how to select appropriate data structures and algorithms for a specific application. In homework, labs, and programming projects, students will implement their own data structures and make use of existing libraries to solve a variety of computational problems.

Desired Course Outcomes

The learning goals for the lecture and lab are the same -- both are meant to work together to accomplish the goals for the course as a whole. They are:

Professor Details

  • Lecture Section A
  • Lecture Section B

    TA Details

    See here

    Course Text

    There is no required textbook for this class. There are many exceptional online resources, however, for supplemental help in this class.

    Here are some links to free online data structures textbooks:

    If you would like more help finding good supplemental material, feel free to reach out to me!

    Grading

    Lateness Policies

    As always, extenuating circumstances will be considered--please talk with your Prof. about any concerns that arise during the semester!

    Tips for Success! How to succeed in this Course:

    Use of Computers / Technology during Class Meetings

    Scientific studies (e.g., Sana et al., 2013) demonstrate that the use of phones, computers, tablets, wearables, or other electronic devices during class meetings negatively affects the learning environment in the classroom---not just for the user of the device, but for classmates around them as well. To improve our learning environment, and as a courtesy to your classmates, the use of such devices during class meetings is discouraged and restricted: The only permitted devices are tablets, used only for the purpose of note-taking during class meetings; your Prof. may tighten or alter this policy as the semester goes along. If for any reason it is important that you use another device during a class meeting, please talk with me about how best to accommodate you!

    Policy on Collaboration and Academic Integrity

    Your work on Exams must be entirely your own, without any sources of outside assistance (unless explicitly authorized). You may be permitted to use outside sources for help on Worksheets, although the use of generative AI is restricted (see below). For additional Academic Integrity policies, see the CS231 Spring '25 Projects and Labs page.

    Your professor reserves the right to ask students to verbally explain the reasoning behind any answer or code that they submit and to modify grades based on the answers. It is vitally important that you turn in work that is your own! Reports of academic dishonesty are handled by an academic review board and a finding of academic dishonesty may result in significant sanctions. Please also see the Statement on usage of generative AI below. For more details on Colby’s Academic Integrity policies and procedures, see https://www.colby.edu/academics/academic-integrity/.

    Statement on Usage of Generative AI for CS231 Lecture Class Meetings

    The use of generative AI tools (ChatGPT, GitHub Copilot, IntelliSense, etc.) for written language, code generation, algorithms, ideas for solutions, etc. is not permitted on CS231 worksheets. The goals of CS231 focus on learning and demonstrating command of concepts, understanding programming techniques, analyzing programs, and understanding Computer Science from first principles / foundations; in general, the use of generative AI is inconsistent with this focus. If you have questions about this policy, or specific cases where you think using generative AI would improve the learning of course content from first principles / foundations, please ask me!

    Statement regarding Academic Accommodations

    The following is standard suggested language regarding Academic Accommodations at Colby. It applies to this course.

    I am committed to creating a course that is inclusive in its design. If you encounter barriers, please let me know immediately so we can determine if there is a design adjustment that can be made. I am happy to consider creative solutions as long as they do not compromise the intent of the assessment or learning activity.

    If you are a student with a disability, or think you may have a disability, you are also welcome to initiate this conversation with the Dean of Students Office. The Dean of Students Office works with students with disabilities and faculty members to identify reasonable accommodations. Please visit their website for contact and other information: https://life.colby.edu/get-support/access-disability-services/. If you have already been approved for academic accommodations, please connect within the two weeks of the start of the semester so the office can develop an implementation plan.

    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 each other and our shared physical environments, we recognize the diversity of people who have gathered here and that genuine inclusivity requires active, honest, and compassionate engagement with one another and surrounding communities. 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 wherever I may find myself.

    Title IX Statement

    The following is standard suggested language regarding Sexual Misconduct / Title IX at Colby. It applies to this course.

    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). To learn more about what constitutes sexual misconduct or to report an incident, see: https://life.colby.edu/your-safety/sexual-violence-title-ix/

    I am committed to all Colby students feeling safe, accepted, and included in all aspects of their college experiences, including this course. Colby prohibits and will not tolerate sexual misconduct or gender based discrimination of any kind and is obligated, by federal and state laws, to respond to reports and provide resources to students. As your professor I am considered a "responsible employee" which requires me to report incidence of sexual assault, sexual harassment, dating violence, or stalking to the Title IX Coordinator.

    If you wish to access confidential support services, you may contact:

    To learn more, visit https://life.colby.edu/your-safety/sexual-violence-title-ix/

    Mental and Emotional Health

    The following is standard suggested language regarding Mental and Emotional Health at Colby. It applies to this course.

    I am invested in the mental and emotional health of my students. Even as I establish and maintain the academic standards of my course, I value each of you as individuals with complex lives, identities, and challenges.

    Throughout the semester, the responsibilities of your Colby education may interact with situational as well as ongoing mental and emotional challenges in foreseeable and unforeseeable ways. If you are in need of reasonable flexibility due to an emotional situation or an ongoing mental health issue, please communicate as openly as possible with your Class Dean, and/or members of the office of Access and Disability Services, preferably in advance of the need, so that we can discuss how your circumstances interface with course requirements. Together, we will consider what is needed and what is possible. If we can discuss the situation, we can manage the situation together.

    Please do not allow academic responsibilities to prevent you from getting help you need. Our Colby Counseling Services staff (207-859-4490) and the staff in the Dean of Studies office (207-859-4560) are available to connect with you. The safety of my students and every member of this community is paramount. If you or someone you know is struggling with thoughts of suicide or may be a danger to themselves or others, please call the on-call counselor immediately (207-859-4490, press ‘0’).

    Respect For Diversity

    The following is standard suggested language regarding Respect for Diversity and Religious Holidays at Colby. It applies to this course.

    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.

    Colby College supports the religious practices of students, faculty, and staff. Students are expected to notify their instructors of their intent to fulfill the obligations of their religious tradition well in advance of these days. For this class I ask that you notify me by email at least 14 days in advance of the date in question.

    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.