If you are using iPhone/iPad and want to quicky access the navigation bar content, click here

CSC 172 - Datastructures and Algorithms (Spring 2018)

Prerequisites

CSC 171 or equivalent, MTH 150

Instructor: Tamal Tanu Biswas
Office: Wegmans 2107
Office Hours: Tu 12 pm - 1pm and Wed 11 am - 12 pm, or by appointment
Email: tbiswas2 [at] cs.rochester.edu

Grad TA: Divya Ojha
Office: Wegmans 3209
Office Hours: Tu 5pm - 6pm. Th 2:15 pm - 3:15 pm
Email: dojha@cs.rochester.edu

Course description

This course presents the fundamental data structures, their design and use. The course also covers various algorithms and their analysis. Java is the official laguage for all the programming tasks. The data strucutures covered are Lists, Stacks, Queues, Maps (Dictionary), Trees and Graphs. This course also covers various sorting and searching algorithms.

Topics covered

The course gives you a comprehensive understanding of various data strucutres and when to use them. In this course, we will cover:
  • Basic data strucutures such as lists, stacks, queues, trees, maps, sets, hash tables, trees, and graphs.
    • Design and analysis
    • Various cost-benefit tradeoffs in designing, implementing, and using them
    • Implement the data strucutures in Java
  • Various algorithms including algorithms for searching and sorting, recursive algorithms, and graph traversing algorithms.

Course schedule

FacultyLocationDaysTime
Tamal Biswas Hutch 141TuTh3:25 PM - 4:40 PM

Required textbook


Data Structures and Algorithm Analysis by C. A. Schaffer
An online version of the book can be found here.
Some nice optional texts :
Data Structures and Algorithm Analysis in JAVA, 3rd Edition by M. A. Weiss
The C Programming Language by B. W. Kernighan and D. M. Ritchie
Structure and Interpretation of Computer Programs by H. Abelson and J. Sussman with J. Sussman
Foundations of Computer Science by A. Aho and J. Ullman


Workload

  • In-class Quizzes
  • Projects
  • Labs
  • Workshops
  • 1 Mid Term
  • 1 Final

Grading policy

Minor adjustments may be made to the weights and number of assignments at the discretion of the instructor.
  • Quizzes : 10%
  • Labs: 15%
  • Projects (3 to 4 projects) 35%
  • Midterm: 15%
  • Final: 20%
  • Workshop Participation: 5%
  • Quizzes (10% of the course grade)
    • There will be 8+ quizzes.
    • The lowest quiz will be dropped.
    • All the quizzes will be held during the lectures on Thursdays.
    • I will let you know if any week does not have a quiz
  • Labs (15% of the course grade)
    • There will be approx. 10 labs.
    • Labs are due on Sundays
    • Each lab is worth either 1 or 2 pts.
  • Exams (35% of the course grade)
    • 1 midterm (15%)
    • 1 final (20%)
    Midterm on March 08, 2018
    Final: May 01, 2018 (from 3:25 pm to 4:40 pm).
  • Projects (35% of the course grade)
  • Labs (15% of the course grade) Each lab worths between 1% and 2% of the course grade. Register for one lab session - two meetings times per week. Each lab TA will manage grades for a specific set of students. Students are expected to know the names of their lab TAs. It is important to know the name and contact information of your lab TA as the Lab TAs manage the lab and project grades. Labs will be issued on Sunday and due the next Sunday (with some exception).
  • Workshops Workshops carry 5% of the course grade. Workshop participation counts for the grade. Workshops are useful for quiz and exam preparation. It is important to know the name and contact information of your workshop leader as the workshop leaders manage the quiz and exam grades.
  • Class Participation
    • Bonus points (not exceeding 3) will be awarded to students whose participation was exemplary.

    Honor Code Policy

    You can use the following guideline: For homeworks and programming assignments, students are encouraged to consult each other, the TA, the instructor, or anyone else for that matter. However, the assistance offered or accepted should not go beyond a discussion of the problem and a sketch of a solution. You can use the following guideline: when it comes time for you to write your program or your homework paper, do not use any written material from the discussion. If you can reconstruct the discussion and complete the solution on your own, then you have learned the material (and that is the objective of this course!). For team projects, you should make sure to identify division of labor in your README. You are expected to be familiar with and adhere to the University's Academic Honesty Policy.

    Late homework and absences from exams

    No late submission is allowed. Examinations will be given at alternate times only with appropriately documented medical excuses.