Course Syllabus


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
  • 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 (

Hi everyone, my name is Larissa Letaw, but please call me Lara. I'm an OSU alumna and resident of Corvallis, OR. One of the reasons I enjoy teaching data structures is 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 a team at OSU who wants to make software more usable to more people. If you have 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.



Sriram Narayanan: 

Hello everyone, my name is Sriram Narayanan and I am thrilled to have this opportunity to work with everyone in this course.

I am about halfway through the post-bacc program right now. I am currently working as a structural engineer and software developer with a renewable energy company, designing offshore wind turbines. I graduated with a Master’s in structural engineering some years ago, before which I was a construction manager. Right now, I am on the cusp of a career change to full time software engineering.
My interests include artificial intelligence and machine learning; languages I work with are python, C and C++. I am currently wrapping my head around neural networks and systems design.
In my steadily dwindling spare time I work on industrial art projects including woodworking, MIG and TIG welding, glass blowing and blacksmithing. I’m an avid movie watcher, currently catching up on the criterion collection. I also like spending time outdoors, particularly hiking and trail running.

Justin Boyer (

Hello, my name is Justin Boyer. I just started my second year in the program and look I forward to helping you learn about data structures!

Before starting at OSU, I got a degree in Microbiology from Brigham Young University.  After I started learning Python to write scripts helping me parse through genetic data, I realized I enjoyed programming a lot more than I enjoyed biology.  Ultimately, I joined this program to build a more well-rounded computer science education.

Currently, I live in the Seattle area and my hobbies include camping, Brazilian Portuguese, and Destiny 2. I look forward to meeting you all!


Martin Edmunds (

Hello everyone! My name is Martin Edmunds and I will be on of your TA's for this course. I am currently enrolled in this program just like you all :)

A bit about me: I grew up in rural West Virginia and completed a BS in ACS Chemistry at Marshall University. During my last year there I took a programming course in Python and realized that I made a mistake!
I moved to Los Angeles, CA where I met my wife and started to attend OSU. I relocated to Orlando, FL this past year and, in my spare time, I like to dodge hurricanes and play video games.
I'm very excited to work with you all and hope you have a wonderful semester!

Please feel free to contact me anytime.


Jenny Huang (

I'm Jenny, one of the TA's for this course.

I have a BS in Structural Engineering. I'm working as a structural engineer (but I officially can't say that since I'm not actually a licensed "structural engineer") as I am cramming through this program. I've just about reached the halfway point.

I'm located in the Silicon Valley and have no hobbies outside of coding and/or devoting my entire life to my cats during my free time.


Tam Nguyen (

Hello everyone!

My name is Tam Nguyen and I will be one of the TAs for this course. I am currently a Phd Candidate in EECS  at OSU with focusing on machine learning and signal processing. 

I got Master degree also in EECS in Korea before starting my Phd in OSU. I am familiar with Matlab and Python. I am looking forward to helping you learn about this course!

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 Official Slack channel. 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