CSC 172 - Datastructures and Algorithms (Fall 2017)

Prerequisites

CSC 171 or equivalent, MTH 150

Instructor: Tamal Tanu Biswas
Office: Wegmans 2107
Office Hours: Tu 5pm - 6pm, or by appointment
Email: tbiswas2 [at] cs.rochester.edu

Grad TA: Zhengyuan Yang
Office: Wegmans Hall 3504
Office Hours: Fri 2 pm - 5 pm
Email: zyang39@cs.rochester.edu

Grad TA: Nate Kent
Office: RAIL lab (Gavett 146)
Office Hours: Mon 12 pm -3 pm
Email: nkent2@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 Hoyt AuditoriumTuTh3:25 PM - 4:40 PM

Required textbook


Data Structures and Algorithm Analysis by C. A. Schaffer
An online version for our course can be found here. You may need to create a canvas account.
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.
  • In-class Quizzes : 16%
  • Reading Quizzes: 2%
  • Labs: 12%
  • Projects (3 to 4 projects) 30%
  • Midterm: 15%
  • Final: 20%
  • Workshop Participation: 5%
<
  • In-class Quizzes (16% of the course grade)
  • There will be 10 quizzes.
  • Lowest 2 quizzes are droped.
  • Each quiz carries 2% of the course grade
  • All the quizzes will be held during the lectures on Thursdays.
  • No quiz on Oct 12, Oct 26, Nov 23.
  • Exams (35% of the course grade)
    • 1 midterm (15%)
    • 1 final (20%)
    Midterm on Oct 26, 2017
    Final on Wednesday, December 20 at 9:00 am .
  • Projects (30% of the course grade)
  • Labs (10% of the course grade) Each lab worths ~1% 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.
  • 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.