Course Syllabus

Course Banner

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


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
  • Programming assignments (completed individually)

Note: There will be no exams in this course that needs to be proctored.


Your Instructional Team

headshotLaurel -smaller_cropped.JPG


Laurel Hopkins (

Hi everyone, my name is Laurel Hopkins and I am currently a Ph.D. student at OSU. I work in Rebecca Hutchinson's lab as part of the Artificial Intelligence group. Before coming to OSU for grad school, I worked for several years as a hardware designer for a medical company in Santa Barbara. I enjoy teaching data structures because it was this class that first got me interested in programming, although I didn't formally pursue Computer Science until grad school. I also enjoy this class because the material is fundamental for Computer Scientists. Outside of school, I like hiking, yoga, and recently started rock climbing. I am looking forward to working with you and supporting your learning of data structures this term!


Samina Ehsan (                                                                      Samina_Canvas.JPG

Hello Everyone, My name is Samina Ehsan and I will be one of your instructors for CS-261- Data Structures. Right after completing my Ph.D. from Oregon State University, I joined OSU as an Instructor in the online CS program. For the past 7 years and a half, I have been teaching exclusively online courses. I believe that a strong understanding of data structures is very important to drastically improve one's ability to solve problems with powerful and efficient programs because it deals with data storage, manipulation, and retrieval when we write computer programs. And I hope this course will provide you a solid understanding of various data structures, abstract data types and their implementation in Python. I look forward to a great term with all of you!

Undergraduate Learning Assistants (ULAs)

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


Please read the course syllabus very carefully:


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 and the instructional team.


Course Resources

There is no required textbook for this course. Reading and learning materials are provided via Canvas. However, you may wish to reference the optional online textbook listed below-


Instructor Contact Information

  • Office Hours Information
    • The Instructors will hold fixed weekly office hours starting from Week 2. Office hours are held via the official Slack channel (#office_hours). The contact and office hours information of the Instructors are provided as follows -
  • 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 email us or send a message on Slack if you do not receive a reply within 48 hours.
    • Sending an email to the instructor for your section is the preferred mode of communication for discussing matters of a personal nature related to the course (Please include the prefix CS261_401_S20 in the subject). Please resend the email if we do not respond within 24 hours. 

ULA Contact and Office Hours Information

The  ULAs will hold fixed weekly office hours starting from Week 2. Office hours are held via the official Slack channel (#office_hours). The contact and office hours information of the  ULAs are provided as follows -


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
  2. Introduce yourself on Piazza
  3. Read over the important information in these modules:
  4. Look over the Week 1 Learning Module and due dates (please see the course summary)
  5. Begin working on the tasks in the Week 1 Overview


Return to Modules


Course Summary:

Date Details Due