CSC172: Data Structures
Fall 2021

General Information

Instructor: Prof. Ted Pawlicki <>

Office: 2101 Wegmans Hall (see instructor website )

Office hours for this class will be online via ZOOM Monday (noon-1pm), Tuesday (1pm-2pm), Wednesday (2pm-3pm), Thursday (1pm-2pm) and Friday (noon-1pm) Eastern US time. )

Office hours on Tuesday and Thursday will also be live in person in my office in addition to being on line. In person will have preference.


Website: The UR's BlackBoard system

Course Goals

This course is a hands on introduction to Data Structures and Analysis of Algorithms using the Java programming language. You will learn to design, write and analyse computer programs computers to determine efficiency in terms of time and memory utilization. Topics covered include:

We learn by doing. Students should expect to spend time outside of lecture to master the material.

For all your courses, be sure to familiarize yourself with the OFFICIAL University of Rochester Credit Hour policy which says that student should expect to spend two hours studying outside of class for every hour in class. UR CREDIT HOUR POLICIES


A semester course of introductory programming in a high level object oriented language is required.

Textbook & Resources

Required Textbook

We will use an online interactive textbook CSC172 : Data Structures and Algorithms this term. Readings and online activities associated with this textbook will count for your grade.

In order to get access to this textbook :

  1. Sign in or create an account at
  2. Enter zyBook code: ROCHESTERCSC172PawlickiFall2021
  3. Subscribe

Recommended Textbooks

Data Structures and Algorithm Analysis Edition 3.2 (Java Version) Clifford A. Shaffer

The text book is a good reference for code examples. You may or may not need the textbook. Assignments are not taken from it.

Additional readings and resources:

Course Work

There are weekly homework assignments. These are exercises that you can complete on your own time. The lab sessions are there to help you.

Projects are larger programming assignments, typically taking a week to complete.

Extra credit for going above and beyond any single assignment must be approved by TAs in advance. The maximum extra credit for any one assignment is typically 10%.

Make up quizzes and exams and extensions on projects are only allowed with a suitable prearranged excuse.


Late assignments without suitable prearranged excuse will not be accepted. Missed or late homework will receive a grade of zero.

Final course grades will be based on the following components and weights:

First Exam5%
Second Exam5%
Third Exam5%
Fourth Exam5%
Fifth Exam5%
Sixth Exam5%
Online Zybooks Homework30%
Programming Labs & Workshops 20%

This scheme is subject to change in response to changing circumstances. Any changes will be announced in class and posted on the class web site.

Letter grades will follow the Official University of Rochester Grading Scheme. Note that the University scheme puts average somewhere between C and B. The following table is an estimate of how the numeric grades will map onto the letter grades (subject to change):

A: Excellent >=90%
B: Above Average >=80%
C: Minimum Satisfactory Grade >=70%
D: Minimum Passing Grade >=60%
E: Fail <60%

All appeals of grades for any component of the course (homework, project, quiz, exam, etc.) must be made within one week of the grade being posted.

Course Policies

We hope that you will want to attend class (lecture), but attendance is NOT required.

Students with an appropriate excuse for missing a quiz, workshop, homework, or project deadline must make arrangements in advance.

Students with an accommodation for any aspect of the course must make arrangements through the Center for Excellence in Teaching and Learning (CETL) IN ADVANCE. Then, as instructed by CETL, contact the instructor to confirm your arrangements. Do not leave this until the last minute either.

Students who are unable to attend or complete any part of the course due to illness should contact the instructor as soon as possible. Please note that the University Health Service (UHS) does not provide retroactive excuses for missed classes. Students who are seen at UHS for an illness or injury can ask for documentation that verifies the date of their visit(s) to UHS without mention of the reason for the visit. Students with extended or severe illness should contact the College Center for Advising Services (CCAS) for advice and assistance.

Academic Honesty and Collaboration

All assignments and activities associated with this course must be performed in accordance with the University of Rochester's Academic Honesty Policy. More information is available at:

You will learn the most if you do all the work in this course on your own.

Homework is individual work and you must complete it individually. Your TAs and are available in lab to help you with homework. You may verbally discuss assignments with tutors and other students. You may consult library and on line references, but you must write all the code individually.

With every assginment you should include a comment on who helped you and what resources you used.

It is ok to verbally discuss assignments with other students, but do not copy assignments or share electronic files.

CETL Tutoring

Tutoring is a free service available for any undergraduate of the University of Rochester. The Center for Excellence in Teaching and Learning (CETL) provides structured tutoring services.

CETL Tutoring :

CSUG Tutoring

CSUG is the Computer Science Undergraduate Council. These students graciously volunteer their time to help other students, especially students in introductory and core courses.

CSUG Tutoring Schedule:

If you visit the CSUG tutors, please be respectful of their time and come prepared. Try to solve the problem/question before going to CSUG Tutoring. Go to lab and work on the problem with the TAs before going to CSUG Tutoring. Go to workshop and discuss the problem with your colleagues before going to CSUG Tutoring. You must be able to show them what you have tried before you came to them.