Course Syllabus


Welcome to CS 261: Data Structures (online)

The purpose of this course is to develop your knowledge and understanding of data structures. The course was intentionally designed so that, at the end of the term, you will be able to do the following:

  • Describe the properties, interfaces, and behaviors of basic abstract data types, such as collection, bag, indexed collection, sorted collection, stack, and queue.
  • Read an algorithm or program code segment that contains iterative constructs and analyze the asymptotic time complexity of the algorithm or code segment.
  • State the asymptotic time complexity of the fundamental operations associated with a variety of data structures, such as vector, linked list, tree, and heap.
  • Recall the space utilization of common data structures in terms of the long-term storage needed to maintain the structure, as well as the short-term memory requirements of fundamental operations, such as sorting.
  • Design and implement general-purpose, reusable data structures that implement one or more abstractions.
  • Compare and contrast the operation of common data structures (such as linear structures, priority queues, tree structures, hash tables, maps, and graphs) in terms of time complexity, space utilization, and the abstract data types they implement.

We call this list the course Learning Objectives. We recommend that you periodically revisit this list throughout the term to check your progress on developing this knowledge and these skills.

Course Structure

We structured the course around the Learning Objectives, above. We will present and material and assess your learning in multiple ways, including the following:

  • Weekly readings
  • Video lectures
  • Weekly worksheets (completed with a small group)
  • Piazza discussion forum
  • Programming assignments (completed individually)
  • Two exams (midterm and final)

Note: The midterm and final exams must be proctored.

Your Instructional Team

In this course, you will have the opportunity to interact with instructors, teaching assistants, and students in concurrent online sections of 261. This course has two instructors and three teaching assistants:

headshotLaurel -smaller_cropped.JPG

  • Instructor: Laurel Hopkins (
    • Hi all! My name is Laurel Hopkins and I am currently a Ph.D. student at OSU. I work in OSU Professor Rebecca Hutchinson's lab as part of the Artificial Intelligence group in the CS department. I enjoy teaching data structures because the material is fundamental for Computer Scientists and it was this class that first got me interested in programming. I am excited to work with you and support your learning of data structures this term.
  • Instructor: Larissa Letaw (
    • lara.pngHi everyone, my name is Larissa Letaw, but please call me Lara. I'm an OSU alumna and resident of Corvallis, OR. I enjoy teaching data structures because it's one of the most important courses in a computer science degree program. For example, questions about data structures come up frequently in coding interviews. In addition to teaching, I'm an inclusive design researcher. I work with an entire team of people who want to make software more usable to more people. If you ideas about how to make this course more usable, I'm very interested in hearing those, contact me any time. I look forward to talking with you and facilitating your success in this course.
  • TA: Ali Raza (
  • TA: Arash Shahbaz Badr (
  • TA: Hamed Shahbazi (


Note: Some links on this page may only be accessible to registered students.


Please read the course syllabus very carefully:

Next, take the syllabus quiz:

You may also want to look over the course schedule or download it for your records:


Note: Some links on this page may only be accessible to registered students.


Piazza Discussion Board

Piazza is the best place to get help with course-related questions.

Slack Workspace

Slack is where to look for real-time help from peers.

Instructor Contact Information

  • Larissa Letaw (
  • Laurel Hopkins (
  • Communication Policy
    • Piazza is the best way to reach instructors for any course-related query. We can refer back to our previous discussions here and also as it will be visible to the entire class. So, the other students will be able to get benefit from it. Not all posts require a reply from me and often it is better for students to hash out an answer to a question. But please inform us if you do not receive a reply within 48 hours.
    • Sending an email to your main instructor is the preferred mode of communication for discussing matters of a personal nature related to the course.

TA Contact and Office Hours Information

The Teaching Assistants will hold fixed weekly office hours starting from Week 2. Office hours are held via WebEx. The contact and office hours information of the Teaching Assistants are provided as below -


Please follow the tutoring information below if you need any course on-boarding support from the peer or Ecampus tutors:

1. CS peer tutoring: Tutoring_annoucement.pdf
2. Online tutoring:

        Note: Some links on this page may only be accessible to registered students.


        Now that you've read the syllabus, here's what to do next:

        1. Take the Syllabus Quiz (if you haven't already)
        2. Read over the important information in these modules:
        3. Look over the Week 1 Learning Module and due dates
        4. Begin working on the tasks in the Week 1 Overview

        Course Summary:

        Date Details Due