CSC172: Data Structures
Fall 2022

General Information

Instructor: Prof. Ted Pawlicki <pawlicki at cs dot rochester dot edu>

Office: 2101 Wegmans Hall (see instructor website )

Office hours for this class will be online via ZOOM Tuesday (1pm-2pm), Wednesday (1pm-2pm), Thursday (1pm-2pm) Eastern US time. You can drop in to get personal help.

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.

Lectures:

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

Prerequisites

A semester course of introductory programming in a high level object oriented language is required. CSC 171 or equivalent, MATH 150. May be taken concurrently with MATH 150 if CSC 171 prerequisite is satisfied.

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 learn.zybooks.com
  2. Enter zyBook code: ROCHESTERCSC172PawlickiFall2022
  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 is homework almost every day. These are short exercises that you can complete on your own time.

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.

Grading

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:

>
Online Exams25%
Online Zybooks Homework25%
Programming Labs & Projects 40%
Workshop Participation 10%

In general, "projects" are worth twice the weight of "labs". This can vary based on the complexity of the assignment.

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. While attendance is not required in lectures, it is individual responsibility of each student to keep aware of announcements.

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: www.rochester.edu/college/honesty

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.

You can use information you find on the internet. However, if you use something off the internet you should give a link to where you got it from in your comments and writeups/READMEs. (This is standard practice in the "real world" of software engineering.)

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

UR 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.

College Learning Center Tutoring : www.rochester.edu/college/learningcenter/tutoring/index.html

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: https://ur-csug.org/#/tutoring

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.