CMPS101 - Algorithms and Abstract Data Types

Course Information

  • Class: Mon/Wed/Fri 3:30 pm - 4:40 pm
  • Location: Kresge 321
  • Discussion Session: Monday 1:00 pm - 3:00 pm, Wednesday 11:00 am - 1:00 pm, Friday 9:00 am - 11:00 am
  • Location: Crown 201
  • Note: You need to attend only one discussion session per week
  • Instructor: S V N Vishwanathan (vishy -at- ucsc -dot- edu)
  • Office: E2-341A or E2-489
  • Office Hours: Wednesday 10:00 am - 11:00 am or by appointment
  • TA 1: Ryan Compton (rcompton -at- ucsc -dot- edu)
  • Office: Tuesdays BE-312 C/D, Thursdays E2-480
  • Office Hours: Tuesday 10:00 am - 11:00 am, Thursday 4:00 pm - 5:00 pm or by appointment
  • TA 2: Kivanc Yazan (kyazan -at- ucsc -dot- edu)
  • Office: E2-480
  • Office Hours: Monday 11:00 am - noon, Friday noon - 1:00 pm or by appointment
  • MSI instructor: Kenneth High
  • Office: Porter 241 (Tue), Cowell 222 (Thurs), ARCenter 221 (Fri)
  • Office Hours: Tuesday 2:00 pm - 3:15 pm, Thursday 10:00 am - 11:15am, Friday 11:00 am - 12:15 pm

    Here is a handy weekly schedule

Course Description

The aim of the course is to study basic algorithms and their relationships to common abstract data types. We will cover the notion of abstract data types and the distinction between an abstract data type and an implementation of that data type. The complexity analysis of common algorithms using asymptotic (big "O") notation will emphasized. Topics include (but not limited to) sorting, searching, basic graph algorithms, as well as algorithm design and analysis. Abstract data types covered include priority queues, dictionaries, disjoint sets, heaps, balanced trees, and hashing. Familiarity with Python and Unix is assumed.

Textbook and Slides

News and updates

  • Discussion sessions will start on January 6th 2016
  • The Piazza link for the class is
  • Midterm will be held on February 17th 2016 in class
  • Finals will be held on March 14th 2016 from 8:00 am to 11:00 am