This course emphasizes the study of the basic data structures of computer science (e.g., bags, lists, stacks, queues, trees) and their implementations using the Java language. We will cover objects and reference variables, as well as programming techniques that use recursion. Students will be introduced to various searching and sorting methods and will develop an intuitive understanding of the complexity of algorithms.
Frank M. Carrano and Timothy M. Henry. Data Structures and Abstractions with Java (4th Edition). Pearson, 2014.
Online textbook resources available here.
Students must subscribe to Top Hat, the platform we will use for lecture participation. Please see Lectures for instructions.
The instructor will periodically post updates to the course website. It is each student’s responsibility to regularly monitor these updates.
The instructor and TA will periodically email enrolled students with announcements. Students must check their Pitt email at least once per day to ensure these announcements are received.
When contacting the course staff via email, messages must be addressed to (or CC) both the instructor and the TA. Email subject should be prefaced with “”.
All assignment submissions must be the sole work of each individual student. Students may not read or copy another student’s solutions or share their own solutions with other students. Students may not review solutions from students who have taken the course in previous years. Submissions that are substantively similar will be considered cheating by all students involved, and as such, students must be mindful not to post their code publicly. The use of books and online resources is allowed, but must be credited in submissions, and material may not be copied verbatim. Any use of electronics or other resources during a quiz or examination will be considered cheating.
Cheating in this course will result in a report to the appropriate school and/or university authority. The instructor will impose a grade of F for the course, and additional sanctions may be imposed by school or university authorities.
Please read, understand, and abide by the Academic Integrity Code for the School of Arts and Sciences.
Students are encouraged to attend all lectures, which frequently include material that is not directly taken from the text. If a student misses a lecture, he/she is still responsible for the material covered and is advised to acquire notes from a classmate.
This course may include open discussion or other interactions among students. To allow all participants to express their viewpoints, all discussion must remain civilized and respectful, and participants must avoid comments and behaviors that disparage others. A student who feels their viewpoints are not being respected is encouraged to contact the instructor, who will work to correct the situation without revealing the student’s specific concerns to the rest of the class. A student in this situation who does not feel comfortable contacting the instructor directly is encouraged to contact the TA, who will uphold the same degree of confidence in relaying the issue to the instructor.
To ensure the free and open discussion of ideas, students may not record lectures, discussion or other course activities without the advance written permission of the instructor. Any recording properly approved in advance can be used solely for the student’s own personal use.
All course material is subject to copyright, including notes, slides, assignments, and solutions. Students are allowed to use the provided material only for personal use, and may not share the material with others, including posting the material on the Web or other file sharing venues.
We believe that students should be able to distinguish between helping one another understand the core concepts of the course material and cheating. We encourage students to discuss the content of the course in ways that will improve understanding without violating academic integrity, such as clarifying the objective of an assignment or discussing general solution tactics.
All assignments specify a precise due date and time. Late assignments will not be accepted. Students must ensure they understand each assignment’s submission procedure in advance of its deadline to ensure that submission difficulties do not cause an assignment to be rejected.
All graded materials that a student receives back should be saved in until after the term has ended and he/she has received and accepts his/her final grade. In this way, any grade discrepancies can be easily resolved.
An evaluation grade can be appealed up to two weeks after it has been returned. After this point, no appeals will be considered. The goal of a grade appeal is to ensure a fair and consistent score. Thus, a score will not be adjusted on an issue of partial credit if the awarded points are consistent with the grading policy adopted for the class as a whole.
When appealing a grade, first contact the grader: email (CC'ing the instructor) for assignments, or return the hard copy for quizzes. If the grader does not find any mistakes made in the original grade, and is unable to clarify adequately the reasons for any assessed penalties, directly contact the instructor describing why you feel the assignment was graded unfairly. The entire assignment will be re-graded by the instructor, so the score may increase, remain the same, or even decrease.
Students must be present for all exams and quizzes. Make-up exams will be given in the event of a documented emergency. The instructor must be informed of the emergency in advance of the missed exam. Missing an exam or quiz under any other circumstances will result in a score of 0.
If you have a disability for which you are or may be requesting an accommodation, you are encouraged to contact both your instructor and Disability Resources and Services, 140 William Pitt Union, 412-648-7890, firstname.lastname@example.org, as early as possible in the term. Disability Resources and Services will verify your disability and recommend reasonable accommodations for this course.
In order to accommodate the observance of religious holidays, students should inform the instructor (by email, within the first two weeks of the term) of any such days which conflict with scheduled class activities.
Top Hat will be used for attendance, lecture slides, and in-class questions. Sign up at tophat.com using the appropriate join code below.
|A (M/W @ 3)||463174|
|B (T/H @ 11)||327521|
Students are responsible for reading assigned materials prior to the lecture in which they will be discussed. Unless otherwise specified, readings are from Carrano & Henry.
This schedule is subject to change.
|Lec.||A Date||B Date||Topics||Readings|
Designing I: Classes and objects
Designing II: Composition and inheritance
No class: Labor Day
Designing III: Polymorphism and generics
Java Interl. 1
Java Interl. 3
Java Interl. 7
Bag I: Abstract data type
Bag II: Array implementations
Bag III: Linked implementations
Stack I: Abstract data type
Stack II: Implementations and analysis
Recursion I: Basic recursion
Recursion II: Divide & conquer
Recursion III: Multiple recursion and backtracking
No class: Fall break
Sorting I: Selection and bubble sorts
Java Interl. 3
Sorting II: Insertion sort and shellsort
Sorting III: Merge sort and quicksort
Midterm exam review
Sorting IV: Analyzing quicksort
List I: ADT and array implementations
List II: Linked implementations and analysis
Midterm exam post-review
Iterators and iterable
Java Interl. 5
Tree I: ADT and representation in memory
Tree II: Implementations of operations
No class: Thanksgiving break
Queue ADT and implementations
Binary Search Tree
Priority Queue ADT and implementations
Final exam review
Final examination A (4:00)
Final examination B (8:00)
Lab materials are distributed via Box. Login to Pitt Box to view the materials.
This schedule is subject to change.
|1||9/05–9/11||Java from command line, packages|
|6||10/18–10/24||Quiz 1 review|
|7||10/25–10/31||Divide and conquer|
Assignment materials are distributed via Box. Login to Pitt Box to view the materials.
All deadlines are 11:59 PM.
Future assignments are subject to change.
|A1||Data structure implementation||9/14||9/28|
|A5||Complex data structure implementation||11/21||12/07|