Course Syllabus



Course Name: Data Structures  Course Number: CS261_400 
Term Offered: All Terms
Credits: 4
Instructor's Name: Samina Ehsan


Data Structures are specialized formats for collecting, organizing and managing data for the purpose of being able to perform operations on these data efficiently and effectively. And an abstract data type (ADT) specifies those operations that can be performed on a data structure and the computational complexity of those operations. 


At the completion of the course, students will be able to - 
  • 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.


The course structure includes - 

    • Weekly readings
    • Video lectures
    • Weekly worksheets  
    • Q&A on Piazza
    • 5 Programming assignments ( Must be completed using C (not C++)
      • Submitted  to both TEACH and Canvas
    • Midterm exam ( needs to be proctored. For more information please visit you need assistance please contact or 541-737-9281)
    • Final exam ( needs to be proctored. For more information please visit you need assistance please contact or 541-737-9281)


Instructor Introduction

Meet the instructor - Samina_Ehsan


Contact Information

My office hours are on Tuesdays from 18:00 -20:00 PST(by appointment)  and Sundays 9:00 -11:00 PST (by appointment)  via (Google chat/email/skype/etc.)



Communication Policy

  • Piazza is the best way to reach me 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 me if you do not receive a reply within 24 hours.
  • Sending email  is the preferred way to only for matters of a personal nature related to the course (Please include the prefix CS-261_400_F18 in the subject). If needed, we can use Skype or Google Hangout for discussion. Please resend the email if I do not respond within 24 hours. 
  • I will maintain virtual office hours using the class account . Please do not send emails here as I do not check this account for emails frequently. 



Please review the following course guidelines/syllabus very carefully -


Please review the following weekly schedule very carefully -

CS 261-Weekly Schedule-Fall2018.pdf



Please create a private post on Piazza or send a personal email to set an appointment at least 12 hours before you need help. Let the instructor know if you do not get a response from the TA within 6 hours. 

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: 


Welcome to Week 1. This week we will have ..


Learning Objectives -

After successful completion of this week, you will learn about - 

  • How to set up and use an IDE and Unix Host 
  • C-Programming (pointers, Compilation, Debugging)
  • Complexity (Big-Oh) Analysis

To-do List -

Please make sure to complete the following tasks: 

      • Introduce yourself to your classmates on Piazza discussion board
      • Add yourself to a worksheet group, contact with your worksheet group members, join your first group meeting and finally submit the minutes
      • Do the required readings and watch the video lectures
      • Set up an IDE on your own machine locally and get familiar with OSU engr server
      • Submit Assignment 0 to both TEACH and Canvas 

Course Summary:

Date Details Due