CSC172: Data Structures
Summer 2019

General Information

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

Office: 2101 Wegmans Hall (see instructor website for office hours)

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 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, lab, and workshop in order to master this material.

Prerequisites

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

Textbook & Resources

Required Textbook

The textbook is on line and freely available Data Structures and Algorithm Analysis Edition 3.2 (Java Version) Clifford A. Shaffer

Recommended Textbooks

Deitel & Deitel: Java: How to Program, ninth edition or more recent.

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

There will be online quizzes associated with the text book readings.

There will be two take home midterm exams, at the middle of term and at the end of term.

Extra credit for going above and beyond any single assignment must be approved by TAs in advance.

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:

First Midterm20%
Final Midterm20%
On line Quizzes20%
Homework20%
Projects20%

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

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 : www.rochester.edu/college/cetl/undergraduate/tutoring.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: www.csug.rochester.edu/ugc/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.